2008-07-22 20:52:09 +00:00
|
|
|
<!DOCTYPE html
|
|
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
|
|
<head>
|
|
|
|
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
|
|
|
|
<title>youtube-dl: Download videos from YouTube.com</title>
|
|
|
|
<style type="text/css"><!--
|
|
|
|
body {
|
|
|
|
font-family: sans-serif;
|
|
|
|
font-size: small;
|
|
|
|
}
|
|
|
|
h1 {
|
|
|
|
text-align: center;
|
|
|
|
text-decoration: underline;
|
|
|
|
color: #006699;
|
|
|
|
}
|
|
|
|
h2 {
|
|
|
|
color: #006699;
|
|
|
|
}
|
|
|
|
p {
|
|
|
|
text-align: justify;
|
|
|
|
margin-left: 5%;
|
|
|
|
margin-right: 5%;
|
|
|
|
}
|
|
|
|
ul {
|
|
|
|
margin-left: 5%;
|
|
|
|
margin-right: 5%;
|
|
|
|
list-style-type: square;
|
|
|
|
}
|
|
|
|
li {
|
|
|
|
margin-bottom: 0.5ex;
|
|
|
|
}
|
2008-07-25 21:42:02 +00:00
|
|
|
.smallnote {
|
2008-07-22 20:52:09 +00:00
|
|
|
font-size: x-small;
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
--></style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>youtube-dl: Download videos from YouTube.com</h1>
|
|
|
|
|
2008-07-25 21:42:02 +00:00
|
|
|
<p class="smallnote">(and more...)</p>
|
|
|
|
|
2008-07-22 20:52:09 +00:00
|
|
|
<h2>What is it?</h2>
|
|
|
|
|
|
|
|
<p><em>youtube-dl</em> is a small command-line program to download videos
|
|
|
|
from YouTube.com. It requires the <a href="http://www.python.org/">Python
|
|
|
|
interpreter</a>, version 2.4 or later, and it's not platform specific.
|
|
|
|
It should work in your Unix box, in Windows or in Mac OS X. The latest version
|
2008-07-25 21:42:02 +00:00
|
|
|
is <strong>@PROGRAM_VERSION@</strong>. It's released to the public domain,
|
|
|
|
which means you can modify it, redistribute it or use it however you like.</p>
|
2008-07-22 20:52:09 +00:00
|
|
|
|
|
|
|
<p>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 <a href="http://freshmeat.net/~rg3/">freshmeat.net</a>.</p>
|
|
|
|
|
|
|
|
<p>Thanks for all the feedback received so far. I'm glad people find my
|
|
|
|
program useful.</p>
|
|
|
|
|
|
|
|
<h2>Usage instructions</h2>
|
|
|
|
|
|
|
|
<p>In Windows, once you have installed the Python interpreter, save the
|
|
|
|
program with the <em>.py</em> extension and put it somewhere in the PATH.
|
|
|
|
Try to follow the
|
|
|
|
<a href="http://rg03.wordpress.com/youtube-dl-under-windows-xp/">guide to
|
|
|
|
install youtube-dl under Windows XP</a>.</p>
|
|
|
|
|
|
|
|
<p>In Unix, download it, give it execution permission and copy it to one
|
|
|
|
of the PATH directories (typically, <em>/usr/local/bin</em>).</p>
|
|
|
|
|
|
|
|
<p>After that, you should be able to call it from the command line as
|
|
|
|
<em>youtube-dl</em> or <em>youtube-dl.py</em>. I will use <em>youtube-dl</em>
|
|
|
|
in the following examples. Usage instructions are easy. Use <em>youtube-dl</em>
|
|
|
|
followed by a video URL or identifier. Example: <em>youtube-dl
|
|
|
|
"http://www.youtube.com/watch?v=foobar"</em>. The video will be saved
|
|
|
|
to the file <em>foobar.flv</em> in that example. As YouTube.com
|
|
|
|
videos are in Flash Video format, their extension should be <em>flv</em>.
|
|
|
|
In Linux and other unices, video players using a recent version of
|
|
|
|
<em>ffmpeg</em> 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.</p>
|
|
|
|
|
|
|
|
<p>If you try to run the program and you receive an error message containing the
|
|
|
|
keyword <em>SyntaxError</em> near the end, it means your Python interpreter
|
|
|
|
is too old.</p>
|
|
|
|
|
|
|
|
<h2>More usage tips</h2>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
|
|
<li>You can change the file name of the video using the -o option, like in
|
2008-07-25 21:42:02 +00:00
|
|
|
<em>youtube-dl -o vid.flv "http://www.youtube.com/watch?v=foobar"</em>.
|
2008-11-01 14:50:50 +00:00
|
|
|
Read the <a href="#otpl">Output template</a> section for more details on
|
|
|
|
this.</li>
|
2008-07-22 20:52:09 +00:00
|
|
|
|
|
|
|
<li>Some videos require an account to be downloaded, mostly because they're
|
|
|
|
flagged as mature content. You can pass the program a username and password
|
|
|
|
for a YouTube.com account with the -u and -p options, like <em>youtube-dl
|
|
|
|
-u myusername -p mypassword "http://www.youtube.com/watch?v=foobar"</em>.</li>
|
|
|
|
|
|
|
|
<li>The account data can also be read from the user .netrc file by indicating
|
|
|
|
the -n or --netrc option. The machine name is <em>youtube</em> in that
|
|
|
|
case.</li>
|
|
|
|
|
|
|
|
<li>The <em>simulate mode</em> (activated with -s or --simulate) can be used
|
|
|
|
to just get the real video URL and use it with a download manager if you
|
|
|
|
prefer that option.</li>
|
|
|
|
|
|
|
|
<li>The <em>quiet mode</em> (activated with -q or --quiet) can be used to
|
|
|
|
supress all output messages. This allows, in systems featuring /dev/stdout
|
|
|
|
and other similar special files, outputting the video data to standard output
|
|
|
|
in order to pipe it to another program without interferences.</li>
|
|
|
|
|
|
|
|
<li>The program can be told to simply print the final video URL to standard
|
|
|
|
output using the -g or --get-url option.</li>
|
|
|
|
|
2008-07-25 21:42:02 +00:00
|
|
|
<li>In a similar line, the -e or --get-title option tells the program to print
|
|
|
|
the video title.</li>
|
2008-07-22 20:52:09 +00:00
|
|
|
|
|
|
|
<li>The default filename is <em>video_id.flv</em>. But you can also use the
|
|
|
|
video title in the filename with the -t or --title option, or preserve the
|
|
|
|
literal title in the filename with the -l or --literal option.</li>
|
|
|
|
|
|
|
|
<li>You can make the program append <em>&fmt=something</em> to the URL
|
|
|
|
by using the -f or --format option. This makes it possible to download high
|
|
|
|
quality versions of the videos when available.</li>
|
|
|
|
|
2008-11-01 14:50:50 +00:00
|
|
|
<li>The -b or --best-quality option is an alias for -f 18.</li>
|
2008-07-22 20:52:09 +00:00
|
|
|
|
2008-11-01 14:50:50 +00:00
|
|
|
<li>The -m or --mobile-version option is an alias for -f 17.</li>
|
2008-07-25 21:42:02 +00:00
|
|
|
|
|
|
|
<li>Normally, the program will stop on the first error, but you can tell it
|
|
|
|
to attempt to download every video with the -i or --ignore-errors option.</li>
|
|
|
|
|
2009-01-31 11:05:25 +00:00
|
|
|
<li>The -a or --batch-file option lets you specify a file to read URLs from.
|
|
|
|
The file must contain one URL per line.</li>
|
|
|
|
|
2008-07-22 20:52:09 +00:00
|
|
|
<li><em>youtube-dl</em> honors the <em>http_proxy</em> environment variable
|
|
|
|
if you want to use a proxy. Set it to something like
|
|
|
|
<em>http://proxy.example.com:8080</em>, and do not leave the <em>http://</em>
|
|
|
|
prefix out.</li>
|
|
|
|
|
|
|
|
<li>You can get the program version by calling it as <em>youtube-dl
|
|
|
|
-v</em> or <em>youtube-dl --version</em>.</li>
|
|
|
|
|
|
|
|
<li>For usage instructions, use <em>youtube-dl -h</em> or <em>youtube-dl
|
|
|
|
--help.</em></li>
|
|
|
|
|
|
|
|
<li>You can cancel the program at any time pressing Ctrl+C. It may print
|
|
|
|
some error lines saying something about <em>KeyboardInterrupt</em>.
|
|
|
|
That's ok.</li>
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
2008-11-01 14:50:50 +00:00
|
|
|
<h2 id="otpl">Download it</h2>
|
2008-07-22 20:52:09 +00:00
|
|
|
|
|
|
|
<p>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 <em>Save
|
|
|
|
Target As</em> or <em>Save Link As</em>, depending on the web browser you
|
|
|
|
are using.</p>
|
|
|
|
|
|
|
|
<p><a href="youtube-dl">@PROGRAM_VERSION@</a></p>
|
|
|
|
<ul>
|
|
|
|
<li><strong>MD5</strong>: @PROGRAM_MD5SUM@</li>
|
|
|
|
<li><strong>SHA1</strong>: @PROGRAM_SHA1SUM@</li>
|
|
|
|
<li><strong>SHA256</strong>: @PROGRAM_SHA256SUM@</li>
|
|
|
|
</ul>
|
|
|
|
|
2008-07-25 21:42:02 +00:00
|
|
|
<h2>Output template</h2>
|
|
|
|
|
|
|
|
<p>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 <em>youtube-dl -o funny_video.flv 'http://some/video'</em>.
|
|
|
|
However, it may contain special sequences that will be replaced when
|
|
|
|
downloading each video. The special sequences have the format
|
|
|
|
<strong>%(NAME)s</strong>. To clarify, that's a percent symbol followed by a
|
|
|
|
name in parenthesis, followed by a lowercase S. Allowed names are:</p>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li><em>id</em>: The sequence will be replaced by the video identifier.</li>
|
|
|
|
<li><em>url</em>: The sequence will be replaced by the video URL.</li>
|
|
|
|
<li><em>uploader</em>: The sequence will be replaced by the nickname of the
|
|
|
|
person who uploaded the video.</li>
|
|
|
|
<li><em>title</em>: The sequence will be replaced by the literal video
|
|
|
|
title.</li>
|
|
|
|
<li><em>stitle</em>: The sequence will be replaced by a simplified video
|
2008-11-01 14:50:50 +00:00
|
|
|
title, restricted to alphanumeric characters and dashes.</li>
|
2008-07-25 21:42:02 +00:00
|
|
|
<li><em>ext</em>: The sequence will be replaced by the appropriate
|
2008-11-01 14:50:50 +00:00
|
|
|
extension (like <em>flv</em> or <em>mp4</em>).</li>
|
2008-07-25 21:42:02 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<p>As you may have guessed, the default template is <em>%(id)s.%(ext)s</em>.
|
|
|
|
When some command line options are used, it's replaced by other templates like
|
|
|
|
<em>%(title)s-%(id)s.%(ext)s</em>. You can specify your own.</p>
|
|
|
|
|
|
|
|
<h2>Authors</h2>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>Ricardo Garcia Gonzalez: program core, YouTube.com InfoExtractor,
|
|
|
|
metacafe.com InfoExtractor and YouTube playlist InfoExtractor.</li>
|
|
|
|
<li>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.</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<p class="smallnote">Copyright © 2006-2007 Ricardo Garcia Gonzalez</p>
|
2008-07-22 20:52:09 +00:00
|
|
|
</body>
|
|
|
|
</html>
|