1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "YOUTUBE-DL 1"
.TH YOUTUBE-DL 1 "2011-08-05" "perl v5.12.4" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
youtube\-dl \- download videos from youtube.com
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& youtube\-dl [options] url ...
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
youtube-dl is a script to download videos from youtube.com.
.PP
Once it is installed in your system, you should be able to call it from
the command line. Usage instructions are easy. Use youtube-dl followed
by a video \s-1URL\s0 or identifier. As an example, consider:
.PP
.Vb 1
\& youtube\-dl "http://www.youtube.com/watch?v=foobar"
.Ve
.PP
The video will be saved to the file \f(CW\*(C`foobar.flv\*(C'\fR in that example. Many
YouTube.com videos are in Flash Video format and their extension would
be \f(CW\*(C`flv\*(C'\fR. Other videos are encoded in H.264 and these usually have the
extension \f(CW\*(C`mp4\*(C'\fR. In Linux and other unices, video players using a
recent version of ffmpeg can play them. That includes MPlayer, \s-1VLC\s0,
xine, among others.
.SH "OPTIONS"
.IX Header "OPTIONS"
\&\fByoutube-dl\fR accepts options in the following categories
.IP "\-h, \-\-help" 4
.IX Item "-h, --help"
Print help text and exit.
.IP "\-v, \-\-version" 4
.IX Item "-v, --version"
Print program version and exit.
.IP "\-U, \-\-update" 4
.IX Item "-U, --update"
Update this program to the latest stable version.
.IP "\-i, \-\-ignore\-errors" 4
.IX Item "-i, --ignore-errors"
Ignore errors during download and continue processing.
.IP "\-r \fBL\fR, \-\-rate\-limit=\fBL\fR" 4
.IX Item "-r L, --rate-limit=L"
Limit the download speed to the specified maximum \fBL\fR (e.g., 50k or 44.6m).
.IP "\-R \fBR\fR, \-\-retries=\fBR\fR" 4
.IX Item "-R R, --retries=R"
Number \fBR\fR of retries for a given download (default is 10).
.IP "\-\-playlist\-start=\fBN\fR" 4
.IX Item "--playlist-start=N"
The number \fBN\fR of the video in a playlist where we should start downlading
(default is 1).
.IP "\-\-playlist\-end=\fBN\fR" 4
.IX Item "--playlist-end=N"
The number \fBN\fR of the video in a playlist where we should stop downloading
(default is \-1, which stands for the last video in the playlist).
.IP "\-\-dump\-user\-agent" 4
.IX Item "--dump-user-agent"
Display how youtube-dl will identify itself (the User-Agent string) to the
remote server.
.IP "\-u \fB\s-1UN\s0\fR, \-\-username=\fB\s-1UN\s0\fR" 4
.IX Item "-u UN, --username=UN"
Specify the youtube account username \fB\s-1UN\s0\fR. Some videos require an
account to be downloaded, mostly because they're flagged as mature
content.
.IP "\-p \fB\s-1PW\s0\fR, \-\-password=\fB\s-1PW\s0\fR" 4
.IX Item "-p PW, --password=PW"
Like the username, specifies the account password to be \fB\s-1PW\s0\fR.
.IP "\-n, \-\-netrc" 4
.IX Item "-n, --netrc"
Get authentication data from the standard unix .netrc file on the user's
home directory. The machine name is youtube regarding this usage.
.IP "\-f \fB\s-1FMT\s0\fR, \-\-format=\fB\s-1FMT\s0\fR" 4
.IX Item "-f FMT, --format=FMT"
Specify the video format (quality) in which to download the video.
.Sp
For youtube.com, in particular, the meaning of the format codes is given as:
.RS 4
.IP "WebM video at 480p: 43" 4
.IX Item "WebM video at 480p: 43"
.PD 0
.IP "WebM video at 720p: 45" 4
.IX Item "WebM video at 720p: 45"
.IP "H264 video in \s-1MP4\s0 container at 480p: 18" 4
.IX Item "H264 video in MP4 container at 480p: 18"
.IP "H264 video in \s-1MP4\s0 container at 720p: 22" 4
.IX Item "H264 video in MP4 container at 720p: 22"
.IP "H264 video in \s-1MP4\s0 container at 1080p: 37" 4
.IX Item "H264 video in MP4 container at 1080p: 37"
.IP "H264 video in \s-1FLV\s0 container at 360p: 34" 4
.IX Item "H264 video in FLV container at 360p: 34"
.IP "H264 video in \s-1FLV\s0 container at 480p: 35" 4
.IX Item "H264 video in FLV container at 480p: 35"
.IP "H263 video at 240p: 5" 4
.IX Item "H263 video at 240p: 5"
.IP "3GP video: 17" 4
.IX Item "3GP video: 17"
.RE
.RS 4
.PD
.Sp
Note that not all videos are available in all formats and that other
sites supported by \fByoutube-dl\fR may have different conventions for
their video formats.
.RE
.IP "\-\-all\-formats" 4
.IX Item "--all-formats"
Downloads all formats for which a video may be available.
.IP "\-\-max\-quality=\fB\s-1FMT\s0\fR" 4
.IX Item "--max-quality=FMT"
Limit the maximum quality of the videos to downloads to \fB\s-1FMT\s0\fR.
.IP "\-q, \-\-quiet" 4
.IX Item "-q, --quiet"
Activates quiet mode, avoiding many messages being written to the
terminal.
.IP "\-s, \-\-simulate" 4
.IX Item "-s, --simulate"
Simulate the operation, but do not download the video. Useful for
testing.
.IP "\-g, \-\-get\-url" 4
.IX Item "-g, --get-url"
Simulate the operation, like quiet mode, but show the \s-1URL\s0 that would be
used to download the video. Can be used with other download tools like
wget or aria2c.
.IP "\-e, \-\-get\-title" 4
.IX Item "-e, --get-title"
Simulate the operation, like quiet mode, but show the title of the video
that would be downloaded.
.IP "\-\-get\-thumbnail" 4
.IX Item "--get-thumbnail"
Simulate the operation, like quiet mode, but print the \s-1URL\s0 of of the video's
thumbnail.
.IP "\-\-get\-description" 4
.IX Item "--get-description"
Simulate the operation, like quiet mode, but print the description of the
video.
.IP "\-\-get\-filename" 4
.IX Item "--get-filename"
Simulate the operation, like quiet mode, but print the output filename.
.IP "\-\-no\-progress" 4
.IX Item "--no-progress"
Do not print the progress bar during downloads.
.IP "\-\-console\-title" 4
.IX Item "--console-title"
If possible, set the title of the console window with the progress of the
download.
.IP "\-t, \-\-title" 4
.IX Item "-t, --title"
Use the title of the video in the file name used to download the video.
.IP "\-l, \-\-literal" 4
.IX Item "-l, --literal"
Use the literal title of the video in file name used to download the
video. Can contain \*(L"weird\*(R" characters that are not filtered like with
the \-t option.
.IP "\-A, \-\-auto\-number" 4
.IX Item "-A, --auto-number"
When downloading multiple videos from a playlist, automatically number them,
in sequence, starting from 00000.
.IP "\-o \fB\s-1TPL\s0\fR, \-\-output=\fB\s-1TPL\s0\fR" 4
.IX Item "-o TPL, --output=TPL"
Specify a template \fB\s-1TPL\s0\fR for the names of the files to be created when
they are downloaded. The default filename is video_id.flv. But you can
also use the video title in the filename with the \f(CW\*(C`\-t\*(C'\fR or \f(CW\*(C`\-\-title\*(C'\fR
option, or preserve the literal title in the filename with the \f(CW\*(C`\-l\*(C'\fR or
\&\f(CW\*(C`\-\-literal\*(C'\fR option.
.IP "\-a \fBF\fR, \-\-batch\-file=\fBF\fR" 4
.IX Item "-a F, --batch-file=F"
Specify the name of a file containing URLs of videos to download from
youtube in batch mode. The file must contain one \s-1URL\s0 per line.
.IP "\-w, \-\-no\-overwrites" 4
.IX Item "-w, --no-overwrites"
Do no overwrite already existing files.
.IP "\-c, \-\-continue" 4
.IX Item "-c, --continue"
Resume partially downloaded files.
.IP "\-\-cookies=\fBF\fR" 4
.IX Item "--cookies=F"
Store the received cookies to file \fBF\fR (the \*(L"cookie jar\*(R").
.IP "\-\-no\-part" 4
.IX Item "--no-part"
Do not append the \fI.part\fR suffix do files that have not yet been completed.
.IP "\-\-no\-mtime" 4
.IX Item "--no-mtime"
Do not use the \fILast-modified\fR header to set the file modification time.
.IP "\-\-extract\-audio" 4
.IX Item "--extract-audio"
Create an audio-only file extracted from the video downloaded. Requires that
ffmpeg and ffprobe be installed.
.IP "\-\-audio\-format=\fB\s-1FORMAT\s0\fR" 4
.IX Item "--audio-format=FORMAT"
Set the audio format to be used for the extraction. Possible values are
\&\fIbest\fR, \fIaac\fR, \fImp3\fR, with \fIbest\fR being the default.
.SH "OUTPUT TEMPLATE"
.IX Header "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
\&\*(L"http://some/video\*(R". However, it may contain special sequences that will
be replaced when downloading each video.
.PP
The special sequences have the format \f(CW\*(C`%(NAME)s\*(C'\fR. To clarify, that's a
percent symbol followed by a name in parenthesis, followed by a
lowercase S. Allowed names are:
.IP "id" 4
.IX Item "id"
The sequence will be replaced by the video identifier.
.IP "url" 4
.IX Item "url"
The sequence will be replaced by the video \s-1URL\s0.
.IP "uploader" 4
.IX Item "uploader"
The sequence will be replaced by the nickname of the person who uploaded
the video.
.IP "title" 4
.IX Item "title"
The sequence will be replaced by the literal video title.
.IP "stitle" 4
.IX Item "stitle"
The sequence will be replaced by a simplified video title, restricted to
alphanumeric characters and dashes.
.IP "ext" 4
.IX Item "ext"
The sequence will be replaced by the appropriate extension (like \f(CW\*(C`flv\*(C'\fR
or \f(CW\*(C`mp4\*(C'\fR).
.IP "epoch" 4
.IX Item "epoch"
The sequence will be replaced by the Unix epoch when creating the file.
.PP
As you may have guessed, the default template is \f(CW\*(C`%(id)s.%(ext)s\*(C'\fR. When
some command line options are used, it's replaced by other templates
like \f(CW\*(C`%(title)s\-%(id)s.%(ext)s\*(C'\fR. You can specify your own.
.SH "AUTHOR"
.IX Header "AUTHOR"
youtube-dl was written by Ricardo Garcia Gonzalez and many contributors
from all around the internet. This manpage was written by Rogerio Brito
<rbrito@users.sf.net>.
|