Set your graphics settings to be what you want the video settings to be. Youtube requires a 1280x720 video for it to be HD. The closest in-game resolution is 1600x900. This should be the resolution you use.
In the console, type "exec demo_to_video". This will set the settings I use for demo creation like turning the new spectator HUD on.
Choose a name for your video (it doesn't need to be the same name as the demo file), let's say you've chosen %videoname%.
Enter startmovie %videoname%_ into the console. (The _ underscore on the end of your name is not essential, but useful for later steps.) I recommend outputting to a subfolder so that the main folder doesn't get crowded (ie startmovie folder/%videoname%_).
Enter playdemo %demoname% into the console, where %demoname% is the name of the demo you want to record.
Sit back while it records your demo - it won't necessarily run in real-time. Don't let your screensaver turn on while this is happening or the frames won't be written to disk. It also appears that the demo jitters if your hard drive slows down or holds up the frame saving for any reason so close everything else. Depending on your machine and on the graphical settings you chose, it might take quite a while. When it's done, the game will return you to the console.
Type "endmovie" into the console.
Quit the game and browse to the Smashball folder.
Here you will find numerous Targa files named %videoname%%framenumber%.tga and a Wave file named %videoname%.wav. Now you need to take these frames and the audio and turn them into a complete video, using the external video creation application of your choice, be it VirtualDubMod (free, but poor UI) or Adobe Premiere or whatever.
Targa to Video Creation
Now that you have targa files for each frame, you need to combine these into a single video file. Load it into your video program. I use VirtualDubMod because it's free.
Open the first targa file that represents the first frame. The rest of the frames should load automatically to create a video from the sequential frames. Make sure the frame rate of the movie is set to 30 frames per second. VirtualMod sets the default to 29.997 which causes the audio to desync later in the video.
Add the .wav file that is the audio from the demo.
Set the video compression to use DivX, and set the bit rate to 8000. Youtube will reduce this when you submit it, but by keeping the bit rate high, the video will look better after Youtube compresses it a second time.
Add a resize filter to resize the final video to 1280x720. This will shrink each frame proportionally to Youtube's standard for HD video.
Create the actual video.
Upload to Youtube and use "&fmt=22" on the end of the url to view the HD version of the video.