mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
network/youtube-dl: Updated for version 2016.06.03.
Signed-off-by: Dimitris Zlatanidis <d.zlatanidis@gmail.com>
This commit is contained in:
parent
71dd9b6e22
commit
0f21dfa943
3 changed files with 447 additions and 95 deletions
|
@ -78,7 +78,7 @@ if this is not possible instead of searching.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-ignore\-config
|
.B \-\-ignore\-config
|
||||||
Do not read configuration files.
|
Do not read configuration files.
|
||||||
When given in the global configuration file /etc /youtube\-dl.conf: Do
|
When given in the global configuration file /etc/youtube\-dl.conf: Do
|
||||||
not read the user configuration in ~/.config/youtube\- dl/config
|
not read the user configuration in ~/.config/youtube\- dl/config
|
||||||
(%APPDATA%/youtube\-dl/config.txt on Windows)
|
(%APPDATA%/youtube\-dl/config.txt on Windows)
|
||||||
.RS
|
.RS
|
||||||
|
@ -89,6 +89,16 @@ Do not extract the videos of a playlist, only list them.
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
.B \-\-mark\-watched
|
||||||
|
Mark videos watched (YouTube only)
|
||||||
|
.RS
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B \-\-no\-mark\-watched
|
||||||
|
Do not mark videos watched (YouTube only)
|
||||||
|
.RS
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
.B \-\-no\-color
|
.B \-\-no\-color
|
||||||
Do not emit color codes in output
|
Do not emit color codes in output
|
||||||
.RS
|
.RS
|
||||||
|
@ -96,7 +106,9 @@ Do not emit color codes in output
|
||||||
.SS Network Options:
|
.SS Network Options:
|
||||||
.TP
|
.TP
|
||||||
.B \-\-proxy \f[I]URL\f[]
|
.B \-\-proxy \f[I]URL\f[]
|
||||||
Use the specified HTTP/HTTPS proxy.
|
Use the specified HTTP/HTTPS/SOCKS proxy.
|
||||||
|
To enable experimental SOCKS proxy, specify a proper scheme.
|
||||||
|
For example socks5://127.0.0.1:1080/.
|
||||||
Pass in an empty string (\-\-proxy "") for direct connection
|
Pass in an empty string (\-\-proxy "") for direct connection
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
|
@ -247,7 +259,7 @@ Download advertisements as well (experimental)
|
||||||
.RE
|
.RE
|
||||||
.SS Download Options:
|
.SS Download Options:
|
||||||
.TP
|
.TP
|
||||||
.B \-r, \-\-rate\-limit \f[I]LIMIT\f[]
|
.B \-r, \-\-limit\-rate \f[I]RATE\f[]
|
||||||
Maximum download rate in bytes per second (e.g.
|
Maximum download rate in bytes per second (e.g.
|
||||||
50K or 4.2M)
|
50K or 4.2M)
|
||||||
.RS
|
.RS
|
||||||
|
@ -258,6 +270,12 @@ Number of retries (default is 10), or "infinite".
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
.B \-\-fragment\-retries \f[I]RETRIES\f[]
|
||||||
|
Number of retries for a fragment (default is 10), or "infinite" (DASH
|
||||||
|
only)
|
||||||
|
.RS
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
.B \-\-buffer\-size \f[I]SIZE\f[]
|
.B \-\-buffer\-size \f[I]SIZE\f[]
|
||||||
Size of download buffer (e.g.
|
Size of download buffer (e.g.
|
||||||
1024 or 16K) (default is 1024)
|
1024 or 16K) (default is 1024)
|
||||||
|
@ -282,13 +300,24 @@ Set file xattribute ytdl.filesize with expected filesize (experimental)
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-hls\-prefer\-native
|
.B \-\-hls\-prefer\-native
|
||||||
Use the native HLS downloader instead of ffmpeg (experimental)
|
Use the native HLS downloader instead of ffmpeg
|
||||||
|
.RS
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B \-\-hls\-prefer\-ffmpeg
|
||||||
|
Use ffmpeg instead of the native HLS downloader
|
||||||
|
.RS
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.B \-\-hls\-use\-mpegts
|
||||||
|
Use the mpegts container for HLS videos, allowing to play the video
|
||||||
|
while downloading (some players may not be able to play it)
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-external\-downloader \f[I]COMMAND\f[]
|
.B \-\-external\-downloader \f[I]COMMAND\f[]
|
||||||
Use the specified external downloader.
|
Use the specified external downloader.
|
||||||
Currently supports aria2c,axel,curl,httpie,wget
|
Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
@ -413,7 +442,7 @@ File to read cookies from and dump cookie jar in
|
||||||
.B \-\-cache\-dir \f[I]DIR\f[]
|
.B \-\-cache\-dir \f[I]DIR\f[]
|
||||||
Location in the filesystem where youtube\-dl can store some downloaded
|
Location in the filesystem where youtube\-dl can store some downloaded
|
||||||
information permanently.
|
information permanently.
|
||||||
By default $XDG_CACHE_HOME /youtube\-dl or ~/.cache/youtube\-dl .
|
By default $XDG_CACHE_HOME/youtube\-dl or ~/.cache/youtube\-dl .
|
||||||
At the moment, only YouTube player files (for videos with obfuscated
|
At the moment, only YouTube player files (for videos with obfuscated
|
||||||
signatures) are cached, but that may change.
|
signatures) are cached, but that may change.
|
||||||
.RS
|
.RS
|
||||||
|
@ -636,7 +665,7 @@ Prefer free video formats unless a specific one is requested
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-F, \-\-list\-formats
|
.B \-F, \-\-list\-formats
|
||||||
List all available formats
|
List all available formats of requested videos
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
@ -660,7 +689,7 @@ Write subtitle file
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-write\-auto\-sub
|
.B \-\-write\-auto\-sub
|
||||||
Write automatic subtitle file (YouTube only)
|
Write automatically generated subtitle file (YouTube only)
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
@ -682,7 +711,7 @@ Subtitle format, accepts formats preference, for example: "srt" or
|
||||||
.TP
|
.TP
|
||||||
.B \-\-sub\-lang \f[I]LANGS\f[]
|
.B \-\-sub\-lang \f[I]LANGS\f[]
|
||||||
Languages of the subtitles to download (optional) separated by commas,
|
Languages of the subtitles to download (optional) separated by commas,
|
||||||
use IETF language tags like \[aq]en,pt\[aq]
|
use \-\-list\- subs for available language tags
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.SS Authentication Options:
|
.SS Authentication Options:
|
||||||
|
@ -756,7 +785,7 @@ overwritten by default
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-embed\-subs
|
.B \-\-embed\-subs
|
||||||
Embed subtitles in the video (only for mkv and mp4 videos)
|
Embed subtitles in the video (only for mp4, webm and mkv videos)
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
@ -816,7 +845,7 @@ Example: \-\-exec \[aq]adb push {} /sdcard/Music/ && rm {}\[aq]
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-convert\-subtitles \f[I]FORMAT\f[]
|
.B \-\-convert\-subs \f[I]FORMAT\f[]
|
||||||
Convert the subtitles to other format (currently supported: srt|ass|vtt)
|
Convert the subtitles to other format (currently supported: srt|ass|vtt)
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
|
@ -824,23 +853,32 @@ Convert the subtitles to other format (currently supported: srt|ass|vtt)
|
||||||
.PP
|
.PP
|
||||||
You can configure youtube\-dl by placing any supported command line
|
You can configure youtube\-dl by placing any supported command line
|
||||||
option to a configuration file.
|
option to a configuration file.
|
||||||
On Linux, the system wide configuration file is located at
|
On Linux and OS X, the system wide configuration file is located at
|
||||||
\f[C]/etc/youtube\-dl.conf\f[] and the user wide configuration file at
|
\f[C]/etc/youtube\-dl.conf\f[] and the user wide configuration file at
|
||||||
\f[C]~/.config/youtube\-dl/config\f[].
|
\f[C]~/.config/youtube\-dl/config\f[].
|
||||||
On Windows, the user wide configuration file locations are
|
On Windows, the user wide configuration file locations are
|
||||||
\f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] or
|
\f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] or
|
||||||
\f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[].
|
\f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[].
|
||||||
|
.PP
|
||||||
For example, with the following configuration file youtube\-dl will
|
For example, with the following configuration file youtube\-dl will
|
||||||
always extract the audio, not copy the mtime and use a proxy:
|
always extract the audio, not copy the mtime, use a proxy and save all
|
||||||
|
videos under \f[C]Movies\f[] directory in your home directory:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
\-\-extract\-audio
|
\-x
|
||||||
\-\-no\-mtime
|
\-\-no\-mtime
|
||||||
\-\-proxy\ 127.0.0.1:3128
|
\-\-proxy\ 127.0.0.1:3128
|
||||||
|
\-o\ ~/Movies/%(title)s.%(ext)s
|
||||||
\f[]
|
\f[]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
|
Note that options in configuration file are just the same options aka
|
||||||
|
switches used in regular command line calls thus there \f[B]must be no
|
||||||
|
whitespace\f[] after \f[C]\-\f[] or \f[C]\-\-\f[], e.g.
|
||||||
|
\f[C]\-o\f[] or \f[C]\-\-proxy\f[] but not \f[C]\-\ o\f[] or
|
||||||
|
\f[C]\-\-\ proxy\f[].
|
||||||
|
.PP
|
||||||
You can use \f[C]\-\-ignore\-config\f[] if you want to disable the
|
You can use \f[C]\-\-ignore\-config\f[] if you want to disable the
|
||||||
configuration file for a particular youtube\-dl run.
|
configuration file for a particular youtube\-dl run.
|
||||||
.SS Authentication with \f[C]\&.netrc\f[] file
|
.SS Authentication with \f[C]\&.netrc\f[] file
|
||||||
|
@ -853,7 +891,7 @@ execution and prevent tracking plain text passwords in the shell command
|
||||||
history.
|
history.
|
||||||
You can achieve this using a \f[C]\&.netrc\f[]
|
You can achieve this using a \f[C]\&.netrc\f[]
|
||||||
file (http://stackoverflow.com/tags/.netrc/info) on per extractor basis.
|
file (http://stackoverflow.com/tags/.netrc/info) on per extractor basis.
|
||||||
For that you will need to create a\f[C]\&.netrc\f[] file in your
|
For that you will need to create a \f[C]\&.netrc\f[] file in your
|
||||||
\f[C]$HOME\f[] and restrict permissions to read/write by you only:
|
\f[C]$HOME\f[] and restrict permissions to read/write by you only:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
|
@ -891,6 +929,9 @@ variable manually.
|
||||||
.PP
|
.PP
|
||||||
The \f[C]\-o\f[] option allows users to indicate a template for the
|
The \f[C]\-o\f[] option allows users to indicate a template for the
|
||||||
output file names.
|
output file names.
|
||||||
|
.PP
|
||||||
|
\f[B]tl;dr:\f[] navigate me to examples (#output-template-examples).
|
||||||
|
.PP
|
||||||
The basic usage is not to set any template arguments when downloading a
|
The basic usage is not to set any template arguments when downloading a
|
||||||
single file, like in
|
single file, like in
|
||||||
\f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[].
|
\f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[].
|
||||||
|
@ -901,39 +942,147 @@ To clarify, that is a percent symbol followed by a name in parentheses,
|
||||||
followed by a lowercase S.
|
followed by a lowercase S.
|
||||||
Allowed names are:
|
Allowed names are:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]id\f[]: The sequence will be replaced by the video identifier.
|
\f[C]id\f[]: Video identifier
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]url\f[]: The sequence will be replaced by the video URL.
|
\f[C]title\f[]: Video title
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]uploader\f[]: The sequence will be replaced by the nickname of the
|
\f[C]url\f[]: Video URL
|
||||||
person who uploaded the video.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]upload_date\f[]: The sequence will be replaced by the upload date
|
\f[C]ext\f[]: Video filename extension
|
||||||
in YYYYMMDD format.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]title\f[]: The sequence will be replaced by the video title.
|
\f[C]alt_title\f[]: A secondary title of the video
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ext\f[]: The sequence will be replaced by the appropriate extension
|
\f[C]display_id\f[]: An alternative identifier for the video
|
||||||
(like flv or mp4).
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]epoch\f[]: The sequence will be replaced by the Unix epoch when
|
\f[C]uploader\f[]: Full name of the video uploader
|
||||||
creating the file.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]autonumber\f[]: The sequence will be replaced by a five\-digit
|
\f[C]license\f[]: License name the video is licensed under
|
||||||
number that will be increased with each download, starting at zero.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]playlist\f[]: The sequence will be replaced by the name or the id
|
\f[C]creator\f[]: The creator of the video
|
||||||
of the playlist that contains the video.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]playlist_index\f[]: The sequence will be replaced by the index of
|
\f[C]release_date\f[]: The date (YYYYMMDD) when the video was released
|
||||||
the video in the playlist padded with leading zeros according to the
|
|
||||||
total length of the playlist.
|
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]format_id\f[]: The sequence will be replaced by the format code
|
\f[C]timestamp\f[]: UNIX timestamp of the moment the video became
|
||||||
specified by \f[C]\-\-format\f[].
|
available
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]duration\f[]: The sequence will be replaced by the length of the
|
\f[C]upload_date\f[]: Video upload date (YYYYMMDD)
|
||||||
video in seconds.
|
.IP \[bu] 2
|
||||||
|
\f[C]uploader_id\f[]: Nickname or id of the video uploader
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]location\f[]: Physical location where the video was filmed
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]duration\f[]: Length of the video in seconds
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]view_count\f[]: How many users have watched the video on the
|
||||||
|
platform
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]like_count\f[]: Number of positive ratings of the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]dislike_count\f[]: Number of negative ratings of the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]repost_count\f[]: Number of reposts of the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]average_rating\f[]: Average rating give by users, the scale used
|
||||||
|
depends on the webpage
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]comment_count\f[]: Number of comments on the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]age_limit\f[]: Age restriction for the video (years)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]format\f[]: A human\-readable description of the format
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]format_id\f[]: Format code specified by \f[C]\-\-format\f[]
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]format_note\f[]: Additional info about the format
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]width\f[]: Width of the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]height\f[]: Height of the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]resolution\f[]: Textual description of width and height
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]tbr\f[]: Average bitrate of audio and video in KBit/s
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]abr\f[]: Average audio bitrate in KBit/s
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]acodec\f[]: Name of the audio codec in use
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]asr\f[]: Audio sampling rate in Hertz
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]vbr\f[]: Average video bitrate in KBit/s
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]fps\f[]: Frame rate
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]vcodec\f[]: Name of the video codec in use
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]container\f[]: Name of the container format
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]filesize\f[]: The number of bytes, if known in advance
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]filesize_approx\f[]: An estimate for the number of bytes
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]protocol\f[]: The protocol that will be used for the actual
|
||||||
|
download
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]extractor\f[]: Name of the extractor
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]extractor_key\f[]: Key name of the extractor
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]epoch\f[]: Unix epoch when creating the file
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]autonumber\f[]: Five\-digit number that will be increased with each
|
||||||
|
download, starting at zero
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]playlist\f[]: Name or id of the playlist that contains the video
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]playlist_index\f[]: Index of the video in the playlist padded with
|
||||||
|
leading zeros according to the total length of the playlist
|
||||||
|
.PP
|
||||||
|
Available for the video that belongs to some logical chapter or section:
|
||||||
|
\- \f[C]chapter\f[]: Name or title of the chapter the video belongs to
|
||||||
|
\- \f[C]chapter_number\f[]: Number of the chapter the video belongs to
|
||||||
|
\- \f[C]chapter_id\f[]: Id of the chapter the video belongs to
|
||||||
|
.PP
|
||||||
|
Available for the video that is an episode of some series or programme:
|
||||||
|
\- \f[C]series\f[]: Title of the series or programme the video episode
|
||||||
|
belongs to \- \f[C]season\f[]: Title of the season the video episode
|
||||||
|
belongs to \- \f[C]season_number\f[]: Number of the season the video
|
||||||
|
episode belongs to \- \f[C]season_id\f[]: Id of the season the video
|
||||||
|
episode belongs to \- \f[C]episode\f[]: Title of the video episode \-
|
||||||
|
\f[C]episode_number\f[]: Number of the video episode within a season \-
|
||||||
|
\f[C]episode_id\f[]: Id of the video episode
|
||||||
|
.PP
|
||||||
|
Available for the media that is a track or a part of a music album: \-
|
||||||
|
\f[C]track\f[]: Title of the track \- \f[C]track_number\f[]: Number of
|
||||||
|
the track within an album or a disc \- \f[C]track_id\f[]: Id of the
|
||||||
|
track \- \f[C]artist\f[]: Artist(s) of the track \- \f[C]genre\f[]:
|
||||||
|
Genre(s) of the track \- \f[C]album\f[]: Title of the album the track
|
||||||
|
belongs to \- \f[C]album_type\f[]: Type of the album \-
|
||||||
|
\f[C]album_artist\f[]: List of all artists appeared on the album \-
|
||||||
|
\f[C]disc_number\f[]: Number of the disc or other physical medium the
|
||||||
|
track belongs to \- \f[C]release_year\f[]: Year (YYYY) when the album
|
||||||
|
was released
|
||||||
|
.PP
|
||||||
|
Each aforementioned sequence when referenced in output template will be
|
||||||
|
replaced by the actual value corresponding to the sequence name.
|
||||||
|
Note that some of the sequences are not guaranteed to be present since
|
||||||
|
they depend on the metadata obtained by particular extractor, such
|
||||||
|
sequences will be replaced with \f[C]NA\f[].
|
||||||
|
.PP
|
||||||
|
For example for \f[C]\-o\ %(title)s\-%(id)s.%(ext)s\f[] and mp4 video
|
||||||
|
with title \f[C]youtube\-dl\ test\ video\f[] and id
|
||||||
|
\f[C]BaW_jenozKcj\f[] this will result in a
|
||||||
|
\f[C]youtube\-dl\ test\ video\-BaW_jenozKcj.mp4\f[] file created in the
|
||||||
|
current directory.
|
||||||
|
.PP
|
||||||
|
Output template can also contain arbitrary hierarchical path, e.g.
|
||||||
|
\f[C]\-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\f[]
|
||||||
|
that will result in downloading each video in a directory corresponding
|
||||||
|
to this path template.
|
||||||
|
Any missing directory will be automatically created for you.
|
||||||
|
.PP
|
||||||
|
To specify percent literal in output template use \f[C]%%\f[].
|
||||||
|
To output to stdout use \f[C]\-o\ \-\f[].
|
||||||
.PP
|
.PP
|
||||||
The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[].
|
The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[].
|
||||||
.PP
|
.PP
|
||||||
|
@ -942,54 +1091,151 @@ or &, such as when transferring the downloaded filename to a Windows
|
||||||
system or the filename through an 8bit\-unsafe channel.
|
system or the filename through an 8bit\-unsafe channel.
|
||||||
In these cases, add the \f[C]\-\-restrict\-filenames\f[] flag to get a
|
In these cases, add the \f[C]\-\-restrict\-filenames\f[] flag to get a
|
||||||
shorter title:
|
shorter title:
|
||||||
|
.SS Output template examples
|
||||||
|
.PP
|
||||||
|
Note on Windows you may need to use double quotes instead of single.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc
|
$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc
|
||||||
youtube\-dl\ test\ video\ \[aq]\[aq]_ä↭𝕐.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters
|
youtube\-dl\ test\ video\ \[aq]\[aq]_ä↭𝕐.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters
|
||||||
$\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc\ \-\-restrict\-filenames
|
|
||||||
|
$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc\ \-\-restrict\-filenames
|
||||||
youtube\-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name
|
youtube\-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name
|
||||||
|
|
||||||
|
#\ Download\ YouTube\ playlist\ videos\ in\ separate\ directory\ indexed\ by\ video\ order\ in\ a\ playlist
|
||||||
|
$\ youtube\-dl\ \-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re
|
||||||
|
|
||||||
|
#\ Download\ all\ playlists\ of\ YouTube\ channel/user\ keeping\ each\ playlist\ in\ separate\ directory:
|
||||||
|
$\ youtube\-dl\ \-o\ \[aq]%(uploader)s/%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/user/TheLinuxFoundation/playlists
|
||||||
|
|
||||||
|
#\ Download\ Udemy\ course\ keeping\ each\ chapter\ in\ separate\ directory\ under\ MyVideos\ directory\ in\ your\ home
|
||||||
|
$\ youtube\-dl\ \-u\ user\ \-p\ password\ \-o\ \[aq]~/MyVideos/%(playlist)s/%(chapter_number)s\ \-\ %(chapter)s/%(title)s.%(ext)s\[aq]\ https://www.udemy.com/java\-tutorial/
|
||||||
|
|
||||||
|
#\ Download\ entire\ series\ season\ keeping\ each\ series\ and\ each\ season\ in\ separate\ directory\ under\ C:/MyVideos
|
||||||
|
$\ youtube\-dl\ \-o\ "C:/MyVideos/%(series)s/%(season_number)s\ \-\ %(season)s/%(episode_number)s\ \-\ %(episode)s.%(ext)s"\ http://videomore.ru/kino_v_detalayah/5_sezon/367617
|
||||||
|
|
||||||
|
#\ Stream\ the\ video\ being\ downloaded\ to\ stdout
|
||||||
|
$\ youtube\-dl\ \-o\ \-\ BaW_jenozKc
|
||||||
\f[]
|
\f[]
|
||||||
.fi
|
.fi
|
||||||
.SH FORMAT SELECTION
|
.SH FORMAT SELECTION
|
||||||
.PP
|
.PP
|
||||||
By default youtube\-dl tries to download the best quality, but sometimes
|
By default youtube\-dl tries to download the best available quality,
|
||||||
you may want to download in a different format.
|
i.e.
|
||||||
The simplest case is requesting a specific format, for example
|
if you want the best quality you \f[B]don\[aq]t need\f[] to pass any
|
||||||
\f[C]\-f\ 22\f[].
|
special options, youtube\-dl will guess it for you by \f[B]default\f[].
|
||||||
You can get the list of available formats using
|
.PP
|
||||||
\f[C]\-\-list\-formats\f[], you can also use a file extension (currently
|
But sometimes you may want to download in a different format, for
|
||||||
it supports aac, m4a, mp3, mp4, ogg, wav, webm) or the special names
|
example when you are on a slow or intermittent connection.
|
||||||
\f[C]best\f[], \f[C]bestvideo\f[], \f[C]bestaudio\f[] and
|
The key mechanism for achieving this is so called \f[I]format
|
||||||
\f[C]worst\f[].
|
selection\f[] based on which you can explicitly specify desired format,
|
||||||
|
select formats based on some criterion or criteria, setup precedence and
|
||||||
|
much more.
|
||||||
|
.PP
|
||||||
|
The general syntax for format selection is \f[C]\-\-format\ FORMAT\f[]
|
||||||
|
or shorter \f[C]\-f\ FORMAT\f[] where \f[C]FORMAT\f[] is a \f[I]selector
|
||||||
|
expression\f[], i.e.
|
||||||
|
an expression that describes format or formats you would like to
|
||||||
|
download.
|
||||||
|
.PP
|
||||||
|
\f[B]tl;dr:\f[] navigate me to examples (#format-selection-examples).
|
||||||
|
.PP
|
||||||
|
The simplest case is requesting a specific format, for example with
|
||||||
|
\f[C]\-f\ 22\f[] you can download the format with format code equal to
|
||||||
|
22.
|
||||||
|
You can get the list of available format codes for particular video
|
||||||
|
using \f[C]\-\-list\-formats\f[] or \f[C]\-F\f[].
|
||||||
|
Note that these format codes are extractor specific.
|
||||||
|
.PP
|
||||||
|
You can also use a file extension (currently \f[C]3gp\f[], \f[C]aac\f[],
|
||||||
|
\f[C]flv\f[], \f[C]m4a\f[], \f[C]mp3\f[], \f[C]mp4\f[], \f[C]ogg\f[],
|
||||||
|
\f[C]wav\f[], \f[C]webm\f[] are supported) to download best quality
|
||||||
|
format of particular file extension served as a single file, e.g.
|
||||||
|
\f[C]\-f\ webm\f[] will download best quality format with \f[C]webm\f[]
|
||||||
|
extension served as a single file.
|
||||||
|
.PP
|
||||||
|
You can also use special names to select particular edge case format: \-
|
||||||
|
\f[C]best\f[]: Select best quality format represented by single file
|
||||||
|
with video and audio \- \f[C]worst\f[]: Select worst quality format
|
||||||
|
represented by single file with video and audio \- \f[C]bestvideo\f[]:
|
||||||
|
Select best quality video only format (e.g.
|
||||||
|
DASH video), may not be available \- \f[C]worstvideo\f[]: Select worst
|
||||||
|
quality video only format, may not be available \- \f[C]bestaudio\f[]:
|
||||||
|
Select best quality audio only format, may not be available \-
|
||||||
|
\f[C]worstaudio\f[]: Select worst quality audio only format, may not be
|
||||||
|
available
|
||||||
|
.PP
|
||||||
|
For example, to download worst quality video only format you can use
|
||||||
|
\f[C]\-f\ worstvideo\f[].
|
||||||
.PP
|
.PP
|
||||||
If you want to download multiple videos and they don\[aq]t have the same
|
If you want to download multiple videos and they don\[aq]t have the same
|
||||||
formats available, you can specify the order of preference using
|
formats available, you can specify the order of preference using
|
||||||
slashes, as in \f[C]\-f\ 22/17/18\f[].
|
slashes.
|
||||||
You can also filter the video results by putting a condition in
|
Note that slash is left\-associative, i.e.
|
||||||
|
formats on the left hand side are preferred, for example
|
||||||
|
\f[C]\-f\ 22/17/18\f[] will download format 22 if it\[aq]s available,
|
||||||
|
otherwise it will download format 17 if it\[aq]s available, otherwise it
|
||||||
|
will download format 18 if it\[aq]s available, otherwise it will
|
||||||
|
complain that no suitable formats are available for download.
|
||||||
|
.PP
|
||||||
|
If you want to download several formats of the same video use comma as a
|
||||||
|
separator, e.g.
|
||||||
|
\f[C]\-f\ 22,17,18\f[] will download all these three formats, of course
|
||||||
|
if they are available.
|
||||||
|
Or more sophisticated example combined with precedence feature
|
||||||
|
\f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[].
|
||||||
|
.PP
|
||||||
|
You can also filter the video formats by putting a condition in
|
||||||
brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or
|
brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or
|
||||||
\f[C]\-f\ "[filesize>10M]"\f[]).
|
\f[C]\-f\ "[filesize>10M]"\f[]).
|
||||||
This works for filesize, height, width, tbr, abr, vbr, asr, and fps and
|
.PP
|
||||||
the comparisons <, <=, >, >=, =, != and for ext, acodec, vcodec,
|
The following numeric meta fields can be used with comparisons
|
||||||
container, and protocol and the comparisons =, != .
|
\f[C]<\f[], \f[C]<=\f[], \f[C]>\f[], \f[C]>=\f[], \f[C]=\f[] (equals),
|
||||||
|
\f[C]!=\f[] (not equals): \- \f[C]filesize\f[]: The number of bytes, if
|
||||||
|
known in advance \- \f[C]width\f[]: Width of the video, if known \-
|
||||||
|
\f[C]height\f[]: Height of the video, if known \- \f[C]tbr\f[]: Average
|
||||||
|
bitrate of audio and video in KBit/s \- \f[C]abr\f[]: Average audio
|
||||||
|
bitrate in KBit/s \- \f[C]vbr\f[]: Average video bitrate in KBit/s \-
|
||||||
|
\f[C]asr\f[]: Audio sampling rate in Hertz \- \f[C]fps\f[]: Frame rate
|
||||||
|
.PP
|
||||||
|
Also filtering work for comparisons \f[C]=\f[] (equals), \f[C]!=\f[]
|
||||||
|
(not equals), \f[C]^=\f[] (begins with), \f[C]$=\f[] (ends with),
|
||||||
|
\f[C]*=\f[] (contains) and following string meta fields: \-
|
||||||
|
\f[C]ext\f[]: File extension \- \f[C]acodec\f[]: Name of the audio codec
|
||||||
|
in use \- \f[C]vcodec\f[]: Name of the video codec in use \-
|
||||||
|
\f[C]container\f[]: Name of the container format \- \f[C]protocol\f[]:
|
||||||
|
The protocol that will be used for the actual download, lower\-case.
|
||||||
|
\f[C]http\f[], \f[C]https\f[], \f[C]rtsp\f[], \f[C]rtmp\f[],
|
||||||
|
\f[C]rtmpe\f[], \f[C]m3u8\f[], or \f[C]m3u8_native\f[] \-
|
||||||
|
\f[C]format_id\f[]: A short description of the format
|
||||||
|
.PP
|
||||||
|
Note that none of the aforementioned meta fields are guaranteed to be
|
||||||
|
present since this solely depends on the metadata obtained by particular
|
||||||
|
extractor, i.e.
|
||||||
|
the metadata offered by video hoster.
|
||||||
|
.PP
|
||||||
Formats for which the value is not known are excluded unless you put a
|
Formats for which the value is not known are excluded unless you put a
|
||||||
question mark (?) after the operator.
|
question mark (\f[C]?\f[]) after the operator.
|
||||||
You can combine format filters, so
|
You can combine format filters, so
|
||||||
\f[C]\-f\ "[height\ <=?\ 720][tbr>500]"\f[] selects up to 720p videos
|
\f[C]\-f\ "[height\ <=?\ 720][tbr>500]"\f[] selects up to 720p videos
|
||||||
(or videos where the height is not known) with a bitrate of at least 500
|
(or videos where the height is not known) with a bitrate of at least 500
|
||||||
KBit/s.
|
KBit/s.
|
||||||
Use commas to download multiple formats, such as
|
.PP
|
||||||
\f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[].
|
|
||||||
You can merge the video and audio of two formats into a single file
|
You can merge the video and audio of two formats into a single file
|
||||||
using \f[C]\-f\ <video\-format>+<audio\-format>\f[] (requires ffmpeg or
|
using \f[C]\-f\ <video\-format>+<audio\-format>\f[] (requires ffmpeg or
|
||||||
avconv), for example \f[C]\-f\ bestvideo+bestaudio\f[].
|
avconv installed), for example \f[C]\-f\ bestvideo+bestaudio\f[] will
|
||||||
|
download best video only format, best audio only format and mux them
|
||||||
|
together with ffmpeg/avconv.
|
||||||
|
.PP
|
||||||
Format selectors can also be grouped using parentheses, for example if
|
Format selectors can also be grouped using parentheses, for example if
|
||||||
you want to download the best mp4 and webm formats with a height lower
|
you want to download the best mp4 and webm formats with a height lower
|
||||||
than 480 you can use \f[C]\-f\ \[aq](mp4,webm)[height<480]\[aq]\f[].
|
than 480 you can use \f[C]\-f\ \[aq](mp4,webm)[height<480]\[aq]\f[].
|
||||||
.PP
|
.PP
|
||||||
Since the end of April 2015 and version 2015.04.26 youtube\-dl uses
|
Since the end of April 2015 and version 2015.04.26 youtube\-dl uses
|
||||||
\f[C]\-f\ bestvideo+bestaudio/best\f[] as default format selection (see
|
\f[C]\-f\ bestvideo+bestaudio/best\f[] as default format selection (see
|
||||||
#5447, #5456).
|
#5447 (https://github.com/rg3/youtube-dl/issues/5447),
|
||||||
|
#5456 (https://github.com/rg3/youtube-dl/issues/5456)).
|
||||||
If ffmpeg or avconv are installed this results in downloading
|
If ffmpeg or avconv are installed this results in downloading
|
||||||
\f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them
|
\f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them
|
||||||
together into a single file giving the best overall quality available.
|
together into a single file giving the best overall quality available.
|
||||||
|
@ -998,7 +1244,7 @@ best available quality served as a single file.
|
||||||
\f[C]best\f[] is also needed for videos that don\[aq]t come from YouTube
|
\f[C]best\f[] is also needed for videos that don\[aq]t come from YouTube
|
||||||
because they don\[aq]t provide the audio and video in two different
|
because they don\[aq]t provide the audio and video in two different
|
||||||
files.
|
files.
|
||||||
If you want to only download some dash formats (for example if you are
|
If you want to only download some DASH formats (for example if you are
|
||||||
not interested in getting videos with a resolution higher than 1080p),
|
not interested in getting videos with a resolution higher than 1080p),
|
||||||
you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to
|
you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to
|
||||||
your configuration file.
|
your configuration file.
|
||||||
|
@ -1015,6 +1261,25 @@ you want to download the best available quality media served as a single
|
||||||
file, you should explicitly specify your choice with \f[C]\-f\ best\f[].
|
file, you should explicitly specify your choice with \f[C]\-f\ best\f[].
|
||||||
You may want to add it to the configuration file (#configuration) in
|
You may want to add it to the configuration file (#configuration) in
|
||||||
order not to type it every time you run youtube\-dl.
|
order not to type it every time you run youtube\-dl.
|
||||||
|
.SS Format selection examples
|
||||||
|
.PP
|
||||||
|
Note on Windows you may need to use double quotes instead of single.
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
#\ Download\ best\ mp4\ format\ available\ or\ any\ other\ best\ if\ no\ mp4\ available
|
||||||
|
$\ youtube\-dl\ \-f\ \[aq]bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\[aq]
|
||||||
|
|
||||||
|
#\ Download\ best\ format\ available\ but\ not\ better\ that\ 480p
|
||||||
|
$\ youtube\-dl\ \-f\ \[aq]bestvideo[height<=480]+bestaudio/best[height<=480]\[aq]
|
||||||
|
|
||||||
|
#\ Download\ best\ video\ only\ format\ but\ no\ bigger\ that\ 50\ MB
|
||||||
|
$\ youtube\-dl\ \-f\ \[aq]best[filesize<50M]\[aq]
|
||||||
|
|
||||||
|
#\ Download\ best\ format\ available\ via\ direct\ link\ over\ HTTP/HTTPS\ protocol
|
||||||
|
$\ youtube\-dl\ \-f\ \[aq](bestvideo+bestaudio/best)[protocol^=http]\[aq]
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
.SH VIDEO SELECTION
|
.SH VIDEO SELECTION
|
||||||
.PP
|
.PP
|
||||||
Videos can be filtered by their upload date using the options
|
Videos can be filtered by their upload date using the options
|
||||||
|
@ -1086,6 +1351,10 @@ hash\ \-r
|
||||||
.PP
|
.PP
|
||||||
Again, from then on you\[aq]ll be able to update with
|
Again, from then on you\[aq]ll be able to update with
|
||||||
\f[C]sudo\ youtube\-dl\ \-U\f[].
|
\f[C]sudo\ youtube\-dl\ \-U\f[].
|
||||||
|
.SS youtube\-dl is extremely slow to start on Windows
|
||||||
|
.PP
|
||||||
|
Add a file exclusion for \f[C]youtube\-dl.exe\f[] in Windows Defender
|
||||||
|
settings.
|
||||||
.SS I\[aq]m getting an error
|
.SS I\[aq]m getting an error
|
||||||
\f[C]Unable\ to\ extract\ OpenGraph\ title\f[] on YouTube playlists
|
\f[C]Unable\ to\ extract\ OpenGraph\ title\f[] on YouTube playlists
|
||||||
.PP
|
.PP
|
||||||
|
@ -1104,6 +1373,14 @@ guys (mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20yout
|
||||||
\- all they have to do is update the package to a somewhat recent
|
\- all they have to do is update the package to a somewhat recent
|
||||||
version.
|
version.
|
||||||
See above for a way to update.
|
See above for a way to update.
|
||||||
|
.SS I\[aq]m getting an error when trying to use output template:
|
||||||
|
\f[C]error:\ using\ output\ template\ conflicts\ with\ using\ title,\ video\ ID\ or\ auto\ number\f[]
|
||||||
|
.PP
|
||||||
|
Make sure you are not using \f[C]\-o\f[] with any of these options
|
||||||
|
\f[C]\-t\f[], \f[C]\-\-title\f[], \f[C]\-\-id\f[], \f[C]\-A\f[] or
|
||||||
|
\f[C]\-\-auto\-number\f[] set in command line or in a configuration
|
||||||
|
file.
|
||||||
|
Remove the latter if any.
|
||||||
.SS Do I always have to pass \f[C]\-citw\f[]?
|
.SS Do I always have to pass \f[C]\-citw\f[]?
|
||||||
.PP
|
.PP
|
||||||
By default, youtube\-dl intends to have the best options (incidentally,
|
By default, youtube\-dl intends to have the best options (incidentally,
|
||||||
|
@ -1132,10 +1409,25 @@ We\[aq]re considering to provide a way to let you solve the
|
||||||
CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at 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
|
moment, your best course of action is pointing a webbrowser to the
|
||||||
youtube URL, solving the CAPTCHA, and restart youtube\-dl.
|
youtube URL, solving the CAPTCHA, and restart youtube\-dl.
|
||||||
|
.SS Do I need any other programs?
|
||||||
|
.PP
|
||||||
|
youtube\-dl works fine on its own on most sites.
|
||||||
|
However, if you want to convert video/audio, you\[aq]ll need
|
||||||
|
avconv (https://libav.org/) or ffmpeg (https://www.ffmpeg.org/).
|
||||||
|
On some sites \- most notably YouTube \- videos can be retrieved in a
|
||||||
|
higher quality format without sound.
|
||||||
|
youtube\-dl will detect whether avconv/ffmpeg is present and
|
||||||
|
automatically pick the best option.
|
||||||
|
.PP
|
||||||
|
Videos or video formats streamed via RTMP protocol can only be
|
||||||
|
downloaded when rtmpdump (https://rtmpdump.mplayerhq.hu/) is installed.
|
||||||
|
Downloading MMS and RTSP videos requires either
|
||||||
|
mplayer (http://mplayerhq.hu/) or mpv (https://mpv.io/) to be installed.
|
||||||
.SS I have downloaded a video but how can I play it?
|
.SS I have downloaded a video but how can I play it?
|
||||||
.PP
|
.PP
|
||||||
Once the video is fully downloaded, use any video player, such as
|
Once the video is fully downloaded, use any video player, such as
|
||||||
vlc (http://www.videolan.org) or mplayer (http://www.mplayerhq.hu/).
|
mpv (https://mpv.io/), vlc (http://www.videolan.org) or
|
||||||
|
mplayer (http://www.mplayerhq.hu/).
|
||||||
.SS I extracted a video URL with \f[C]\-g\f[], but it does not play on
|
.SS I extracted a video URL with \f[C]\-g\f[], but it does not play on
|
||||||
another machine / in my webbrowser.
|
another machine / in my webbrowser.
|
||||||
.PP
|
.PP
|
||||||
|
@ -1228,17 +1520,18 @@ means you\[aq]re using an outdated version of Python.
|
||||||
Please update to Python 2.6 or 2.7.
|
Please update to Python 2.6 or 2.7.
|
||||||
.SS What is this binary file? Where has the code gone?
|
.SS What is this binary file? Where has the code gone?
|
||||||
.PP
|
.PP
|
||||||
Since June 2012 (#342) youtube\-dl is packed as an executable zipfile,
|
Since June 2012 (#342 (https://github.com/rg3/youtube-dl/issues/342))
|
||||||
simply unzip it (might need renaming to \f[C]youtube\-dl.zip\f[] first
|
youtube\-dl is packed as an executable zipfile, simply unzip it (might
|
||||||
on some systems) or clone the git repository, as laid out above.
|
need renaming to \f[C]youtube\-dl.zip\f[] 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
|
If you modify the code, you can run it by executing the
|
||||||
\f[C]__main__.py\f[] file.
|
\f[C]__main__.py\f[] file.
|
||||||
To recompile the executable, run \f[C]make\ youtube\-dl\f[].
|
To recompile the executable, run \f[C]make\ youtube\-dl\f[].
|
||||||
.SS The exe throws a \f[I]Runtime error from Visual C++\f[]
|
.SS The exe throws an error due to missing \f[C]MSVCR100.dll\f[]
|
||||||
.PP
|
.PP
|
||||||
To run the exe you need to install first the Microsoft Visual C++ 2008
|
To run the exe you need to install first the Microsoft Visual C++ 2010
|
||||||
Redistributable
|
Redistributable Package
|
||||||
Package (http://www.microsoft.com/en-us/download/details.aspx?id=29).
|
(x86) (https://www.microsoft.com/en-US/download/details.aspx?id=5555).
|
||||||
.SS On Windows, how should I set up ffmpeg and youtube\-dl? Where should
|
.SS On Windows, how should I set up ffmpeg and youtube\-dl? Where should
|
||||||
I put the exe files?
|
I put the exe files?
|
||||||
.PP
|
.PP
|
||||||
|
@ -1263,7 +1556,7 @@ Use the \f[C]\-o\f[] to specify an output template (#output-template),
|
||||||
for example \f[C]\-o\ "/home/user/videos/%(title)s\-%(id)s.%(ext)s"\f[].
|
for example \f[C]\-o\ "/home/user/videos/%(title)s\-%(id)s.%(ext)s"\f[].
|
||||||
If you want this for all of your downloads, put the option into your
|
If you want this for all of your downloads, put the option into your
|
||||||
configuration file (#configuration).
|
configuration file (#configuration).
|
||||||
.SS How do I download a video starting with a \f[C]\-\f[] ?
|
.SS How do I download a video starting with a \f[C]\-\f[]?
|
||||||
.PP
|
.PP
|
||||||
Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the
|
Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the
|
||||||
ID from the options with \f[C]\-\-\f[]:
|
ID from the options with \f[C]\-\-\f[]:
|
||||||
|
@ -1292,6 +1585,10 @@ is a good sign of invalid newline format.
|
||||||
.PP
|
.PP
|
||||||
Passing cookies to youtube\-dl is a good way to workaround login when a
|
Passing cookies to youtube\-dl is a good way to workaround login when a
|
||||||
particular extractor does not implement it explicitly.
|
particular extractor does not implement it explicitly.
|
||||||
|
Another use case is working around
|
||||||
|
CAPTCHA (https://en.wikipedia.org/wiki/CAPTCHA) some websites require
|
||||||
|
you to solve in particular cases in order to get access (e.g.
|
||||||
|
YouTube, CloudFlare).
|
||||||
.SS Can you add support for this anime video site, or site which shows
|
.SS Can you add support for this anime video site, or site which shows
|
||||||
current movies for free?
|
current movies for free?
|
||||||
.PP
|
.PP
|
||||||
|
@ -1404,7 +1701,7 @@ If you want to create a build of youtube\-dl yourself, you\[aq]ll need
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
python
|
python
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
make
|
make (both GNU make and BSD make are supported)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
pandoc
|
pandoc
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
|
@ -1413,8 +1710,15 @@ zip
|
||||||
nosetests
|
nosetests
|
||||||
.SS Adding support for a new site
|
.SS Adding support for a new site
|
||||||
.PP
|
.PP
|
||||||
If you want to add support for a new site, you can follow this quick
|
If you want to add support for a new site, first of all \f[B]make
|
||||||
list (assuming your service is called \f[C]yourextractor\f[]):
|
sure\f[] this site is \f[B]not dedicated to copyright
|
||||||
|
infringement (#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)\f[].
|
||||||
|
youtube\-dl does \f[B]not support\f[] such sites thus pull requests
|
||||||
|
adding support for them \f[B]will be rejected\f[].
|
||||||
|
.PP
|
||||||
|
After you have ensured this site is distributing it\[aq]s content
|
||||||
|
legally, you can follow this quick list (assuming your service is called
|
||||||
|
\f[C]yourextractor\f[]):
|
||||||
.IP " 1." 4
|
.IP " 1." 4
|
||||||
Fork this repository (https://github.com/rg3/youtube-dl/fork)
|
Fork this repository (https://github.com/rg3/youtube-dl/fork)
|
||||||
.IP " 2." 4
|
.IP " 2." 4
|
||||||
|
@ -1459,12 +1763,13 @@ class\ YourExtractorIE(InfoExtractor):
|
||||||
\ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id)
|
\ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id)
|
||||||
|
|
||||||
\ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ...
|
\ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ...
|
||||||
\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]<h1>(.*?)</h1>\[aq],\ webpage,\ \[aq]title\[aq])
|
\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]<h1>(.+?)</h1>\[aq],\ webpage,\ \[aq]title\[aq])
|
||||||
|
|
||||||
\ \ \ \ \ \ \ \ return\ {
|
\ \ \ \ \ \ \ \ return\ {
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id,
|
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id,
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title,
|
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title,
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage),
|
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage),
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]uploader\[aq]:\ self._search_regex(r\[aq]<div[^>]+id="uploader"[^>]*>([^<]+)<\[aq],\ webpage,\ \[aq]uploader\[aq],\ fatal=False),
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py)
|
\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py)
|
||||||
\ \ \ \ \ \ \ \ }
|
\ \ \ \ \ \ \ \ }
|
||||||
\f[]
|
\f[]
|
||||||
|
@ -1472,7 +1777,7 @@ class\ YourExtractorIE(InfoExtractor):
|
||||||
.RE
|
.RE
|
||||||
.IP " 5." 4
|
.IP " 5." 4
|
||||||
Add an import in
|
Add an import in
|
||||||
\f[C]youtube_dl/extractor/__init__.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/__init__.py).
|
\f[C]youtube_dl/extractor/extractors.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/extractors.py).
|
||||||
.IP " 6." 4
|
.IP " 6." 4
|
||||||
Run
|
Run
|
||||||
\f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[].
|
\f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[].
|
||||||
|
@ -1488,12 +1793,33 @@ Have a look at
|
||||||
\f[C]youtube_dl/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py)
|
\f[C]youtube_dl/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py)
|
||||||
for possible helper methods and a detailed description of what your
|
for possible helper methods and a detailed description of what your
|
||||||
extractor should and may
|
extractor should and may
|
||||||
return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L62-L200).
|
return (https://github.com/rg3/youtube-dl/blob/58525c94d547be1c8167d16c298bdd75506db328/youtube_dl/extractor/common.py#L68-L226).
|
||||||
Add tests and code for as many as you want.
|
Add tests and code for as many as you want.
|
||||||
.IP " 8." 4
|
.IP " 8." 4
|
||||||
If you can, check the code with
|
Keep in mind that the only mandatory fields in info dict for successful
|
||||||
flake8 (https://pypi.python.org/pypi/flake8).
|
extraction process are \f[C]id\f[], \f[C]title\f[] and either
|
||||||
|
\f[C]url\f[] or \f[C]formats\f[], i.e.
|
||||||
|
these are the critical data the extraction does not make any sense
|
||||||
|
without.
|
||||||
|
This means that any
|
||||||
|
field (https://github.com/rg3/youtube-dl/blob/58525c94d547be1c8167d16c298bdd75506db328/youtube_dl/extractor/common.py#L138-L226)
|
||||||
|
apart from aforementioned mandatory ones should be treated \f[B]as
|
||||||
|
optional\f[] and extraction should be \f[B]tolerate\f[] to situations
|
||||||
|
when sources for these fields can potentially be unavailable (even if
|
||||||
|
they always available at the moment) and \f[B]future\-proof\f[] in order
|
||||||
|
not to break the extraction of general purpose mandatory fields.
|
||||||
|
For example, if you have some intermediate dict \f[C]meta\f[] that is a
|
||||||
|
source of metadata and it has a key \f[C]summary\f[] that you want to
|
||||||
|
extract and put into resulting info dict as \f[C]description\f[], you
|
||||||
|
should be ready that this key may be missing from the \f[C]meta\f[]
|
||||||
|
dict, i.e.
|
||||||
|
you should extract it as \f[C]meta.get(\[aq]summary\[aq])\f[] and not
|
||||||
|
\f[C]meta[\[aq]summary\[aq]]\f[].
|
||||||
|
Similarly, you should pass \f[C]fatal=False\f[] when extracting data
|
||||||
|
from a webpage with \f[C]_search_regex/_html_search_regex\f[].
|
||||||
.IP " 9." 4
|
.IP " 9." 4
|
||||||
|
Check the code with flake8 (https://pypi.python.org/pypi/flake8).
|
||||||
|
.IP "10." 4
|
||||||
When the tests pass, add (http://git-scm.com/docs/git-add) the new files
|
When the tests pass, add (http://git-scm.com/docs/git-add) the new files
|
||||||
and commit (http://git-scm.com/docs/git-commit) them and
|
and commit (http://git-scm.com/docs/git-commit) them and
|
||||||
push (http://git-scm.com/docs/git-push) the result, like this:
|
push (http://git-scm.com/docs/git-push) the result, like this:
|
||||||
|
@ -1501,14 +1827,14 @@ push (http://git-scm.com/docs/git-push) the result, like this:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ git\ add\ youtube_dl/extractor/__init__.py
|
$\ git\ add\ youtube_dl/extractor/extractors.py
|
||||||
$\ git\ add\ youtube_dl/extractor/yourextractor.py
|
$\ git\ add\ youtube_dl/extractor/yourextractor.py
|
||||||
$\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq]
|
$\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq]
|
||||||
$\ git\ push\ origin\ yourextractor
|
$\ git\ push\ origin\ yourextractor
|
||||||
\f[]
|
\f[]
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
.IP "10." 4
|
.IP "11." 4
|
||||||
Finally, create a pull
|
Finally, create a pull
|
||||||
request (https://help.github.com/articles/creating-a-pull-request).
|
request (https://help.github.com/articles/creating-a-pull-request).
|
||||||
We\[aq]ll then review and merge it.
|
We\[aq]ll then review and merge it.
|
||||||
|
@ -1537,7 +1863,7 @@ with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
|
||||||
.PP
|
.PP
|
||||||
Most likely, you\[aq]ll want to use various options.
|
Most likely, you\[aq]ll want to use various options.
|
||||||
For a list of what can be done, have a look at
|
For a list of what can be done, have a look at
|
||||||
youtube_dl/YoutubeDL.py (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L117-L265).
|
\f[C]youtube_dl/YoutubeDL.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L121-L269).
|
||||||
For a start, if you want to intercept youtube\-dl\[aq]s output, set a
|
For a start, if you want to intercept youtube\-dl\[aq]s output, set a
|
||||||
\f[C]logger\f[] object.
|
\f[C]logger\f[] object.
|
||||||
.PP
|
.PP
|
||||||
|
@ -1584,16 +1910,41 @@ with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.PP
|
.PP
|
||||||
Bugs and suggestions should be reported at:
|
Bugs and suggestions should be reported at:
|
||||||
<https://github.com/rg3/youtube-dl/issues> .
|
<https://github.com/rg3/youtube-dl/issues>.
|
||||||
Unless you were prompted so or there is another pertinent reason (e.g.
|
Unless you were prompted so or there is another pertinent reason (e.g.
|
||||||
GitHub fails to accept the bug report), please do not send bug reports
|
GitHub fails to accept the bug report), please do not send bug reports
|
||||||
via personal email.
|
via personal email.
|
||||||
For discussions, join us in the irc channel #youtube\-dl on freenode.
|
For discussions, join us in the IRC channel
|
||||||
|
#youtube\-dl (irc://chat.freenode.net/#youtube-dl) on freenode
|
||||||
|
(webchat (http://webchat.freenode.net/?randomnick=1&channels=youtube-dl)).
|
||||||
.PP
|
.PP
|
||||||
\f[B]Please include the full output of youtube\-dl when run with
|
\f[B]Please include the full output of youtube\-dl when run with
|
||||||
\f[C]\-v\f[]\f[].
|
\f[C]\-v\f[]\f[], i.e.
|
||||||
|
\f[B]add\f[] \f[C]\-v\f[] flag to \f[B]your command line\f[], copy the
|
||||||
|
\f[B]whole\f[] output and post it in the issue body wrapped in ``` for
|
||||||
|
better formatting.
|
||||||
|
It should look similar to this:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$\ youtube\-dl\ \-v\ <your\ command\ line>
|
||||||
|
[debug]\ System\ config:\ []
|
||||||
|
[debug]\ User\ config:\ []
|
||||||
|
[debug]\ Command\-line\ args:\ [u\[aq]\-v\[aq],\ u\[aq]http://www.youtube.com/watch?v=BaW_jenozKcj\[aq]]
|
||||||
|
[debug]\ Encodings:\ locale\ cp1251,\ fs\ mbcs,\ out\ cp866,\ pref\ cp1251
|
||||||
|
[debug]\ youtube\-dl\ version\ 2015.12.06
|
||||||
|
[debug]\ Git\ HEAD:\ 135392e
|
||||||
|
[debug]\ Python\ version\ 2.6.6\ \-\ Windows\-2003Server\-5.2.3790\-SP2
|
||||||
|
[debug]\ exe\ versions:\ ffmpeg\ N\-75573\-g1d0487f,\ ffprobe\ N\-75573\-g1d0487f,\ rtmpdump\ 2.4
|
||||||
|
[debug]\ Proxy\ map:\ {}
|
||||||
|
\&...
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
.PP
|
.PP
|
||||||
The output (including the first lines) contain important debugging
|
\f[B]Do not post screenshots of verbose log only plain text is
|
||||||
|
acceptable.\f[]
|
||||||
|
.PP
|
||||||
|
The output (including the first lines) contains important debugging
|
||||||
information.
|
information.
|
||||||
Issues without the full output are often not reproducible and therefore
|
Issues without the full output are often not reproducible and therefore
|
||||||
do not get solved in short order, if ever.
|
do not get solved in short order, if ever.
|
||||||
|
@ -1623,7 +1974,7 @@ If your report is shorter than two lines, it is almost certainly missing
|
||||||
some of these, which makes it hard for us to respond to it.
|
some of these, which makes it hard for us to respond to it.
|
||||||
We\[aq]re often too polite to close the issue outright, but the missing
|
We\[aq]re often too polite to close the issue outright, but the missing
|
||||||
info makes misinterpretation likely.
|
info makes misinterpretation likely.
|
||||||
As a commiter myself, I often get frustrated by these issues, since the
|
As a committer myself, I often get frustrated by these issues, since the
|
||||||
only possible way for me to move forward on them is to ask for
|
only possible way for me to move forward on them is to ask for
|
||||||
clarification over and over.
|
clarification over and over.
|
||||||
.PP
|
.PP
|
||||||
|
@ -1644,11 +1995,11 @@ command\-line) or upload the \f[C]\&.dump\f[] files you get when you add
|
||||||
.PP
|
.PP
|
||||||
\f[B]Site support requests must contain an example URL\f[].
|
\f[B]Site support requests must contain an example URL\f[].
|
||||||
An example URL is a URL you might want to download, like
|
An example URL is a URL you might want to download, like
|
||||||
http://www.youtube.com/watch?v=BaW_jenozKc .
|
\f[C]http://www.youtube.com/watch?v=BaW_jenozKc\f[].
|
||||||
There should be an obvious video present.
|
There should be an obvious video present.
|
||||||
Except under very special circumstances, the main page of a video
|
Except under very special circumstances, the main page of a video
|
||||||
service (e.g.
|
service (e.g.
|
||||||
http://www.youtube.com/ ) is \f[I]not\f[] an example URL.
|
\f[C]http://www.youtube.com/\f[]) is \f[I]not\f[] an example URL.
|
||||||
.SS Are you using the latest version?
|
.SS Are you using the latest version?
|
||||||
.PP
|
.PP
|
||||||
Before reporting any issue, type \f[C]youtube\-dl\ \-U\f[].
|
Before reporting any issue, type \f[C]youtube\-dl\ \-U\f[].
|
||||||
|
@ -1660,8 +2011,9 @@ This goes for feature requests as well.
|
||||||
.PP
|
.PP
|
||||||
Make sure that someone has not already opened the issue you\[aq]re
|
Make sure that someone has not already opened the issue you\[aq]re
|
||||||
trying to open.
|
trying to open.
|
||||||
Search at the top of the window or at
|
Search at the top of the window or browse the GitHub
|
||||||
https://github.com/rg3/youtube\-dl/search?type=Issues .
|
Issues (https://github.com/rg3/youtube-dl/search?type=Issues) of this
|
||||||
|
repository.
|
||||||
If there is an issue, feel free to write something along the lines of
|
If there is an issue, feel free to write something along the lines of
|
||||||
"This affects me as well, with version 2015.01.01.
|
"This affects me as well, with version 2015.01.01.
|
||||||
Here is some more information on the issue: ...".
|
Here is some more information on the issue: ...".
|
||||||
|
@ -1738,6 +2090,6 @@ bug.
|
||||||
.PP
|
.PP
|
||||||
youtube\-dl is released into the public domain by the copyright holders.
|
youtube\-dl is released into the public domain by the copyright holders.
|
||||||
.PP
|
.PP
|
||||||
This README file was originally written by Daniel Bolton
|
This README file was originally written by Daniel
|
||||||
(<https://github.com/dbbolton>) and is likewise released into the public
|
Bolton (https://github.com/dbbolton) and is likewise released into the
|
||||||
domain.
|
public domain.
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=youtube-dl
|
PRGNAM=youtube-dl
|
||||||
VERSION=${VERSION:-2016.05.30.2}
|
VERSION=${VERSION:-2016.06.03}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_SBo}
|
TAG=${TAG:-_SBo}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
PRGNAM="youtube-dl"
|
PRGNAM="youtube-dl"
|
||||||
VERSION="2016.05.30.2"
|
VERSION="2016.06.03"
|
||||||
HOMEPAGE="https://rg3.github.io/youtube-dl"
|
HOMEPAGE="https://rg3.github.io/youtube-dl"
|
||||||
DOWNLOAD="https://github.com/rg3/youtube-dl/archive/2016.05.30.2.tar.gz"
|
DOWNLOAD="https://github.com/rg3/youtube-dl/archive/2016.06.03.tar.gz"
|
||||||
MD5SUM="11ba6076c5cbb75ca6c08654b0524be9"
|
MD5SUM="b7401413b0e97a73e4871951e2857d82"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
REQUIRES=""
|
REQUIRES=""
|
||||||
|
|
Loading…
Reference in a new issue