there's probably tons of better scripts for it, but i've managed with this so far:
use:
1) exec demo.cfg at console
2) 'n' to start recording
3) 'm' to stop recording
The script can record up to 20 differend demos, so remember to rename (for clarity also) after taking demos!
---
set toggle1 "g_syncronousClients 1; vstr nextdemo; g_syncronousClients 0;
set nexttoggle "vstr toggle2"
set toggle2 "stoprecord; set nexttoggle vstr toggle1; echo Stop Recording..."
set nexttoggle "vstr toggle1"
bind n "vstr nexttoggle"
bind m "stoprecord"
set demo1 "record gamedemo1; set nextdemo vstr demo2; echo Recording Demo 1"
set demo2 "record gamedemo2; set nextdemo vstr demo3; echo Recording Demo 2"
set demo3 "record gamedemo3; set nextdemo vstr demo4; echo Recording Demo 3"
set demo4 "record gamedemo4; set nextdemo vstr demo5; echo Recording Demo 4"
set demo5 "record gamedemo5; set nextdemo vstr demo6; echo Recording Demo 5"
set demo6 "record gamedemo6; set nextdemo vstr demo7; echo Recording Demo 6"
set demo7 "record gamedemo7; set nextdemo vstr demo8; echo Recording Demo 7"
set demo8 "record gamedemo8; set nextdemo vstr demo9; echo Recording Demo 8"
set demo8 "record gamedemo9; set nextdemo vstr demo10; echo Recording Demo 9"
set demo10 "record gamedemo10; set nextdemo vstr demo11; echo Recording Demo 10"
set demo11 "record gamedemo11; set nextdemo vstr demo12; echo Recording Demo 11"
set demo12 "record gamedemo12; set nextdemo vstr demo13; echo Recording Demo 12"
set demo13 "record gamedemo13; set nextdemo vstr demo14; echo Recording Demo 13"
set demo14 "record gamedemo14; set nextdemo vstr demo15; echo Recording Demo 14"
set demo15 "record gamedemo15; set nextdemo vstr demo16; echo Recording Demo 15"
set demo16 "record gamedemo16; set nextdemo vstr demo17; echo Recording Demo 16"
set demo17 "record gamedemo17; set nextdemo vstr demo18; echo Recording Demo 17"
set demo18 "record gamedemo18; set nextdemo vstr demo19; echo Recording Demo 18"
set demo19 "record gamedemo19; set nextdemo vstr demo20; echo Recording Demo 19"
set demo20 "record gamedemo20; set nextdemo vstr demo0; echo Recording Demo 20 - ^1Last demo!"
set demo0 "echo no more demos"
set nextdemo "vstr demo1"
---
-tube