Sunday, April 13, 2008

Download YouTube Videos as MP4 Files

An interesting side-effect of YouTube's recent push for higher quality videos is that most videos can be downloaded as MP4 files directly from YouTube. Until now, you could only get FLV files from your browser's cache or using one of the many websites that let you download YouTube videos. In fact, to download the MP4 files, you need to use the same URL like for FLV files and append "&fmt=18":

ID is the video's identification value, SIGNATURE is a value that prevents you from downloading the file just by knowing the ID. You could create this URL by looking at the source code of a YouTube page, but it's much easier to automatically generate it.

One way is to save the following link as a bookmarklet by dragging it to your Links bar (in Firefox, Opera) or right-clicking and adding it to your favorites (in Internet Explorer):

Download as MP4 (right-click and select Save '+ (navigator.appName=='Microsoft Internet Explorer'?'target':'link') +' as)';}void(0);">Get YouTube video

If you didn't manage to add the bookmarklet, this post has more detailed instructions.

When you want to download a YouTube video, click on the bookmarklet and you should see a new option below the embeddable code.

Because YouTube doesn't send the right MIME type, you shouldn't click on the download link. Right-click and select "save link as" or "save target as" and enter a proper name for the video. Make sure to use the .mp4 extension when you enter the filename.

Having to click on the bookmarklet is annoying, so this Greasemonkey script is a better alternative because it adds the download link automatically. It requires the Greasemonkey extension for Firefox or a similar plug-in for userscripts. Opera has built-in support for userscripts, so you only need to go to Tools > Preferences > Advanced > Content > JavaScript options, select the directory where you will put your script and copy the script to that directory.

YouTube's MP4 files have a higher resolution, stereo sound and can be played with applications like VLC, MPlayer, iTunes, QuickTime. Not all YouTube videos can be downloaded as MP4 files and the fallback format is FLV.

Note that YouTube's terms of use require you "not to access User Submissions or YouTube Content through any technology or means other than the video playback pages of the Website itself, the YouTube Embeddable Player, or other explicitly authorized means YouTube may designate," so these scripts could break YouTube's policies. The scripts only download files that are used by YouTube's player, so you may also find the videos in your browser's cache.