Downloading Videos from YouTube
Now that we've seen how YouTube's API works, we'll now show how to download YouTube videos, first manually with your browser and then programmatically with code.
Downloading a YouTube Video with Your Browser
YouTube videos are stored in the Flash video (FLV) format, which is what we'll want to download.
Before we show how you can programmatically download a YouTube video, let's look at how you can download a video just by using your browser. To begin with, open any YouTube video page—say, the infamous Tay Zonday "Chocolate Rain" video, which is at http://www.youtube.com/watch?v=EwTZ2xpQwpA. From this URL, we can determine that the video ID (v=) is "EwTZ2xpQwpA".
YouTube Blocks You (by Design)
YouTube has a (hidden) URL that you can use to directly download a video, but you need to pass in two things, a video_id and a session token. A session token is an identifier that YouTube assigns to a browser that lasts for approximately 15 minutes. If you don't have a valid session token, YouTube will block your request to download a Flash video.
To see this in action, open your browser, go to http://www.youtube.com/get_video?video_id=EwTZ2xpQwpA, and notice how YouTube pretends the URL is a bad URL by sending back an HTTP 404 Not Found error to Internet Explorer browsers (Firefox 3 users will see a blank page), as shown in Figure 4-7. You get a 404 error because you must append a valid session token to the URL for the request to work.
Figure 4-7. YouTube will return ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access