This was supported by default in v8 (With a main menu selection and all)
Not sure exactly how to do it, but these are part of it most likely. Don't know the arguments though
%client.playDemo()
%client.prepDemoPlayback()
%client.prepDemoRecord()
%client.startRecording()
%client.stopRecording()
The thing is about the demo recordings is that it creates a LAN server to show you the demo, this was how it worked in v8 anyways.
What you could do instead is just use a camera that moves according to your script to do some cinematic, there's no need for prerecorded anything