]>
Commit | Line | Data |
---|---|---|
d94adc26 | 1 | % YOUTUBE-DL(1) |
6bcd846b | 2 | |
cfcec693 | 3 | # NAME |
94eb2dd1 | 4 | youtube-dl - download videos from youtube.com or other video platforms |
6bcd846b | 5 | |
cfcec693 FV |
6 | # SYNOPSIS |
7 | **youtube-dl** [OPTIONS] URL [URL...] | |
8 | ||
9 | # DESCRIPTION | |
6bcd846b DB |
10 | **youtube-dl** is a small command-line program to download videos from |
11 | YouTube.com and a few more sites. It requires the Python interpreter, version | |
280d6789 PH |
12 | 2.6, 2.7, or 3.3+, and it is not platform specific. It should work on |
13 | your Unix box, on Windows or on Mac OS X. It is released to the public domain, | |
6bcd846b DB |
14 | which means you can modify it, redistribute it or use it however you like. |
15 | ||
cfcec693 | 16 | # OPTIONS |
b625bc2c PH |
17 | -h, --help print this help text and exit |
18 | --version print program version and exit | |
be925dc6 PH |
19 | -U, --update update this program to latest version. Make sure |
20 | that you have sufficient permissions (run with | |
21 | sudo if needed) | |
63037593 PH |
22 | -i, --ignore-errors continue on download errors, for example to to |
23 | skip unavailable videos in a playlist | |
b186d949 PH |
24 | --abort-on-error Abort downloading of further videos (in the |
25 | playlist or the command line) if an error occurs | |
b625bc2c PH |
26 | --dump-user-agent display the current browser identification |
27 | --user-agent UA specify a custom user agent | |
3820df01 JMF |
28 | --referer REF specify a custom referer, use if the video access |
29 | is restricted to one domain | |
b625bc2c PH |
30 | --list-extractors List all supported extractors and the URLs they |
31 | would handle | |
d5a62e4f | 32 | --extractor-descriptions Output descriptions of all supported extractors |
dbc50fdf | 33 | --proxy URL Use the specified HTTP/HTTPS proxy |
891629c8 | 34 | --no-check-certificate Suppress HTTPS certificate validation. |
b186d949 | 35 | --cache-dir DIR Location in the filesystem where youtube-dl can |
9ab1018b PH |
36 | store downloaded information permanently. By |
37 | default $XDG_CACHE_HOME/youtube-dl or ~/.cache | |
38 | /youtube-dl . | |
8b25323a | 39 | --no-cache-dir Disable filesystem caching |
08c1d0d3 | 40 | |
cfcec693 | 41 | ## Video Selection: |
b625bc2c PH |
42 | --playlist-start NUMBER playlist video to start at (default is 1) |
43 | --playlist-end NUMBER playlist video to end at (default is last) | |
44 | --match-title REGEX download only matching titles (regex or caseless | |
45 | sub-string) | |
46 | --reject-title REGEX skip download for matching titles (regex or | |
47 | caseless sub-string) | |
48 | --max-downloads NUMBER Abort after downloading NUMBER files | |
49 | --min-filesize SIZE Do not download any videos smaller than SIZE | |
50 | (e.g. 50k or 44.6m) | |
51 | --max-filesize SIZE Do not download any videos larger than SIZE (e.g. | |
52 | 50k or 44.6m) | |
fc63faf0 PH |
53 | --date DATE download only videos uploaded in this date |
54 | --datebefore DATE download only videos uploaded before this date | |
55 | --dateafter DATE download only videos uploaded after this date | |
47192f92 | 56 | --no-playlist download only the currently playing video |
4481a754 | 57 | --age-limit YEARS download only videos suitable for the given age |
731e3dde | 58 | --download-archive FILE Download only videos not listed in the archive |
0037e029 PH |
59 | file. Record the IDs of all downloaded videos in |
60 | it. | |
6bcd846b | 61 | |
d5a62e4f | 62 | ## Download Options: |
8abbf43f PH |
63 | -r, --rate-limit LIMIT maximum download rate in bytes per second (e.g. |
64 | 50K or 4.2M) | |
d5a62e4f | 65 | -R, --retries RETRIES number of retries (default is 10) |
8abbf43f | 66 | --buffer-size SIZE size of download buffer (e.g. 1024 or 16K) |
d5a62e4f PH |
67 | (default is 1024) |
68 | --no-resize-buffer do not automatically adjust the buffer size. By | |
69 | default, the buffer size is automatically resized | |
70 | from an initial value of SIZE. | |
71 | ||
cfcec693 | 72 | ## Filesystem Options: |
6ce533a2 PH |
73 | -t, --title use title in file name (default) |
74 | --id use only video ID in file name | |
b625bc2c PH |
75 | -l, --literal [deprecated] alias of --title |
76 | -A, --auto-number number downloaded files starting from 00000 | |
77 | -o, --output TEMPLATE output filename template. Use %(title)s to get | |
78 | the title, %(uploader)s for the uploader name, | |
79 | %(uploader_id)s for the uploader nickname if | |
80 | different, %(autonumber)s to get an automatically | |
81 | incremented number, %(ext)s for the filename | |
b186d949 | 82 | extension, %(format)s for the format description |
f088ea54 PH |
83 | (like "22 - 1280x720" or "HD"),%(format_id)s for |
84 | the unique id of the format (like Youtube's | |
85 | itags: "137"),%(upload_date)s for the upload date | |
86 | (YYYYMMDD), %(extractor)s for the provider | |
87 | (youtube, metacafe, etc), %(id)s for the video id | |
88 | , %(playlist)s for the playlist the video is in, | |
89 | %(playlist_index)s for the position in the | |
90 | playlist and %% for a literal percent. Use - to | |
91 | output to stdout. Can also be used to download to | |
92 | a different directory, for example with -o '/my/d | |
93 | ownloads/%(uploader)s/%(title)s-%(id)s.%(ext)s' . | |
b625bc2c PH |
94 | --autonumber-size NUMBER Specifies the number of digits in %(autonumber)s |
95 | when it is present in output filename template or | |
1777d5a9 | 96 | --auto-number option is given |
b625bc2c PH |
97 | --restrict-filenames Restrict filenames to only ASCII characters, and |
98 | avoid "&" and spaces in filenames | |
99 | -a, --batch-file FILE file containing URLs to download ('-' for stdin) | |
100 | -w, --no-overwrites do not overwrite files | |
1777d5a9 PH |
101 | -c, --continue force resume of partially downloaded files. By |
102 | default, youtube-dl will resume downloads if | |
103 | possible. | |
b625bc2c PH |
104 | --no-continue do not resume partially downloaded files (restart |
105 | from beginning) | |
106 | --cookies FILE file to read cookies from and dump cookie jar in | |
107 | --no-part do not use .part files | |
108 | --no-mtime do not use the Last-modified header to set the | |
109 | file modification time | |
110 | --write-description write video description to a .description file | |
111 | --write-info-json write video metadata to a .info.json file | |
8abbf43f | 112 | --write-annotations write video annotations to a .annotation file |
d496a75d | 113 | --write-thumbnail write thumbnail image to disk |
6bcd846b | 114 | |
cfcec693 | 115 | ## Verbosity / Simulation Options: |
b625bc2c PH |
116 | -q, --quiet activates quiet mode |
117 | -s, --simulate do not download the video and do not write | |
118 | anything to disk | |
119 | --skip-download do not download the video | |
120 | -g, --get-url simulate, quiet but print URL | |
121 | -e, --get-title simulate, quiet but print title | |
1a2adf3f | 122 | --get-id simulate, quiet but print id |
b625bc2c PH |
123 | --get-thumbnail simulate, quiet but print thumbnail URL |
124 | --get-description simulate, quiet but print video description | |
125 | --get-filename simulate, quiet but print output filename | |
126 | --get-format simulate, quiet but print output format | |
d323bcb1 | 127 | -j, --dump-json simulate, quiet but print JSON information |
b625bc2c PH |
128 | --newline output progress bar as new lines |
129 | --no-progress do not print progress bar | |
130 | --console-title display progress in console titlebar | |
131 | -v, --verbose print various debugging information | |
132 | --dump-intermediate-pages print downloaded pages to debug problems(very | |
133 | verbose) | |
0037e029 PH |
134 | --write-pages Write downloaded intermediary pages to files in |
135 | the current directory to debug problems | |
6bcd846b | 136 | |
cfcec693 | 137 | ## Video Format Options: |
e1f900d6 | 138 | -f, --format FORMAT video format code, specify the order of |
08523ee2 PH |
139 | preference using slashes: "-f 22/17/18". "-f mp4" |
140 | and "-f flv" are also supported | |
b625bc2c PH |
141 | --all-formats download all available video formats |
142 | --prefer-free-formats prefer free video formats unless a specific one | |
143 | is requested | |
144 | --max-quality FORMAT highest quality format to download | |
145 | -F, --list-formats list all available formats (currently youtube | |
146 | only) | |
8ae7be3e PH |
147 | |
148 | ## Subtitle Options: | |
07ac9e2c PH |
149 | --write-sub write subtitle file |
150 | --write-auto-sub write automatic subtitle file (youtube only) | |
b625bc2c | 151 | --all-subs downloads all the available subtitles of the |
8ae7be3e | 152 | video |
b625bc2c | 153 | --list-subs lists all available subtitles for the video |
8ae7be3e PH |
154 | --sub-format FORMAT subtitle format (default=srt) ([sbv/vtt] youtube |
155 | only) | |
156 | --sub-lang LANGS languages of the subtitles to download (optional) | |
157 | separated by commas, use IETF language tags like | |
158 | 'en,pt' | |
6bcd846b | 159 | |
cfcec693 | 160 | ## Authentication Options: |
b625bc2c PH |
161 | -u, --username USERNAME account username |
162 | -p, --password PASSWORD account password | |
163 | -n, --netrc use .netrc authentication data | |
81b42336 | 164 | --video-password PASSWORD video password (vimeo only) |
6bcd846b | 165 | |
cfcec693 | 166 | ## Post-processing Options: |
b625bc2c PH |
167 | -x, --extract-audio convert video files to audio-only files (requires |
168 | ffmpeg or avconv and ffprobe or avprobe) | |
169 | --audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", "opus", or | |
170 | "wav"; best by default | |
171 | --audio-quality QUALITY ffmpeg/avconv audio quality specification, insert | |
172 | a value between 0 (better) and 9 (worse) for VBR | |
173 | or a specific bitrate like 128K (default 5) | |
174 | --recode-video FORMAT Encode the video to another format if necessary | |
175 | (currently supported: mp4|flv|ogg|webm) | |
176 | -k, --keep-video keeps the video file on disk after the post- | |
177 | processing; the video is erased by default | |
178 | --no-post-overwrites do not overwrite post-processed files; the post- | |
179 | processed files are overwritten by default | |
8ae7be3e PH |
180 | --embed-subs embed subtitles in the video (only for mp4 |
181 | videos) | |
8abbf43f | 182 | --add-metadata add metadata to the files |
6bcd846b | 183 | |
df4bad32 PH |
184 | # CONFIGURATION |
185 | ||
fb27c229 | 186 | You can configure youtube-dl by placing default arguments (such as `--extract-audio --no-mtime` to always extract the audio and not copy the mtime) into `/etc/youtube-dl.conf` and/or `~/.config/youtube-dl.conf`. On Windows, the configuration file locations are `%APPDATA%\youtube-dl\config.txt` and `C:\Users\<Yourname>\youtube-dl.conf`. |
df4bad32 | 187 | |
02531431 PH |
188 | # OUTPUT TEMPLATE |
189 | ||
190 | 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 is a percent symbol followed by a name in parenthesis, followed by a lowercase S. Allowed names are: | |
191 | ||
192 | - `id`: The sequence will be replaced by the video identifier. | |
193 | - `url`: The sequence will be replaced by the video URL. | |
194 | - `uploader`: The sequence will be replaced by the nickname of the person who uploaded the video. | |
195 | - `upload_date`: The sequence will be replaced by the upload date in YYYYMMDD format. | |
196 | - `title`: The sequence will be replaced by the video title. | |
877f4c45 PH |
197 | - `ext`: The sequence will be replaced by the appropriate extension (like flv or mp4). |
198 | - `epoch`: The sequence will be replaced by the Unix epoch when creating the file. | |
199 | - `autonumber`: The sequence will be replaced by a five-digit number that will be increased with each download, starting at zero. | |
7eab8dc7 | 200 | - `playlist`: The name or the id of the playlist that contains the video. |
d281274b | 201 | - `playlist_index`: The index of the video in the playlist, a five-digit number. |
02531431 | 202 | |
1083705f | 203 | The current default template is `%(title)s-%(id)s.%(ext)s`. |
02531431 PH |
204 | |
205 | In some cases, you don't want special characters such as 中, spaces, or &, such as when transferring the downloaded filename to a Windows system or the filename through an 8bit-unsafe channel. In these cases, add the `--restrict-filenames` flag to get a shorter title: | |
206 | ||
207 | $ youtube-dl --get-filename -o "%(title)s.%(ext)s" BaW_jenozKc | |
208 | youtube-dl test video ''_ä↭𝕐.mp4 # All kinds of weird characters | |
209 | $ youtube-dl --get-filename -o "%(title)s.%(ext)s" BaW_jenozKc --restrict-filenames | |
210 | youtube-dl_test_video_.mp4 # A simple file name | |
211 | ||
e31852ab JMF |
212 | # VIDEO SELECTION |
213 | ||
214 | Videos can be filtered by their upload date using the options `--date`, `--datebefore` or `--dateafter`, they accept dates in two formats: | |
215 | ||
216 | - Absolute dates: Dates in the format `YYYYMMDD`. | |
217 | - Relative dates: Dates in the format `(now|today)[+-][0-9](day|week|month|year)(s)?` | |
218 | ||
219 | Examples: | |
220 | ||
221 | $ youtube-dl --dateafter now-6months #will only download the videos uploaded in the last 6 months | |
222 | $ youtube-dl --date 19700101 #will only download the videos uploaded in January 1, 1970 | |
223 | $ youtube-dl --dateafter 20000101 --datebefore 20100101 #will only download the videos uploaded between 2000 and 2010 | |
224 | ||
cfcec693 | 225 | # FAQ |
447b1d71 PH |
226 | |
227 | ### Can you please put the -b option back? | |
228 | ||
2e1b3afe | 229 | Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the `-b` option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you're interested in. In that case, simply request it with the `-f` option and youtube-dl will try to download it. |
447b1d71 | 230 | |
f2a3a352 | 231 | ### I get HTTP error 402 when trying to download a video. What's this? |
447b1d71 | 232 | |
2e1b3afe | 233 | Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We're [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. |
447b1d71 PH |
234 | |
235 | ### I have downloaded a video but how can I play it? | |
236 | ||
237 | Once the video is fully downloaded, use any video player, such as [vlc](http://www.videolan.org) or [mplayer](http://www.mplayerhq.hu/). | |
238 | ||
239 | ### The links provided by youtube-dl -g are not working anymore | |
240 | ||
a0432a1e | 241 | The URLs youtube-dl outputs require the downloader to have the correct cookies. Use the `--cookies` option to write the required cookies into a file, and advise your downloader to read cookies from that file. Some sites also require a common user agent to be used, use `--dump-user-agent` to see the one in use by youtube-dl. |
447b1d71 | 242 | |
454d6691 PH |
243 | ### ERROR: no fmt_url_map or conn information found in video info |
244 | ||
5a2ba45e | 245 | youtube has switched to a new video info format in July 2011 which is not supported by old versions of youtube-dl. You can update youtube-dl with `sudo youtube-dl --update`. |
454d6691 | 246 | |
6c5b442a PH |
247 | ### ERROR: unable to download video ### |
248 | ||
249 | youtube requires an additional signature since September 2012 which is not supported by old versions of youtube-dl. You can update youtube-dl with `sudo youtube-dl --update`. | |
250 | ||
5cdfaeb3 | 251 | ### SyntaxError: Non-ASCII character ### |
6c5b442a PH |
252 | |
253 | The error | |
254 | ||
255 | File "youtube-dl", line 2 | |
256 | SyntaxError: Non-ASCII character '\x93' ... | |
257 | ||
258 | means you're using an outdated version of Python. Please update to Python 2.6 or 2.7. | |
259 | ||
5cdfaeb3 FV |
260 | ### What is this binary file? Where has the code gone? |
261 | ||
71f36332 | 262 | Since June 2012 (#342) youtube-dl is packed as an executable zipfile, simply unzip it (might need renaming to `youtube-dl.zip` first on some systems) or clone the git repository, as laid out above. If you modify the code, you can run it by executing the `__main__.py` file. To recompile the executable, run `make youtube-dl`. |
5cdfaeb3 | 263 | |
ce367443 FV |
264 | ### The exe throws a *Runtime error from Visual C++* |
265 | ||
266 | To run the exe you need to install first the [Microsoft Visual C++ 2008 Redistributable Package](http://www.microsoft.com/en-us/download/details.aspx?id=29). | |
267 | ||
cfcec693 | 268 | # COPYRIGHT |
803abae2 PH |
269 | |
270 | youtube-dl is released into the public domain by the copyright holders. | |
271 | ||
272 | This README file was originally written by Daniel Bolton (<https://github.com/dbbolton>) and is likewise released into the public domain. | |
6bcd846b | 273 | |
cfcec693 | 274 | # BUGS |
e133e121 | 275 | |
8236e851 | 276 | Bugs and suggestions should be reported at: <https://github.com/rg3/youtube-dl/issues> |
e133e121 PH |
277 | |
278 | Please include: | |
279 | ||
95fedbf8 FV |
280 | * Your exact command line, like `youtube-dl -t "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title"`. A common mistake is not to escape the `&`. Putting URLs in quotes should solve this problem. |
281 | * If possible re-run the command with `--verbose`, and include the full output, it is really helpful to us. | |
e133e121 PH |
282 | * The output of `youtube-dl --version` |
283 | * The output of `python --version` | |
284 | * The name and version of your Operating System ("Ubuntu 11.04 x64" or "Windows 7 x64" is usually enough). | |
4b235346 PH |
285 | |
286 | For discussions, join us in the irc channel #youtube-dl on freenode. |