Latest code here
I had a search in Google for the code(in C#) to download videos from youtube as flv file. But i could not find one. So i thought of writing one.
From the swfArgs from the source code get the value of fmt_url_map (Example video http://www.youtube.com/watch?v=ZzkresBOxnQ)
"fmt_url_map": "18%7Chttp%3A%2F%2Fv18.lscache1.c.youtube.com%2Fvideoplayback%3Fip%3D0.0.0.0%26sparams%3D
id%252Cexpire%252Cip%252Cipbits%252Citag%252Cburst%252Cfactor%26itag%3D18%26
ipbits%3D0%26
signature%3D594CDBBFBB9F091FEC9A27AB5BF4D6B82BB02A32
.C7719537B15D9343F12FDF69D74B1D50AA4C07C4
%26sver%3D3%26expire%3D1251460800%26key%3Dyt1%26factor%3D1.25%26
burst%3D40%26id%3D67392b7ac04ec674%2C34%7Chttp%3A%2F %2Fv19.lscache3.c.youtube.com%2Fvideoplayback%3
Fip%3D0.0.0.0%26sparams%3Did%252Cexpire%252Cip%252
Cipbits%252Citag%252Cburst%252Cfactor%26itag%3D34%26
ipbits%3D0%26signature%3D65025436E8B5C24CE434758CBA3D0EEFEE54F9FE.33
E6FC06E4AED75A3CE68AC92B7725094EE00A6E%26sver%3D3%26expire%3D1251460800%26
key%3Dyt1%26factor%3D1.25%26burst%3D40%26id%3D67392b7ac04ec674%2C5%7Chttp%3A%2F%2Fv6.lscache3.c.youtube.com%2Fvideoplayback%3Fip%3D0.0.0.0%26sparams%3D
id%252Cexpire%252Cip%252Cipbits%252Citag%252Cburst%252Cfactor%26itag%3D5%26
ipbits%3D0%26signature%3D
D924DA3786E0B8187DBBC509D11A4B9E2856968B.
0E6847032937C4FD9BF3F3607524CAADA6AE424D
%26sver%3D3%26expire%3D1251460800%26key%3Dyt1%26factor%3D1.25%26burst%3D
40%26id%3D67392b7ac04ec674"
search for http and from the last occurrence take rest of the string
http%3A%2F%2Fv6.lscache3.c.youtube.com%2Fvideoplayback%3Fip%3D0.0.0.0%26sparams%3D
id%252Cexpire%252Cip%252Cipbits%252Citag%252Cburst%252Cfactor%26itag%3D5%26
ipbits%3D0%26
signature%3DD924DA3786E0B8187DBBC509D11A4B9E2856968B.
0E6847032937C4FD9BF3F3607524CAADA6AE424D%26sver%3D3%26
expire%3D1251460800%26key%3Dyt1%26factor%3D1.25%26burst%3D40%26
id%3D67392b7ac04ec674
URL decode the line
http://v6.lscache3.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%252Cexpire%252Cip%252Cipbits%252Citag%252Cburst%252Cfactor&itag=5&ipbits=0&signature=D924DA3786E0B8187DBBC509D11A4B9E2856968B.
0E6847032937C4FD9BF3F3607524CAADA6AE424D&sver=3&expire=1251460800&key=yt1&factor=1.25&burst=40&id=67392b7ac04ec674
Replace all %252 to %2
http://v6.lscache3.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cburst%2Cfactor&itag=5&ipbits=0&signature=D924DA3786E0B8187DBBC509D11A4B9E2856968B.
0E6847032937C4FD9BF3F3607524CAADA6AE424D&sver=3&expire=1251460800&key=yt1&factor=1.25&burst=40&id=67392b7ac04ec674
thats all
The above was the latest Youtube download logic, updated the code too
I got the details from the Opera user scripts and the scripts which can be used with firefox and Greasemonkey
It is simple
Here is the working example http://krishnan.co.in/utube/default.aspx (dead link)
Latest code here
And here is the code tube.zip (19.97 kb)
You can make the changes with some more validations and regular expressions