mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-25 10:03:03 +01:00
ab31502f86
Signed-off-by: Dimitris Zlatanidis <d.zlatanidis@gmail.com>
1086 lines
56 KiB
Groff
1086 lines
56 KiB
Groff
.TH "YOUTUBE\-DL" "1" "" "" ""
|
||
.SH NAME
|
||
.PP
|
||
youtube\-dl \- download videos from youtube.com or other video platforms
|
||
.SH SYNOPSIS
|
||
.PP
|
||
\f[B]youtube\-dl\f[] [OPTIONS] URL [URL...]
|
||
.SH DESCRIPTION
|
||
.PP
|
||
\f[B]youtube\-dl\f[] is a small command\-line program to download videos
|
||
from YouTube.com and a few more sites.
|
||
It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is
|
||
not platform specific.
|
||
It should work on your Unix box, on Windows or on Mac OS X.
|
||
It is released to the public domain, which means you can modify it,
|
||
redistribute it or use it however you like.
|
||
.SH OPTIONS
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-h,\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ this\ help\ text\ and\ exit
|
||
\-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ program\ version\ and\ exit
|
||
\-U,\ \-\-update\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Update\ this\ program\ to\ latest\ version.\ Make\ sure\ that\ you\ have\ sufficient\ permissions\ (run\ with\ sudo\ if\ needed)
|
||
\-i,\ \-\-ignore\-errors\ \ \ \ \ \ \ \ \ \ \ \ \ \ Continue\ on\ download\ errors,\ for\ example\ to\ skip\ unavailable\ videos\ in\ a\ playlist
|
||
\-\-abort\-on\-error\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Abort\ downloading\ of\ further\ videos\ (in\ the\ playlist\ or\ the\ command\ line)\ if\ an\ error\ occurs
|
||
\-\-dump\-user\-agent\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ the\ current\ browser\ identification
|
||
\-\-list\-extractors\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ supported\ extractors
|
||
\-\-extractor\-descriptions\ \ \ \ \ \ \ \ \ Output\ descriptions\ of\ all\ supported\ extractors
|
||
\-\-force\-generic\-extractor\ \ \ \ \ \ \ \ Force\ extraction\ to\ use\ the\ generic\ extractor
|
||
\-\-default\-search\ PREFIX\ \ \ \ \ \ \ \ \ \ Use\ this\ prefix\ for\ unqualified\ URLs.\ For\ example\ "gvsearch2:"\ downloads\ two\ videos\ from\ google\ videos\ for\ youtube\-dl\ "large\ apple".
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ value\ "auto"\ to\ let\ youtube\-dl\ guess\ ("auto_warning"\ to\ emit\ a\ warning\ when\ guessing).\ "error"\ just\ throws\ an\ error.\ The
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default\ value\ "fixup_error"\ repairs\ broken\ URLs,\ but\ emits\ an\ error\ if\ this\ is\ not\ possible\ instead\ of\ searching.
|
||
\-\-ignore\-config\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ read\ configuration\ files.\ When\ given\ in\ the\ global\ configuration\ file\ /etc/youtube\-dl.conf:\ Do\ not\ read\ the\ user\ configuration
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ ~/.config/youtube\-dl/config\ (%APPDATA%/youtube\-dl/config.txt\ on\ Windows)
|
||
\-\-flat\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ extract\ the\ videos\ of\ a\ playlist,\ only\ list\ them.
|
||
\-\-no\-color\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ emit\ color\ codes\ in\ output
|
||
\f[]
|
||
.fi
|
||
.SS Network Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-\-proxy\ URL\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ specified\ HTTP/HTTPS\ proxy.\ Pass\ in\ an\ empty\ string\ (\-\-proxy\ "")\ for\ direct\ connection
|
||
\-\-socket\-timeout\ SECONDS\ \ \ \ \ \ \ \ \ Time\ to\ wait\ before\ giving\ up,\ in\ seconds
|
||
\-\-source\-address\ IP\ \ \ \ \ \ \ \ \ \ \ \ \ \ Client\-side\ IP\ address\ to\ bind\ to\ (experimental)
|
||
\-4,\ \-\-force\-ipv4\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Make\ all\ connections\ via\ IPv4\ (experimental)
|
||
\-6,\ \-\-force\-ipv6\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Make\ all\ connections\ via\ IPv6\ (experimental)
|
||
\-\-cn\-verification\-proxy\ URL\ \ \ \ \ \ Use\ this\ proxy\ to\ verify\ the\ IP\ address\ for\ some\ Chinese\ sites.\ The\ default\ proxy\ specified\ by\ \-\-proxy\ (or\ none,\ if\ the\ options\ is
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ not\ present)\ is\ used\ for\ the\ actual\ downloading.\ (experimental)
|
||
\f[]
|
||
.fi
|
||
.SS Video Selection:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-\-playlist\-start\ NUMBER\ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ start\ at\ (default\ is\ 1)
|
||
\-\-playlist\-end\ NUMBER\ \ \ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ end\ at\ (default\ is\ last)
|
||
\-\-playlist\-items\ ITEM_SPEC\ \ \ \ \ \ \ Playlist\ video\ items\ to\ download.\ Specify\ indices\ of\ the\ videos\ in\ the\ playlist\ seperated\ by\ commas\ like:\ "\-\-playlist\-items\ 1,2,5,8"
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ you\ want\ to\ download\ videos\ indexed\ 1,\ 2,\ 5,\ 8\ in\ the\ playlist.\ You\ can\ specify\ range:\ "\-\-playlist\-items\ 1\-3,7,10\-13",\ it\ will
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ download\ the\ videos\ at\ index\ 1,\ 2,\ 3,\ 7,\ 10,\ 11,\ 12\ and\ 13.
|
||
\-\-match\-title\ REGEX\ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ matching\ titles\ (regex\ or\ caseless\ sub\-string)
|
||
\-\-reject\-title\ REGEX\ \ \ \ \ \ \ \ \ \ \ \ \ Skip\ download\ for\ matching\ titles\ (regex\ or\ caseless\ sub\-string)
|
||
\-\-max\-downloads\ NUMBER\ \ \ \ \ \ \ \ \ \ \ Abort\ after\ downloading\ NUMBER\ files
|
||
\-\-min\-filesize\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ smaller\ than\ SIZE\ (e.g.\ 50k\ or\ 44.6m)
|
||
\-\-max\-filesize\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ larger\ than\ SIZE\ (e.g.\ 50k\ or\ 44.6m)
|
||
\-\-date\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ in\ this\ date
|
||
\-\-datebefore\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ on\ or\ before\ this\ date\ (i.e.\ inclusive)
|
||
\-\-dateafter\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ on\ or\ after\ this\ date\ (i.e.\ inclusive)
|
||
\-\-min\-views\ COUNT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ less\ than\ COUNT\ views
|
||
\-\-max\-views\ COUNT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ more\ than\ COUNT\ views
|
||
\-\-match\-filter\ FILTER\ \ \ \ \ \ \ \ \ \ \ \ Generic\ video\ filter\ (experimental).\ Specify\ any\ key\ (see\ help\ for\ \-o\ for\ a\ list\ of\ available\ keys)\ to\ match\ if\ the\ key\ is\ present,
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !key\ to\ check\ if\ the\ key\ is\ not\ present,key\ >\ NUMBER\ (like\ "comment_count\ >\ 12",\ also\ works\ with\ >=,\ <,\ <=,\ !=,\ =)\ to\ compare\ against
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ number,\ and\ &\ to\ require\ multiple\ matches.\ Values\ which\ are\ not\ known\ are\ excluded\ unless\ you\ put\ a\ question\ mark\ (?)\ after\ the
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ operator.For\ example,\ to\ only\ match\ videos\ that\ have\ been\ liked\ more\ than\ 100\ times\ and\ disliked\ less\ than\ 50\ times\ (or\ the\ dislike
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ functionality\ is\ not\ available\ at\ the\ given\ service),\ but\ who\ also\ have\ a\ description,\ use\ \ \-\-match\-filter\ "like_count\ >\ 100\ &
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dislike_count\ <?\ 50\ &\ description"\ .
|
||
\-\-no\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ the\ video,\ if\ the\ URL\ refers\ to\ a\ video\ and\ a\ playlist.
|
||
\-\-yes\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ the\ playlist,\ if\ the\ URL\ refers\ to\ a\ video\ and\ a\ playlist.
|
||
\-\-age\-limit\ YEARS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ suitable\ for\ the\ given\ age
|
||
\-\-download\-archive\ FILE\ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ not\ listed\ in\ the\ archive\ file.\ Record\ the\ IDs\ of\ all\ downloaded\ videos\ in\ it.
|
||
\-\-include\-ads\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ advertisements\ as\ well\ (experimental)
|
||
\f[]
|
||
.fi
|
||
.SS Download Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-r,\ \-\-rate\-limit\ LIMIT\ \ \ \ \ \ \ \ \ \ \ Maximum\ download\ rate\ in\ bytes\ per\ second\ (e.g.\ 50K\ or\ 4.2M)
|
||
\-R,\ \-\-retries\ RETRIES\ \ \ \ \ \ \ \ \ \ \ \ Number\ of\ retries\ (default\ is\ 10),\ or\ "infinite".
|
||
\-\-buffer\-size\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Size\ of\ download\ buffer\ (e.g.\ 1024\ or\ 16K)\ (default\ is\ 1024)
|
||
\-\-no\-resize\-buffer\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ automatically\ adjust\ the\ buffer\ size.\ By\ default,\ the\ buffer\ size\ is\ automatically\ resized\ from\ an\ initial\ value\ of\ SIZE.
|
||
\-\-playlist\-reverse\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ playlist\ videos\ in\ reverse\ order
|
||
\-\-xattr\-set\-filesize\ \ \ \ \ \ \ \ \ \ \ \ \ Set\ file\ xattribute\ ytdl.filesize\ with\ expected\ filesize\ (experimental)
|
||
\-\-hls\-prefer\-native\ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ native\ HLS\ downloader\ instead\ of\ ffmpeg\ (experimental)
|
||
\-\-external\-downloader\ COMMAND\ \ \ \ Use\ the\ specified\ external\ downloader.\ Currently\ supports\ aria2c,curl,httpie,wget
|
||
\-\-external\-downloader\-args\ ARGS\ \ Give\ these\ arguments\ to\ the\ external\ downloader
|
||
\f[]
|
||
.fi
|
||
.SS Filesystem Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-a,\ \-\-batch\-file\ FILE\ \ \ \ \ \ \ \ \ \ \ \ File\ containing\ URLs\ to\ download\ (\[aq]\-\[aq]\ for\ stdin)
|
||
\-\-id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ only\ video\ ID\ in\ file\ name
|
||
\-o,\ \-\-output\ TEMPLATE\ \ \ \ \ \ \ \ \ \ \ \ Output\ filename\ template.\ Use\ %(title)s\ to\ get\ the\ title,\ %(uploader)s\ for\ the\ uploader\ name,\ %(uploader_id)s\ for\ the\ uploader
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nickname\ if\ different,\ %(autonumber)s\ to\ get\ an\ automatically\ incremented\ number,\ %(ext)s\ for\ the\ filename\ extension,\ %(format)s\ for
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ the\ format\ description\ (like\ "22\ \-\ 1280x720"\ or\ "HD"),\ %(format_id)s\ for\ the\ unique\ id\ of\ the\ format\ (like\ YouTube\[aq]s\ itags:\ "137"),
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(upload_date)s\ for\ the\ upload\ date\ (YYYYMMDD),\ %(extractor)s\ for\ the\ provider\ (youtube,\ metacafe,\ etc),\ %(id)s\ for\ the\ video\ id,
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(playlist_title)s,\ %(playlist_id)s,\ or\ %(playlist)s\ (=title\ if\ present,\ ID\ otherwise)\ for\ the\ playlist\ the\ video\ is\ in,
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(playlist_index)s\ for\ the\ position\ in\ the\ playlist.\ %(height)s\ and\ %(width)s\ for\ the\ width\ and\ height\ of\ the\ video\ format.
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(resolution)s\ for\ a\ textual\ description\ of\ the\ resolution\ of\ the\ video\ format.\ %%\ for\ a\ literal\ percent.\ Use\ \-\ to\ output\ to\ stdout.
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Can\ also\ be\ used\ to\ download\ to\ a\ different\ directory,\ for\ example\ with\ \-o\ \[aq]/my/downloads/%(uploader)s/%(title)s\-%(id)s.%(ext)s\[aq]\ .
|
||
\-\-autonumber\-size\ NUMBER\ \ \ \ \ \ \ \ \ Specify\ the\ number\ of\ digits\ in\ %(autonumber)s\ when\ it\ is\ present\ in\ output\ filename\ template\ or\ \-\-auto\-number\ option\ is\ given
|
||
\-\-restrict\-filenames\ \ \ \ \ \ \ \ \ \ \ \ \ Restrict\ filenames\ to\ only\ ASCII\ characters,\ and\ avoid\ "&"\ and\ spaces\ in\ filenames
|
||
\-A,\ \-\-auto\-number\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated;\ use\ \ \-o\ "%(autonumber)s\-%(title)s.%(ext)s"\ ]\ Number\ downloaded\ files\ starting\ from\ 00000
|
||
\-t,\ \-\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated]\ Use\ title\ in\ file\ name\ (default)
|
||
\-l,\ \-\-literal\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated]\ Alias\ of\ \-\-title
|
||
\-w,\ \-\-no\-overwrites\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ overwrite\ files
|
||
\-c,\ \-\-continue\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Force\ resume\ of\ partially\ downloaded\ files.\ By\ default,\ youtube\-dl\ will\ resume\ downloads\ if\ possible.
|
||
\-\-no\-continue\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ resume\ partially\ downloaded\ files\ (restart\ from\ beginning)
|
||
\-\-no\-part\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ use\ .part\ files\ \-\ write\ directly\ into\ output\ file
|
||
\-\-no\-mtime\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ use\ the\ Last\-modified\ header\ to\ set\ the\ file\ modification\ time
|
||
\-\-write\-description\ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ description\ to\ a\ .description\ file
|
||
\-\-write\-info\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ metadata\ to\ a\ .info.json\ file
|
||
\-\-write\-annotations\ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ annotations\ to\ a\ .annotations.xml\ file
|
||
\-\-load\-info\ FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ JSON\ file\ containing\ the\ video\ information\ (created\ with\ the\ "\-\-write\-info\-json"\ option)
|
||
\-\-cookies\ FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ File\ to\ read\ cookies\ from\ and\ dump\ cookie\ jar\ in
|
||
\-\-cache\-dir\ DIR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Location\ in\ the\ filesystem\ where\ youtube\-dl\ can\ store\ some\ downloaded\ information\ permanently.\ By\ default\ $XDG_CACHE_HOME/youtube\-dl
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ or\ ~/.cache/youtube\-dl\ .\ At\ the\ moment,\ only\ YouTube\ player\ files\ (for\ videos\ with\ obfuscated\ signatures)\ are\ cached,\ but\ that\ may
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ change.
|
||
\-\-no\-cache\-dir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Disable\ filesystem\ caching
|
||
\-\-rm\-cache\-dir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Delete\ all\ filesystem\ cache\ files
|
||
\f[]
|
||
.fi
|
||
.SS Thumbnail images:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-\-write\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ thumbnail\ image\ to\ disk
|
||
\-\-write\-all\-thumbnails\ \ \ \ \ \ \ \ \ \ \ Write\ all\ thumbnail\ image\ formats\ to\ disk
|
||
\-\-list\-thumbnails\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate\ and\ list\ all\ available\ thumbnail\ formats
|
||
\f[]
|
||
.fi
|
||
.SS Verbosity / Simulation Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-q,\ \-\-quiet\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Activate\ quiet\ mode
|
||
\-\-no\-warnings\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Ignore\ warnings
|
||
\-s,\ \-\-simulate\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ the\ video\ and\ do\ not\ write\ anything\ to\ disk
|
||
\-\-skip\-download\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ the\ video
|
||
\-g,\ \-\-get\-url\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ URL
|
||
\-e,\ \-\-get\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ title
|
||
\-\-get\-id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ id
|
||
\-\-get\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ thumbnail\ URL
|
||
\-\-get\-description\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ video\ description
|
||
\-\-get\-duration\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ video\ length
|
||
\-\-get\-filename\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ output\ filename
|
||
\-\-get\-format\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ output\ format
|
||
\-j,\ \-\-dump\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ JSON\ information.\ See\ \-\-output\ for\ a\ description\ of\ available\ keys.
|
||
\-J,\ \-\-dump\-single\-json\ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ JSON\ information\ for\ each\ command\-line\ argument.\ If\ the\ URL\ refers\ to\ a\ playlist,\ dump\ the\ whole\ playlist
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ information\ in\ a\ single\ line.
|
||
\-\-print\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Be\ quiet\ and\ print\ the\ video\ information\ as\ JSON\ (video\ is\ still\ being\ downloaded).
|
||
\-\-newline\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Output\ progress\ bar\ as\ new\ lines
|
||
\-\-no\-progress\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ print\ progress\ bar
|
||
\-\-console\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ progress\ in\ console\ titlebar
|
||
\-v,\ \-\-verbose\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ various\ debugging\ information
|
||
\-\-dump\-pages\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ downloaded\ pages\ encoded\ using\ base64\ to\ debug\ problems\ (very\ verbose)
|
||
\-\-write\-pages\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ downloaded\ intermediary\ pages\ to\ files\ in\ the\ current\ directory\ to\ debug\ problems
|
||
\-\-print\-traffic\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ sent\ and\ read\ HTTP\ traffic
|
||
\-C,\ \-\-call\-home\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Contact\ the\ youtube\-dl\ server\ for\ debugging
|
||
\-\-no\-call\-home\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ NOT\ contact\ the\ youtube\-dl\ server\ for\ debugging
|
||
\f[]
|
||
.fi
|
||
.SS Workarounds:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-\-encoding\ ENCODING\ \ \ \ \ \ \ \ \ \ \ \ \ \ Force\ the\ specified\ encoding\ (experimental)
|
||
\-\-no\-check\-certificate\ \ \ \ \ \ \ \ \ \ \ Suppress\ HTTPS\ certificate\ validation
|
||
\-\-prefer\-insecure\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ an\ unencrypted\ connection\ to\ retrieve\ information\ about\ the\ video.\ (Currently\ supported\ only\ for\ YouTube)
|
||
\-\-user\-agent\ UA\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Specify\ a\ custom\ user\ agent
|
||
\-\-referer\ URL\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Specify\ a\ custom\ referer,\ use\ if\ the\ video\ access\ is\ restricted\ to\ one\ domain
|
||
\-\-add\-header\ FIELD:VALUE\ \ \ \ \ \ \ \ \ Specify\ a\ custom\ HTTP\ header\ and\ its\ value,\ separated\ by\ a\ colon\ \[aq]:\[aq].\ You\ can\ use\ this\ option\ multiple\ times
|
||
\-\-bidi\-workaround\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Work\ around\ terminals\ that\ lack\ bidirectional\ text\ support.\ Requires\ bidiv\ or\ fribidi\ executable\ in\ PATH
|
||
\-\-sleep\-interval\ SECONDS\ \ \ \ \ \ \ \ \ Number\ of\ seconds\ to\ sleep\ before\ each\ download.
|
||
\f[]
|
||
.fi
|
||
.SS Video Format Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-f,\ \-\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ \ \ Video\ format\ code,\ see\ the\ "FORMAT\ SELECTION"\ for\ all\ the\ info
|
||
\-\-all\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ all\ available\ video\ formats
|
||
\-\-prefer\-free\-formats\ \ \ \ \ \ \ \ \ \ \ \ Prefer\ free\ video\ formats\ unless\ a\ specific\ one\ is\ requested
|
||
\-F,\ \-\-list\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ available\ formats
|
||
\-\-youtube\-skip\-dash\-manifest\ \ \ \ \ Do\ not\ download\ the\ DASH\ manifests\ and\ related\ data\ on\ YouTube\ videos
|
||
\-\-merge\-output\-format\ FORMAT\ \ \ \ \ If\ a\ merge\ is\ required\ (e.g.\ bestvideo+bestaudio),\ output\ to\ given\ container\ format.\ One\ of\ mkv,\ mp4,\ ogg,\ webm,\ flv.\ Ignored\ if\ no
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge\ is\ required
|
||
\f[]
|
||
.fi
|
||
.SS Subtitle Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-\-write\-sub\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ subtitle\ file
|
||
\-\-write\-auto\-sub\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ automatic\ subtitle\ file\ (YouTube\ only)
|
||
\-\-all\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ all\ the\ available\ subtitles\ of\ the\ video
|
||
\-\-list\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ available\ subtitles\ for\ the\ video
|
||
\-\-sub\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ \ \ Subtitle\ format,\ accepts\ formats\ preference,\ for\ example:\ "srt"\ or\ "ass/srt/best"
|
||
\-\-sub\-lang\ LANGS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Languages\ of\ the\ subtitles\ to\ download\ (optional)\ separated\ by\ commas,\ use\ IETF\ language\ tags\ like\ \[aq]en,pt\[aq]
|
||
\f[]
|
||
.fi
|
||
.SS Authentication Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-u,\ \-\-username\ USERNAME\ \ \ \ \ \ \ \ \ \ Login\ with\ this\ account\ ID
|
||
\-p,\ \-\-password\ PASSWORD\ \ \ \ \ \ \ \ \ \ Account\ password.\ If\ this\ option\ is\ left\ out,\ youtube\-dl\ will\ ask\ interactively.
|
||
\-2,\ \-\-twofactor\ TWOFACTOR\ \ \ \ \ \ \ \ Two\-factor\ auth\ code
|
||
\-n,\ \-\-netrc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ .netrc\ authentication\ data
|
||
\-\-video\-password\ PASSWORD\ \ \ \ \ \ \ \ Video\ password\ (vimeo,\ smotri)
|
||
\f[]
|
||
.fi
|
||
.SS Post\-processing Options:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
\-x,\ \-\-extract\-audio\ \ \ \ \ \ \ \ \ \ \ \ \ \ Convert\ video\ files\ to\ audio\-only\ files\ (requires\ ffmpeg\ or\ avconv\ and\ ffprobe\ or\ avprobe)
|
||
\-\-audio\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Specify\ audio\ format:\ "best",\ "aac",\ "vorbis",\ "mp3",\ "m4a",\ "opus",\ or\ "wav";\ "best"\ by\ default
|
||
\-\-audio\-quality\ QUALITY\ \ \ \ \ \ \ \ \ \ Specify\ ffmpeg/avconv\ audio\ quality,\ insert\ a\ value\ between\ 0\ (better)\ and\ 9\ (worse)\ for\ VBR\ or\ a\ specific\ bitrate\ like\ 128K\ (default
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 5)
|
||
\-\-recode\-video\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Encode\ the\ video\ to\ another\ format\ if\ necessary\ (currently\ supported:\ mp4|flv|ogg|webm|mkv)
|
||
\-k,\ \-\-keep\-video\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Keep\ the\ video\ file\ on\ disk\ after\ the\ post\-processing;\ the\ video\ is\ erased\ by\ default
|
||
\-\-no\-post\-overwrites\ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ overwrite\ post\-processed\ files;\ the\ post\-processed\ files\ are\ overwritten\ by\ default
|
||
\-\-embed\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Embed\ subtitles\ in\ the\ video\ (only\ for\ mkv\ and\ mp4\ videos)
|
||
\-\-embed\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Embed\ thumbnail\ in\ the\ audio\ as\ cover\ art
|
||
\-\-add\-metadata\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ metadata\ to\ the\ video\ file
|
||
\-\-metadata\-from\-title\ FORMAT\ \ \ \ \ Parse\ additional\ metadata\ like\ song\ title\ /\ artist\ from\ the\ video\ title.\ The\ format\ syntax\ is\ the\ same\ as\ \-\-output,\ the\ parsed
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ parameters\ replace\ existing\ values.\ Additional\ templates:\ %(album)s,\ %(artist)s.\ Example:\ \-\-metadata\-from\-title\ "%(artist)s\ \-
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(title)s"\ matches\ a\ title\ like\ "Coldplay\ \-\ Paradise"
|
||
\-\-xattrs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ metadata\ to\ the\ video\ file\[aq]s\ xattrs\ (using\ dublin\ core\ and\ xdg\ standards)
|
||
\-\-fixup\ POLICY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Automatically\ correct\ known\ faults\ of\ the\ file.\ One\ of\ never\ (do\ nothing),\ warn\ (only\ emit\ a\ warning),\ detect_or_warn\ (the\ default;
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fix\ file\ if\ we\ can,\ warn\ otherwise)
|
||
\-\-prefer\-avconv\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ avconv\ over\ ffmpeg\ for\ running\ the\ postprocessors\ (default)
|
||
\-\-prefer\-ffmpeg\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ ffmpeg\ over\ avconv\ for\ running\ the\ postprocessors
|
||
\-\-ffmpeg\-location\ PATH\ \ \ \ \ \ \ \ \ \ \ Location\ of\ the\ ffmpeg/avconv\ binary;\ either\ the\ path\ to\ the\ binary\ or\ its\ containing\ directory.
|
||
\-\-exec\ CMD\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Execute\ a\ command\ on\ the\ file\ after\ downloading,\ similar\ to\ find\[aq]s\ \-exec\ syntax.\ Example:\ \-\-exec\ \[aq]adb\ push\ {}\ /sdcard/Music/\ &&\ rm
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {}\[aq]
|
||
\-\-convert\-subtitles\ FORMAT\ \ \ \ \ \ \ Convert\ the\ subtitles\ to\ other\ format\ (currently\ supported:\ srt|ass|vtt)
|
||
\f[]
|
||
.fi
|
||
.SH CONFIGURATION
|
||
.PP
|
||
You can configure youtube\-dl by placing default arguments (such as
|
||
\f[C]\-\-extract\-audio\ \-\-no\-mtime\f[] to always extract the audio
|
||
and not copy the mtime) into \f[C]/etc/youtube\-dl.conf\f[] and/or
|
||
\f[C]~/.config/youtube\-dl/config\f[].
|
||
On Windows, the configuration file locations are
|
||
\f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] and
|
||
\f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[].
|
||
.SH OUTPUT TEMPLATE
|
||
.PP
|
||
The \f[C]\-o\f[] 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
|
||
\f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[].
|
||
However, it may contain special sequences that will be replaced when
|
||
downloading each video.
|
||
The special sequences have the format \f[C]%(NAME)s\f[].
|
||
To clarify, that is a percent symbol followed by a name in parenthesis,
|
||
followed by a lowercase S.
|
||
Allowed names are:
|
||
.IP \[bu] 2
|
||
\f[C]id\f[]: The sequence will be replaced by the video identifier.
|
||
.IP \[bu] 2
|
||
\f[C]url\f[]: The sequence will be replaced by the video URL.
|
||
.IP \[bu] 2
|
||
\f[C]uploader\f[]: The sequence will be replaced by the nickname of the
|
||
person who uploaded the video.
|
||
.IP \[bu] 2
|
||
\f[C]upload_date\f[]: The sequence will be replaced by the upload date
|
||
in YYYYMMDD format.
|
||
.IP \[bu] 2
|
||
\f[C]title\f[]: The sequence will be replaced by the video title.
|
||
.IP \[bu] 2
|
||
\f[C]ext\f[]: The sequence will be replaced by the appropriate extension
|
||
(like flv or mp4).
|
||
.IP \[bu] 2
|
||
\f[C]epoch\f[]: The sequence will be replaced by the Unix epoch when
|
||
creating the file.
|
||
.IP \[bu] 2
|
||
\f[C]autonumber\f[]: The sequence will be replaced by a five\-digit
|
||
number that will be increased with each download, starting at zero.
|
||
.IP \[bu] 2
|
||
\f[C]playlist\f[]: The name or the id of the playlist that contains the
|
||
video.
|
||
.IP \[bu] 2
|
||
\f[C]playlist_index\f[]: The index of the video in the playlist, a
|
||
five\-digit number.
|
||
.PP
|
||
The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[].
|
||
.PP
|
||
In some cases, you don\[aq]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 \f[C]\-\-restrict\-filenames\f[] flag to get a
|
||
shorter title:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
$\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc
|
||
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_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name
|
||
\f[]
|
||
.fi
|
||
.SH FORMAT SELECTION
|
||
.PP
|
||
By default youtube\-dl tries to download the best quality, but sometimes
|
||
you may want to download other format.
|
||
The simplest case is requesting a specific format, for example
|
||
\f[C]\-f\ 22\f[].
|
||
You can get the list of available formats using
|
||
\f[C]\-\-list\-formats\f[], you can also use a file extension (currently
|
||
it supports aac, m4a, mp3, mp4, ogg, wav, webm) or the special names
|
||
\f[C]best\f[], \f[C]bestvideo\f[], \f[C]bestaudio\f[] and
|
||
\f[C]worst\f[].
|
||
.PP
|
||
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
|
||
slashes, as in \f[C]\-f\ 22/17/18\f[].
|
||
You can also filter the video results by putting a condition in
|
||
brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or
|
||
\f[C]\-f\ "[filesize>10M]"\f[]).
|
||
This works for filesize, height, width, tbr, abr, vbr, asr, and fps and
|
||
the comparisons <, <=, >, >=, =, != and for ext, acodec, vcodec,
|
||
container, and protocol and the comparisons =, != .
|
||
Formats for which the value is not known are excluded unless you put a
|
||
question mark (?) after the operator.
|
||
You can combine format filters, so
|
||
\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
|
||
KBit/s.
|
||
Use commas to download multiple formats, such as
|
||
\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
|
||
using \f[C]\-f\ <video\-format>+<audio\-format>\f[] (requires ffmpeg or
|
||
avconv), for example \f[C]\-f\ bestvideo+bestaudio\f[].
|
||
.PP
|
||
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
|
||
#5447, #5456).
|
||
If ffmpeg or avconv are installed this results in downloading
|
||
\f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them
|
||
together into a single file giving the best overall quality available.
|
||
Otherwise it falls back to \f[C]best\f[] and results in downloading best
|
||
available quality served as a single file.
|
||
\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
|
||
files.
|
||
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),
|
||
you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to
|
||
your configuration file.
|
||
Note that if you use youtube\-dl to stream to \f[C]stdout\f[] (and most
|
||
likely to pipe it to your media player then), i.e.
|
||
you explicitly specify output template as \f[C]\-o\ \-\f[], youtube\-dl
|
||
still uses \f[C]\-f\ best\f[] format selection in order to start content
|
||
delivery immediately to your player and not to wait until
|
||
\f[C]bestvideo\f[] and \f[C]bestaudio\f[] are downloaded and muxed.
|
||
.PP
|
||
If you want to preserve the old format selection behavior (prior to
|
||
youtube\-dl 2015.04.26), i.e.
|
||
you want to download best available quality media served as a single
|
||
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
|
||
order not to type it every time you run youtube\-dl.
|
||
.SH VIDEO SELECTION
|
||
.PP
|
||
Videos can be filtered by their upload date using the options
|
||
\f[C]\-\-date\f[], \f[C]\-\-datebefore\f[] or \f[C]\-\-dateafter\f[],
|
||
they accept dates in two formats:
|
||
.IP \[bu] 2
|
||
Absolute dates: Dates in the format \f[C]YYYYMMDD\f[].
|
||
.IP \[bu] 2
|
||
Relative dates: Dates in the format
|
||
\f[C](now|today)[+\-][0\-9](day|week|month|year)(s)?\f[]
|
||
.PP
|
||
Examples:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
#\ Download\ only\ the\ videos\ uploaded\ in\ the\ last\ 6\ months
|
||
$\ youtube\-dl\ \-\-dateafter\ now\-6months
|
||
|
||
#\ Download\ only\ the\ videos\ uploaded\ on\ January\ 1,\ 1970
|
||
$\ youtube\-dl\ \-\-date\ 19700101
|
||
|
||
$\ #\ will\ only\ download\ the\ videos\ uploaded\ in\ the\ 200x\ decade
|
||
$\ youtube\-dl\ \-\-dateafter\ 20000101\ \-\-datebefore\ 20091231
|
||
\f[]
|
||
.fi
|
||
.SH FAQ
|
||
.SS How do I update youtube\-dl?
|
||
.PP
|
||
If you\[aq]ve followed our manual installation
|
||
instructions (http://rg3.github.io/youtube-dl/download.html), you can
|
||
simply run \f[C]youtube\-dl\ \-U\f[] (or, on Linux,
|
||
\f[C]sudo\ youtube\-dl\ \-U\f[]).
|
||
.PP
|
||
If you have used pip, a simple
|
||
\f[C]sudo\ pip\ install\ \-U\ youtube\-dl\f[] is sufficient to update.
|
||
.PP
|
||
If you have installed youtube\-dl using a package manager like
|
||
\f[I]apt\-get\f[] or \f[I]yum\f[], use the standard system update
|
||
mechanism to update.
|
||
Note that distribution packages are often outdated.
|
||
As a rule of thumb, youtube\-dl releases at least once a month, and
|
||
often weekly or even daily.
|
||
Simply go to http://yt\-dl.org/ to find out the current version.
|
||
Unfortunately, there is nothing we youtube\-dl developers can do if your
|
||
distributions serves a really outdated version.
|
||
You can (and should) complain to your distribution in their bugtracker
|
||
or support forum.
|
||
.PP
|
||
As a last resort, you can also uninstall the version installed by your
|
||
package manager and follow our manual installation instructions.
|
||
For that, remove the distribution\[aq]s package, with a line like
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
sudo\ apt\-get\ remove\ \-y\ youtube\-dl
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
Afterwards, simply follow our manual installation
|
||
instructions (http://rg3.github.io/youtube-dl/download.html):
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
sudo\ wget\ https://yt\-dl.org/latest/youtube\-dl\ \-O\ /usr/local/bin/youtube\-dl
|
||
sudo\ chmod\ a+x\ /usr/local/bin/youtube\-dl
|
||
hash\ \-r
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
Again, from then on you\[aq]ll be able to update with
|
||
\f[C]sudo\ youtube\-dl\ \-U\f[].
|
||
.SS I\[aq]m getting an error
|
||
\f[C]Unable\ to\ extract\ OpenGraph\ title\f[] on YouTube playlists
|
||
.PP
|
||
YouTube changed their playlist format in March 2014 and later on, so
|
||
you\[aq]ll need at least youtube\-dl 2014.07.25 to download all YouTube
|
||
videos.
|
||
.PP
|
||
If you have installed youtube\-dl with a package manager, pip, setup.py
|
||
or a tarball, please use that to update.
|
||
Note that Ubuntu packages do not seem to get updated anymore.
|
||
Since we are not affiliated with Ubuntu, there is little we can do.
|
||
Feel free to report
|
||
bugs (https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+filebug) to
|
||
the Ubuntu packaging
|
||
guys (mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20youtube-dl)
|
||
\- all they have to do is update the package to a somewhat recent
|
||
version.
|
||
See above for a way to update.
|
||
.SS Do I always have to pass \f[C]\-citw\f[]?
|
||
.PP
|
||
By default, youtube\-dl intends to have the best options (incidentally,
|
||
if you have a convincing case that these should be different, please
|
||
file an issue where you explain that (https://yt-dl.org/bug)).
|
||
Therefore, it is unnecessary and sometimes harmful to copy long option
|
||
strings from webpages.
|
||
In particular, the only option out of \f[C]\-citw\f[] that is regularly
|
||
useful is \f[C]\-i\f[].
|
||
.SS Can you please put the \-b option back?
|
||
.PP
|
||
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 \f[C]\-b\f[] option.
|
||
For some specific videos, maybe YouTube does not report them to be
|
||
available in a specific high quality format you\[aq]re interested in.
|
||
In that case, simply request it with the \f[C]\-f\f[] option and
|
||
youtube\-dl will try to download it.
|
||
.SS I get HTTP error 402 when trying to download a video. What\[aq]s
|
||
this?
|
||
.PP
|
||
Apparently YouTube requires you to pass a CAPTCHA test if you download
|
||
too much.
|
||
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
|
||
moment, your best course of action is pointing a webbrowser to the
|
||
youtube URL, solving the CAPTCHA, and restart youtube\-dl.
|
||
.SS I have downloaded a video but how can I play it?
|
||
.PP
|
||
Once the video is fully downloaded, use any video player, such as
|
||
vlc (http://www.videolan.org) or mplayer (http://www.mplayerhq.hu/).
|
||
.SS I extracted a video URL with \-g, but it does not play on another
|
||
machine / in my webbrowser.
|
||
.PP
|
||
It depends a lot on the service.
|
||
In many cases, requests for the video (to download/play it) must come
|
||
from the same IP address and with the same cookies.
|
||
Use the \f[C]\-\-cookies\f[] 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
|
||
\f[C]\-\-dump\-user\-agent\f[] to see the one in use by youtube\-dl.
|
||
.PP
|
||
It may be beneficial to use IPv6; in some cases, the restrictions are
|
||
only applied to IPv4.
|
||
Some services (sometimes only for a subset of videos) do not restrict
|
||
the video URL by IP address, cookie, or user\-agent, but these are the
|
||
exception rather than the rule.
|
||
.PP
|
||
Please bear in mind that some URL protocols are \f[B]not\f[] supported
|
||
by browsers out of the box, including RTMP.
|
||
If you are using \-g, your own downloader must support these as well.
|
||
.PP
|
||
If you want to play the video on a machine that is not running
|
||
youtube\-dl, you can relay the video content from the machine that runs
|
||
youtube\-dl.
|
||
You can use \f[C]\-o\ \-\f[] to let youtube\-dl stream a video to
|
||
stdout, or simply allow the player to download the files written by
|
||
youtube\-dl in turn.
|
||
.SS ERROR: no fmt_url_map or conn information found in video info
|
||
.PP
|
||
YouTube has switched to a new video info format in July 2011 which is
|
||
not supported by old versions of youtube\-dl.
|
||
See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
|
||
.SS ERROR: unable to download video
|
||
.PP
|
||
YouTube requires an additional signature since September 2012 which is
|
||
not supported by old versions of youtube\-dl.
|
||
See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
|
||
.SS Video URL contains an ampersand and I\[aq]m getting some strange
|
||
output \f[C][1]\ 2839\f[] or
|
||
\f[C]\[aq]v\[aq]\ is\ not\ recognized\ as\ an\ internal\ or\ external\ command\f[]
|
||
.PP
|
||
That\[aq]s actually the output from your shell.
|
||
Since ampersand is one of the special shell characters it\[aq]s
|
||
interpreted by shell preventing you from passing the whole URL to
|
||
youtube\-dl.
|
||
To disable your shell from interpreting the ampersands (or any other
|
||
special characters) you have to either put the whole URL in quotes or
|
||
escape them with a backslash (which approach will work depends on your
|
||
shell).
|
||
.PP
|
||
For example if your URL is
|
||
https://www.youtube.com/watch?t=4&v=BaW_jenozKc you should end up with
|
||
following command:
|
||
.PP
|
||
\f[C]youtube\-dl\ \[aq]https://www.youtube.com/watch?t=4&v=BaW_jenozKc\[aq]\f[]
|
||
.PP
|
||
or
|
||
.PP
|
||
\f[C]youtube\-dl\ https://www.youtube.com/watch?t=4\\&v=BaW_jenozKc\f[]
|
||
.PP
|
||
For Windows you have to use the double quotes:
|
||
.PP
|
||
\f[C]youtube\-dl\ "https://www.youtube.com/watch?t=4&v=BaW_jenozKc"\f[]
|
||
.SS ExtractorError: Could not find JS function u\[aq]OF\[aq]
|
||
.PP
|
||
In February 2015, the new YouTube player contained a character sequence
|
||
in a string that was misinterpreted by old versions of youtube\-dl.
|
||
See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
|
||
.SS HTTP Error 429: Too Many Requests or 402: Payment Required
|
||
.PP
|
||
These two error codes indicate that the service is blocking your IP
|
||
address because of overuse.
|
||
Contact the service and ask them to unblock your IP address, or \- if
|
||
you have acquired a whitelisted IP address already \- use the
|
||
\f[C]\-\-proxy\f[] or \f[C]\-\-source\-address\f[]
|
||
options (#network-options) to select another IP address.
|
||
.SS SyntaxError: Non\-ASCII character
|
||
.PP
|
||
The error
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
File\ "youtube\-dl",\ line\ 2
|
||
SyntaxError:\ Non\-ASCII\ character\ \[aq]\\x93\[aq]\ ...
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
means you\[aq]re using an outdated version of Python.
|
||
Please update to Python 2.6 or 2.7.
|
||
.SS What is this binary file? Where has the code gone?
|
||
.PP
|
||
Since June 2012 (#342) youtube\-dl is packed as an executable zipfile,
|
||
simply unzip it (might 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
|
||
\f[C]__main__.py\f[] file.
|
||
To recompile the executable, run \f[C]make\ youtube\-dl\f[].
|
||
.SS The exe throws a \f[I]Runtime error from Visual C++\f[]
|
||
.PP
|
||
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).
|
||
.SS On Windows, how should I set up ffmpeg and youtube\-dl? Where should
|
||
I put the exe files?
|
||
.PP
|
||
If you put youtube\-dl and ffmpeg in the same directory that you\[aq]re
|
||
running the command from, it will work, but that\[aq]s rather
|
||
cumbersome.
|
||
.PP
|
||
To make a different directory work \- either for ffmpeg, or for
|
||
youtube\-dl, or for both \- simply create the directory (say,
|
||
\f[C]C:\\bin\f[], or \f[C]C:\\Users\\<User\ name>\\bin\f[]), put all the
|
||
executables directly in there, and then set your PATH environment
|
||
variable (https://www.java.com/en/download/help/path.xml) to include
|
||
that directory.
|
||
.PP
|
||
From then on, after restarting your shell, you will be able to access
|
||
both youtube\-dl and ffmpeg (and youtube\-dl will be able to find
|
||
ffmpeg) by simply typing \f[C]youtube\-dl\f[] or \f[C]ffmpeg\f[], no
|
||
matter what directory you\[aq]re in.
|
||
.SS How do I put downloads into a specific folder?
|
||
.PP
|
||
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[].
|
||
If you want this for all of your downloads, put the option into your
|
||
configuration file (#configuration).
|
||
.SS How do I download a video starting with a \f[C]\-\f[] ?
|
||
.PP
|
||
Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the
|
||
ID from the options with \f[C]\-\-\f[]:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
youtube\-dl\ \-\-\ \-wNyEUrxzFU
|
||
youtube\-dl\ "http://www.youtube.com/watch?v=\-wNyEUrxzFU"
|
||
\f[]
|
||
.fi
|
||
.SS Can you add support for this anime video site, or site which shows
|
||
current movies for free?
|
||
.PP
|
||
As a matter of policy (as well as legality), youtube\-dl does not
|
||
include support for services that specialize in infringing copyright.
|
||
As a rule of thumb, if you cannot easily find a video that the service
|
||
is quite obviously allowed to distribute (i.e.
|
||
that has been uploaded by the creator, the creator\[aq]s distributor, or
|
||
is published under a free license), the service is probably unfit for
|
||
inclusion to youtube\-dl.
|
||
.PP
|
||
A note on the service that they don\[aq]t host the infringing content,
|
||
but just link to those who do, is evidence that the service should
|
||
\f[B]not\f[] be included into youtube\-dl.
|
||
The same goes for any DMCA note when the whole front page of the service
|
||
is filled with videos they are not allowed to distribute.
|
||
A "fair use" note is equally unconvincing if the service shows
|
||
copyright\-protected videos in full without authorization.
|
||
.PP
|
||
Support requests for services that \f[B]do\f[] purchase the rights to
|
||
distribute their content are perfectly fine though.
|
||
If in doubt, you can simply include a source that mentions the
|
||
legitimate purchase of content.
|
||
.SS How can I speed up work on my issue?
|
||
.PP
|
||
(Also known as: Help, my important issue not being solved!) The
|
||
youtube\-dl core developer team is quite small.
|
||
While we do our best to solve as many issues as possible, sometimes that
|
||
can take quite a while.
|
||
To speed up your issue, here\[aq]s what you can do:
|
||
.PP
|
||
First of all, please do report the issue at our issue
|
||
tracker (https://yt-dl.org/bugs).
|
||
That allows us to coordinate all efforts by users and developers, and
|
||
serves as a unified point.
|
||
Unfortunately, the youtube\-dl project has grown too large to use
|
||
personal email as an effective communication channel.
|
||
.PP
|
||
Please read the bug reporting instructions (#bugs) below.
|
||
A lot of bugs lack all the necessary information.
|
||
If you can, offer proxy, VPN, or shell access to the youtube\-dl
|
||
developers.
|
||
If you are able to, test the issue from multiple computers in multiple
|
||
countries to exclude local censorship or misconfiguration issues.
|
||
.PP
|
||
If nobody is interested in solving your issue, you are welcome to take
|
||
matters into your own hands and submit a pull request (or coerce/pay
|
||
somebody else to do so).
|
||
.PP
|
||
Feel free to bump the issue from time to time by writing a small comment
|
||
("Issue is still present in youtube\-dl version ...from France, but
|
||
fixed from Belgium"), but please not more than once a month.
|
||
Please do not declare your issue as \f[C]important\f[] or
|
||
\f[C]urgent\f[].
|
||
.SS How can I detect whether a given URL is supported by youtube\-dl?
|
||
.PP
|
||
For one, have a look at the list of supported
|
||
sites (docs/supportedsites.md).
|
||
Note that it can sometimes happen that the site changes its URL scheme
|
||
(say, from http://example.com/video/1234567 to
|
||
http://example.com/v/1234567 ) and youtube\-dl reports an URL of a
|
||
service in that list as unsupported.
|
||
In that case, simply report a bug.
|
||
.PP
|
||
It is \f[I]not\f[] possible to detect whether a URL is supported or not.
|
||
That\[aq]s because youtube\-dl contains a generic extractor which
|
||
matches \f[B]all\f[] URLs.
|
||
You may be tempted to disable, exclude, or remove the generic extractor,
|
||
but the generic extractor not only allows users to extract videos from
|
||
lots of websites that embed a video from another service, but may also
|
||
be used to extract video from a service that it\[aq]s hosting itself.
|
||
Therefore, we neither recommend nor support disabling, excluding, or
|
||
removing the generic extractor.
|
||
.PP
|
||
If you want to find out whether a given URL is supported, simply call
|
||
youtube\-dl with it.
|
||
If you get no videos back, chances are the URL is either not referring
|
||
to a video or unsupported.
|
||
You can find out which by examining the output (if you run youtube\-dl
|
||
on the console) or catching an \f[C]UnsupportedError\f[] exception if
|
||
you run it from a Python program.
|
||
.SH DEVELOPER INSTRUCTIONS
|
||
.PP
|
||
Most users do not need to build youtube\-dl and can download the
|
||
builds (http://rg3.github.io/youtube-dl/download.html) or get them from
|
||
their distribution.
|
||
.PP
|
||
To run youtube\-dl as a developer, you don\[aq]t need to build anything
|
||
either.
|
||
Simply execute
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
python\ \-m\ youtube_dl
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
To run the test, simply invoke your favorite test runner, or execute a
|
||
test file directly; any of the following work:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
python\ \-m\ unittest\ discover
|
||
python\ test/test_download.py
|
||
nosetests
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
If you want to create a build of youtube\-dl yourself, you\[aq]ll need
|
||
.IP \[bu] 2
|
||
python
|
||
.IP \[bu] 2
|
||
make
|
||
.IP \[bu] 2
|
||
pandoc
|
||
.IP \[bu] 2
|
||
zip
|
||
.IP \[bu] 2
|
||
nosetests
|
||
.SS Adding support for a new site
|
||
.PP
|
||
If you want to add support for a new site, you can follow this quick
|
||
list (assuming your service is called \f[C]yourextractor\f[]):
|
||
.IP " 1." 4
|
||
Fork this repository (https://github.com/rg3/youtube-dl/fork)
|
||
.IP " 2." 4
|
||
Check out the source code with
|
||
\f[C]git\ clone\ git\@github.com:YOUR_GITHUB_USERNAME/youtube\-dl.git\f[]
|
||
.IP " 3." 4
|
||
Start a new git branch with
|
||
\f[C]cd\ youtube\-dl;\ git\ checkout\ \-b\ yourextractor\f[]
|
||
.IP " 4." 4
|
||
Start with this simple template and save it to
|
||
\f[C]youtube_dl/extractor/yourextractor.py\f[]:
|
||
.RS 4
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
#\ coding:\ utf\-8
|
||
from\ __future__\ import\ unicode_literals
|
||
|
||
from\ .common\ import\ InfoExtractor
|
||
|
||
|
||
class\ YourExtractorIE(InfoExtractor):
|
||
\ \ \ \ _VALID_URL\ =\ r\[aq]https?://(?:www\\.)?yourextractor\\.com/watch/(?P<id>[0\-9]+)\[aq]
|
||
\ \ \ \ _TEST\ =\ {
|
||
\ \ \ \ \ \ \ \ \[aq]url\[aq]:\ \[aq]http://yourextractor.com/watch/42\[aq],
|
||
\ \ \ \ \ \ \ \ \[aq]md5\[aq]:\ \[aq]TODO:\ md5\ sum\ of\ the\ first\ 10241\ bytes\ of\ the\ video\ file\ (use\ \-\-test)\[aq],
|
||
\ \ \ \ \ \ \ \ \[aq]info_dict\[aq]:\ {
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ \[aq]42\[aq],
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]ext\[aq]:\ \[aq]mp4\[aq],
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ \[aq]Video\ title\ goes\ here\[aq],
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]thumbnail\[aq]:\ \[aq]re:^https?://.*\\.jpg$\[aq],
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties,\ either\ as:
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ value
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ MD5\ checksum;\ start\ the\ string\ with\ md5:
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ regular\ expression;\ start\ the\ string\ with\ re:
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ Any\ Python\ type\ (for\ example\ int\ or\ float)
|
||
\ \ \ \ \ \ \ \ }
|
||
\ \ \ \ }
|
||
|
||
\ \ \ \ def\ _real_extract(self,\ url):
|
||
\ \ \ \ \ \ \ \ video_id\ =\ self._match_id(url)
|
||
\ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id)
|
||
|
||
\ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ...
|
||
\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]<h1>(.*?)</h1>\[aq],\ webpage,\ \[aq]title\[aq])
|
||
|
||
\ \ \ \ \ \ \ \ return\ {
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id,
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title,
|
||
\ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage),
|
||
\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py)
|
||
\ \ \ \ \ \ \ \ }
|
||
\f[]
|
||
.fi
|
||
.RE
|
||
.IP " 5." 4
|
||
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).
|
||
.IP " 6." 4
|
||
Run
|
||
\f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[].
|
||
This \f[I]should fail\f[] at first, but you can continually re\-run it
|
||
until you\[aq]re done.
|
||
If you decide to add more than one test, then rename \f[C]_TEST\f[] to
|
||
\f[C]_TESTS\f[] and make it into a list of dictionaries.
|
||
The tests will be then be named
|
||
\f[C]TestDownload.test_YourExtractor\f[],
|
||
\f[C]TestDownload.test_YourExtractor_1\f[],
|
||
\f[C]TestDownload.test_YourExtractor_2\f[], etc.
|
||
.IP " 7." 4
|
||
Have a look at
|
||
\f[C]youtube_dl/common/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
|
||
extractor should
|
||
return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L38).
|
||
Add tests and code for as many as you want.
|
||
.IP " 8." 4
|
||
If you can, check the code with
|
||
flake8 (https://pypi.python.org/pypi/flake8).
|
||
.IP " 9." 4
|
||
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
|
||
push (http://git-scm.com/docs/git-push) the result, like this:
|
||
.RS 4
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
$\ git\ add\ youtube_dl/extractor/__init__.py
|
||
$\ git\ add\ youtube_dl/extractor/yourextractor.py
|
||
$\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq]
|
||
$\ git\ push\ origin\ yourextractor
|
||
\f[]
|
||
.fi
|
||
.RE
|
||
.IP "10." 4
|
||
Finally, create a pull
|
||
request (https://help.github.com/articles/creating-a-pull-request).
|
||
We\[aq]ll then review and merge it.
|
||
.PP
|
||
In any case, thank you very much for your contributions!
|
||
.SH EMBEDDING YOUTUBE\-DL
|
||
.PP
|
||
youtube\-dl makes the best effort to be a good command\-line program,
|
||
and thus should be callable from any programming language.
|
||
If you encounter any problems parsing its output, feel free to create a
|
||
report (https://github.com/rg3/youtube-dl/issues/new).
|
||
.PP
|
||
From a Python program, you can embed youtube\-dl in a more powerful
|
||
fashion, like this:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
from\ __future__\ import\ unicode_literals
|
||
import\ youtube_dl
|
||
|
||
ydl_opts\ =\ {}
|
||
with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
|
||
\ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]])
|
||
\f[]
|
||
.fi
|
||
.PP
|
||
Most likely, you\[aq]ll want to use various options.
|
||
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#L69).
|
||
For a start, if you want to intercept youtube\-dl\[aq]s output, set a
|
||
\f[C]logger\f[] object.
|
||
.PP
|
||
Here\[aq]s a more complete example of a program that outputs only errors
|
||
(and a short message after the download is finished), and
|
||
downloads/converts the video to an mp3 file:
|
||
.IP
|
||
.nf
|
||
\f[C]
|
||
from\ __future__\ import\ unicode_literals
|
||
import\ youtube_dl
|
||
|
||
|
||
class\ MyLogger(object):
|
||
\ \ \ \ def\ debug(self,\ msg):
|
||
\ \ \ \ \ \ \ \ pass
|
||
|
||
\ \ \ \ def\ warning(self,\ msg):
|
||
\ \ \ \ \ \ \ \ pass
|
||
|
||
\ \ \ \ def\ error(self,\ msg):
|
||
\ \ \ \ \ \ \ \ print(msg)
|
||
|
||
|
||
def\ my_hook(d):
|
||
\ \ \ \ if\ d[\[aq]status\[aq]]\ ==\ \[aq]finished\[aq]:
|
||
\ \ \ \ \ \ \ \ print(\[aq]Done\ downloading,\ now\ converting\ ...\[aq])
|
||
|
||
|
||
ydl_opts\ =\ {
|
||
\ \ \ \ \[aq]format\[aq]:\ \[aq]bestaudio/best\[aq],
|
||
\ \ \ \ \[aq]postprocessors\[aq]:\ [{
|
||
\ \ \ \ \ \ \ \ \[aq]key\[aq]:\ \[aq]FFmpegExtractAudio\[aq],
|
||
\ \ \ \ \ \ \ \ \[aq]preferredcodec\[aq]:\ \[aq]mp3\[aq],
|
||
\ \ \ \ \ \ \ \ \[aq]preferredquality\[aq]:\ \[aq]192\[aq],
|
||
\ \ \ \ }],
|
||
\ \ \ \ \[aq]logger\[aq]:\ MyLogger(),
|
||
\ \ \ \ \[aq]progress_hooks\[aq]:\ [my_hook],
|
||
}
|
||
with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
|
||
\ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]])
|
||
\f[]
|
||
.fi
|
||
.SH BUGS
|
||
.PP
|
||
Bugs and suggestions should be reported at:
|
||
<https://github.com/rg3/youtube-dl/issues> .
|
||
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
|
||
via personal email.
|
||
For discussions, join us in the irc channel #youtube\-dl on freenode.
|
||
.PP
|
||
\f[B]Please include the full output of youtube\-dl when run with
|
||
\f[C]\-v\f[]\f[].
|
||
.PP
|
||
The output (including the first lines) contain important debugging
|
||
information.
|
||
Issues without the full output are often not reproducible and therefore
|
||
do not get solved in short order, if ever.
|
||
.PP
|
||
Please re\-read your issue once again to avoid a couple of common
|
||
mistakes (you can and should use this as a checklist):
|
||
.SS Is the description of the issue itself sufficient?
|
||
.PP
|
||
We often get issue reports that we cannot really decipher.
|
||
While in most cases we eventually get the required information after
|
||
asking back multiple times, this poses an unnecessary drain on our
|
||
resources.
|
||
Many contributors, including myself, are also not native speakers, so we
|
||
may misread some parts.
|
||
.PP
|
||
So please elaborate on what feature you are requesting, or what bug you
|
||
want to be fixed.
|
||
Make sure that it\[aq]s obvious
|
||
.IP \[bu] 2
|
||
What the problem is
|
||
.IP \[bu] 2
|
||
How it could be fixed
|
||
.IP \[bu] 2
|
||
How your proposed solution would look like
|
||
.PP
|
||
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.
|
||
We\[aq]re often too polite to close the issue outright, but the missing
|
||
info makes misinterpretation likely.
|
||
As a commiter myself, I often get frustrated by these issues, since the
|
||
only possible way for me to move forward on them is to ask for
|
||
clarification over and over.
|
||
.PP
|
||
For bug reports, this means that your report should contain the
|
||
\f[I]complete\f[] output of youtube\-dl when called with the \-v flag.
|
||
The error message you get for (most) bugs even says so, but you would
|
||
not believe how many of our bug reports do not contain this information.
|
||
.PP
|
||
If your server has multiple IPs or you suspect censorship, adding
|
||
\-\-call\-home may be a good idea to get more diagnostics.
|
||
If the error is \f[C]ERROR:\ Unable\ to\ extract\ ...\f[] and you cannot
|
||
reproduce it from multiple countries, add \f[C]\-\-dump\-pages\f[]
|
||
(warning: this will yield a rather large output, redirect it to the file
|
||
\f[C]log.txt\f[] by adding \f[C]>log.txt\ 2>&1\f[] to your
|
||
command\-line) or upload the \f[C]\&.dump\f[] files you get when you add
|
||
\f[C]\-\-write\-pages\f[] somewhere (https://gist.github.com/).
|
||
.PP
|
||
\f[B]Site support requests must contain an example URL\f[].
|
||
An example URL is a URL you might want to download, like
|
||
http://www.youtube.com/watch?v=BaW_jenozKc .
|
||
There should be an obvious video present.
|
||
Except under very special circumstances, the main page of a video
|
||
service (e.g.
|
||
http://www.youtube.com/ ) is \f[I]not\f[] an example URL.
|
||
.SS Are you using the latest version?
|
||
.PP
|
||
Before reporting any issue, type youtube\-dl \-U.
|
||
This should report that you\[aq]re up\-to\-date.
|
||
About 20% of the reports we receive are already fixed, but people are
|
||
using outdated versions.
|
||
This goes for feature requests as well.
|
||
.SS Is the issue already documented?
|
||
.PP
|
||
Make sure that someone has not already opened the issue you\[aq]re
|
||
trying to open.
|
||
Search at the top of the window or at
|
||
https://github.com/rg3/youtube\-dl/search?type=Issues .
|
||
If there is an issue, feel free to write something along the lines of
|
||
"This affects me as well, with version 2015.01.01.
|
||
Here is some more information on the issue: ...".
|
||
While some issues may be old, a new post into them often spurs rapid
|
||
activity.
|
||
.SS Why are existing options not enough?
|
||
.PP
|
||
Before requesting a new feature, please have a quick peek at the list of
|
||
supported
|
||
options (https://github.com/rg3/youtube-dl/blob/master/README.md#synopsis).
|
||
Many feature requests are for features that actually exist already!
|
||
Please, absolutely do show off your work in the issue report and detail
|
||
how the existing similar options do \f[I]not\f[] solve your problem.
|
||
.SS Is there enough context in your bug report?
|
||
.PP
|
||
People want to solve problems, and often think they do us a favor by
|
||
breaking down their larger problems (e.g.
|
||
wanting to skip already downloaded files) to a specific request (e.g.
|
||
requesting us to look whether the file exists before downloading the
|
||
info page).
|
||
However, what often happens is that they break down the problem into two
|
||
steps: One simple, and one impossible (or extremely complicated one).
|
||
.PP
|
||
We are then presented with a very complicated request when the original
|
||
problem could be solved far easier, e.g.
|
||
by recording the downloaded video IDs in a separate file.
|
||
To avoid this, you must include the greater context where it is
|
||
non\-obvious.
|
||
In particular, every feature request that does not consist of adding
|
||
support for a new site should contain a use case scenario that explains
|
||
in what situation the missing feature would be useful.
|
||
.SS Does the issue involve one problem, and one problem only?
|
||
.PP
|
||
Some of our users seem to think there is a limit of issues they can or
|
||
should open.
|
||
There is no limit of issues they can or should open.
|
||
While it may seem appealing to be able to dump all your issues into one
|
||
ticket, that means that someone who solves one of your issues cannot
|
||
mark the issue as closed.
|
||
Typically, reporting a bunch of issues leads to the ticket lingering
|
||
since nobody wants to attack that behemoth, until someone mercifully
|
||
splits the issue into multiple ones.
|
||
.PP
|
||
In particular, every site support request issue should only pertain to
|
||
services at one site (generally under a common domain, but always using
|
||
the same backend technology).
|
||
Do not request support for vimeo user videos, Whitehouse podcasts, and
|
||
Google Plus pages in the same issue.
|
||
Also, make sure that you don\[aq]t post bug reports alongside feature
|
||
requests.
|
||
As a rule of thumb, a feature request does not include outputs of
|
||
youtube\-dl that are not immediately related to the feature at hand.
|
||
Do not post reports of a network error alongside the request for a new
|
||
video service.
|
||
.SS Is anyone going to need the feature?
|
||
.PP
|
||
Only post features that you (or an incapacitated friend you can
|
||
personally talk to) require.
|
||
Do not post features because they seem like a good idea.
|
||
If they are really useful, they will be requested by someone who
|
||
requires them.
|
||
.SS Is your question about youtube\-dl?
|
||
.PP
|
||
It may sound strange, but some bug reports we receive are completely
|
||
unrelated to youtube\-dl and relate to a different or even the
|
||
reporter\[aq]s own application.
|
||
Please make sure that you are actually using youtube\-dl.
|
||
If you are using a UI for youtube\-dl, report the bug to the maintainer
|
||
of the actual application providing the UI.
|
||
On the other hand, if your UI for youtube\-dl fails in some way you
|
||
believe is related to youtube\-dl, by all means, go ahead and report the
|
||
bug.
|
||
.SH COPYRIGHT
|
||
.PP
|
||
youtube\-dl is released into the public domain by the copyright holders.
|
||
.PP
|
||
This README file was originally written by Daniel Bolton
|
||
(<https://github.com/dbbolton>) and is likewise released into the public
|
||
domain.
|