rg3 / youtube-dl (http://bitbucket.org/rg3/youtube-dl/wiki/)
youtube-dl is a small command-line program for downloading videos from YouTube.com.
youtube-dl: Download videos from YouTube.com
(and more...)
What is it?
youtube-dl is a small command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.x (x being at least 4), and it's not platform specific. It should work in your Unix box, in Windows or in Mac OS X. The latest version is 2010.08.04. It's released to the public domain, which means you can modify it, redistribute it or use it however you like.
I'll try to keep it updated if YouTube.com changes the way you access their videos. After all, it's a simple and short program. However, I can't guarantee anything. If you detect it stops working, check for new versions and/or inform me about the problem, indicating the program version you are using. If the program stops working and I can't solve the problem but you have a solution, I'd like to know it. If that happens and you feel you can maintain the program yourself, tell me. My contact information is at rg03.wordpress.com.
Thanks for all the feedback received so far. I'm glad people find my program useful.
Usage instructions
In Windows, once you have installed the Python interpreter, save the program with the .py extension and put it somewhere in the PATH. Try to follow the guide to install youtube-dl under Windows XP.
In Unix, download it, give it execution permission and copy it to one of the PATH directories (typically, /usr/local/bin).
After that, you should be able to call it from the command line as youtube-dl or youtube-dl.py. I will use youtube-dl in the following examples. Usage instructions are easy. Use youtube-dl followed by a video URL or identifier. Example: youtube-dl "http://www.youtube.com/watch?v=foobar
". The video will be saved to the file foobar.flv in that example. As YouTube.com videos are usually in Flash Video format, their extension should be flv. In Linux and other unices, video players using a recent version of ffmpeg can play them. That includes MPlayer, VLC, etc. Those two work under Windows and other platforms, but you could also get a specific FLV player of your taste.
If you try to run the program and you receive an error message containing the keyword SyntaxError near the end, it means your Python interpreter is too old.
More usage tips
The program is usually invoked as youtube-dl followed by options and the video URLs. Listing all the options here would make this text too long, so you can run youtube-dl --help and get a summary of them. From that point on you can start experimenting with the different options yourself. The most common ones are -t (or -l) to include the video title in the file name, and either -f or -b to download a high quality version of the video. Also, the -o option can specify the output file name and path. It allows special character sequences that can be used as templates to be replaced. See the "Output template" section for more details.
Download it
Note that if you directly click on these hyperlinks, your web browser will most likely display the program contents. It's usually better to right-click on it and choose the appropriate option, normally called Save Target As or Save Link As, depending on the web browser you are using.
2010.08.04
- MD5: 8b1b8b922b758aae28f6c158e9a1baba
- SHA1: 1497bbaecc3a9b0f343021ab9a1d940315a1003e
- SHA256: 55044a3232a119b82bc8b8b521fba54059b26ec09577606e4a12ce7903732a56
FAQ
The Frequently Asked Questions page contains answers to some common questions that pop up in my e-mail and in the issue tracker. Be sure to check it before reporting problems.
Supported sites
- YouTube.com.
- YouTube.com playlists (playlist URLs in "view_play_list" form).
- YouTube.com searches, using the special keyword "ytsearch" as a form of URL, as in "ytsearch:cute kittens". Do not forget the quotes if you want to include spaces in your search. Other variants are "ytsearchN" to download more than the first result, with N being a number, and "ytsearchall".
- metacafe.com.
- Google Video.
- Google Video searches ("gvsearch" keyword).
- Photobucket videos.
- Yahoo! video.
- Yahoo! video searches ("ybsearch" keyword).
- Dailymotion.
- A generic downloader that works in some sites.
Proxy support
youtube-dl supports downloading videos through a proxy, by setting the http_proxy environment variable to the proxy URL, as in http://proxy_machine_name:port/
.
YouTube formats
Using the -f option and other related options, you can specify the video format to be downloaded from YouTube. Instead of keeping a video format table here, I will refer you to the list of YouTube formats on Wikipedia.
Output template
The -o option allows users to indicate a template for the output file names. The basic usage is not to set any template arguments when downloading a single file, like in youtube-dl -o funny_video.flv "http://some/video
". However, it may contain special sequences that will be replaced when downloading each video. The special sequences have the format %(NAME)s. To clarify, that's a percent symbol followed by a name in parenthesis, followed by a lowercase S. Allowed names are:
- id: The sequence will be replaced by the video identifier.
- url: The sequence will be replaced by the video URL.
- uploader: The sequence will be replaced by the nickname of the person who uploaded the video.
- title: The sequence will be replaced by the literal video title.
- stitle: The sequence will be replaced by a simplified video title, restricted to alphanumeric characters and dashes.
- ext: The sequence will be replaced by the appropriate extension (like flv or mp4).
- epoch: The sequence will be replaced by the Unix epoch when creating the file.
- ord: The sequence will be replaced by a five-digit number that will be increased with each download, starting at zero.
As you may have guessed, the default template is %(id)s.%(ext)s. When some command line options are used, it's replaced by other templates like %(title)s-%(id)s.%(ext)s. You can specify your own.
Authors
- Ricardo Garcia Gonzalez: program core, YouTube.com InfoExtractor, metacafe.com InfoExtractor and YouTube playlist InfoExtractor.
- Danny Colligan: YouTube search InfoExtractor, ideas and patches.
- Benjamin Johnson: Google Video InfoExtractor, Photobucket InfoExtractor, Yahoo! Video InfoExtractor, generic InfoExtractor, ideas, patches, etc.
- Many other people contributing patches, code, ideas and kind messages. Too many to be listed here. You know who you are. Thank you very much.
Copyright © 2006-2010 Ricardo Garcia Gonzalez