You're lucky that I'm hanging around these forums today.
Here is the final version I've made, I don't even know if I ever posted it online:
http://zsensible.free.fr/openarena/gtv3-oacl_v0.9.9.zipGTV is pretty easy to setup: just launch it, and use /gtv_connect yourip:port <password>
There are a few other commands, but everything is explained in the readme. And if you don't find a way to do something in the readme, then it's just not possible, except if you use a third party tool as oamps.sh (see below).
You can also automate the launching and connection of GTV using
oamps.sh, an automatic server management tool for OpenArena that I developped for several years and is quite stable. It was made not only to automatically manage a game server, but also to extend the functionalities for example by managing GTV (eg: automatic connection at startup, this is otherwise impossible using only GTV, you need oamps.sh for this, or to show your GTV server on the dpmaster listing), and also to send messages ingame, printing a countdown before restarting the server, etc..
Please however note two main limitations despite my best efforts to circumvent them: GTV does not agree with some mods (it will randomly disconnect players at random times) - but generally it work OK; and GTV does NOT natively support multiview, for that you need to use GTV on a server using a mod that supports multiview, but not only multiview: multiview with GTV, like CPMA. ExcessivePlus also works with multiview, but it's quite picky and tricky on the configuration required to achieve that.
About making a GTV-like feature directly in the engine, this is totally possible, and I believe it's possible to even do a lot better:
GTV is based on a very old quake3 engine version, with lots of bugs, and from my own experience debugging and decompiling GTV, I think it's very very simple how it was made: the guy just copied the client-side recording functions, put it in a server-side function, and modified it a bit to relay the data to connected clients instead of saving to a file.
I proposed an alternative way of implementing this kind of functionality, but in a more clever way which would allow to also save server-side demos (in a very clean way), and would also allow for native multiview.
Anyway I don't have the time to do this project on my own, so if anyone with some C++ coding skills and some spare time want to take on this project, I can provide guidance as I have quite a precise plan of how this can be done, and done efficiently.