1 .TH "YOUTUBE\-DL" "1" "" "" ""
 
   4 youtube\-dl \- download videos from youtube.com or other video platforms
 
   7 \f[B]youtube\-dl\f[] [OPTIONS] URL [URL...]
 
  10 \f[B]youtube\-dl\f[] is a small command\-line program to download videos
 
  11 from YouTube.com and a few more sites.
 
  12 It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is
 
  13 not platform specific.
 
  14 It should work on your Unix box, on Windows or on Mac OS X.
 
  15 It is released to the public domain, which means you can modify it,
 
  16 redistribute it or use it however you like.
 
  21 \-h,\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ this\ help\ text\ and\ exit
 
  22 \-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ program\ version\ and\ exit
 
  23 \-U,\ \-\-update\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Update\ this\ program\ to\ latest\ version.\ Make\ sure\ that\ you\ have\ sufficient\ permissions\ (run\ with\ sudo\ if\ needed)
 
  24 \-i,\ \-\-ignore\-errors\ \ \ \ \ \ \ \ \ \ \ \ \ \ Continue\ on\ download\ errors,\ for\ example\ to\ skip\ unavailable\ videos\ in\ a\ playlist
 
  25 \-\-abort\-on\-error\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Abort\ downloading\ of\ further\ videos\ (in\ the\ playlist\ or\ the\ command\ line)\ if\ an\ error\ occurs
 
  26 \-\-dump\-user\-agent\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ the\ current\ browser\ identification
 
  27 \-\-list\-extractors\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ supported\ extractors
 
  28 \-\-extractor\-descriptions\ \ \ \ \ \ \ \ \ Output\ descriptions\ of\ all\ supported\ extractors
 
  29 \-\-force\-generic\-extractor\ \ \ \ \ \ \ \ Force\ extraction\ to\ use\ the\ generic\ extractor
 
  30 \-\-default\-search\ PREFIX\ \ \ \ \ \ \ \ \ \ Use\ this\ prefix\ for\ unqualified\ URLs.\ For\ example\ "gvsearch2:"\ downloads\ two\ videos\ from\ google\ videos\ for\ youtube\-dl\ "large\ apple".
 
  31 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ value\ "auto"\ to\ let\ youtube\-dl\ guess\ ("auto_warning"\ to\ emit\ a\ warning\ when\ guessing).\ "error"\ just\ throws\ an\ error.\ The
 
  32 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default\ value\ "fixup_error"\ repairs\ broken\ URLs,\ but\ emits\ an\ error\ if\ this\ is\ not\ possible\ instead\ of\ searching.
 
  33 \-\-ignore\-config\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ read\ configuration\ files.\ When\ given\ in\ the\ global\ configuration\ file\ /etc/youtube\-dl.conf:\ Do\ not\ read\ the\ user\ configuration
 
  34 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ ~/.config/youtube\-dl/config\ (%APPDATA%/youtube\-dl/config.txt\ on\ Windows)
 
  35 \-\-flat\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ extract\ the\ videos\ of\ a\ playlist,\ only\ list\ them.
 
  36 \-\-no\-color\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ emit\ color\ codes\ in\ output
 
  43 \-\-proxy\ URL\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ specified\ HTTP/HTTPS\ proxy.\ Pass\ in\ an\ empty\ string\ (\-\-proxy\ "")\ for\ direct\ connection
 
  44 \-\-socket\-timeout\ SECONDS\ \ \ \ \ \ \ \ \ Time\ to\ wait\ before\ giving\ up,\ in\ seconds
 
  45 \-\-source\-address\ IP\ \ \ \ \ \ \ \ \ \ \ \ \ \ Client\-side\ IP\ address\ to\ bind\ to\ (experimental)
 
  46 \-4,\ \-\-force\-ipv4\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Make\ all\ connections\ via\ IPv4\ (experimental)
 
  47 \-6,\ \-\-force\-ipv6\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Make\ all\ connections\ via\ IPv6\ (experimental)
 
  48 \-\-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
 
  49 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ not\ present)\ is\ used\ for\ the\ actual\ downloading.\ (experimental)
 
  56 \-\-playlist\-start\ NUMBER\ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ start\ at\ (default\ is\ 1)
 
  57 \-\-playlist\-end\ NUMBER\ \ \ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ end\ at\ (default\ is\ last)
 
  58 \-\-playlist\-items\ ITEM_SPEC\ \ \ \ \ \ \ Playlist\ video\ items\ to\ download.\ Specify\ indices\ of\ the\ videos\ in\ the\ playlist\ separated\ by\ commas\ like:\ "\-\-playlist\-items\ 1,2,5,8"
 
  59 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
 
  60 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ download\ the\ videos\ at\ index\ 1,\ 2,\ 3,\ 7,\ 10,\ 11,\ 12\ and\ 13.
 
  61 \-\-match\-title\ REGEX\ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ matching\ titles\ (regex\ or\ caseless\ sub\-string)
 
  62 \-\-reject\-title\ REGEX\ \ \ \ \ \ \ \ \ \ \ \ \ Skip\ download\ for\ matching\ titles\ (regex\ or\ caseless\ sub\-string)
 
  63 \-\-max\-downloads\ NUMBER\ \ \ \ \ \ \ \ \ \ \ Abort\ after\ downloading\ NUMBER\ files
 
  64 \-\-min\-filesize\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ smaller\ than\ SIZE\ (e.g.\ 50k\ or\ 44.6m)
 
  65 \-\-max\-filesize\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ larger\ than\ SIZE\ (e.g.\ 50k\ or\ 44.6m)
 
  66 \-\-date\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ in\ this\ date
 
  67 \-\-datebefore\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ on\ or\ before\ this\ date\ (i.e.\ inclusive)
 
  68 \-\-dateafter\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ uploaded\ on\ or\ after\ this\ date\ (i.e.\ inclusive)
 
  69 \-\-min\-views\ COUNT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ less\ than\ COUNT\ views
 
  70 \-\-max\-views\ COUNT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ more\ than\ COUNT\ views
 
  71 \-\-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,
 
  72 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !key\ to\ check\ if\ the\ key\ is\ not\ present,key\ >\ NUMBER\ (like\ "comment_count\ >\ 12",\ also\ works\ with\ >=,\ <,\ <=,\ !=,\ =)\ to\ compare\ against
 
  73 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ number,\ and\ &\ to\ require\ multiple\ matches.\ Values\ which\ are\ not\ known\ are\ excluded\ unless\ you\ put\ a\ question\ mark\ (?)\ after\ the
 
  74 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ operator.For\ example,\ to\ only\ match\ videos\ that\ have\ been\ liked\ more\ than\ 100\ times\ and\ disliked\ less\ than\ 50\ times\ (or\ the\ dislike
 
  75 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ functionality\ is\ not\ available\ at\ the\ given\ service),\ but\ who\ also\ have\ a\ description,\ use\ \ \-\-match\-filter\ "like_count\ >\ 100\ &
 
  76 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dislike_count\ <?\ 50\ &\ description"\ .
 
  77 \-\-no\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ the\ video,\ if\ the\ URL\ refers\ to\ a\ video\ and\ a\ playlist.
 
  78 \-\-yes\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ the\ playlist,\ if\ the\ URL\ refers\ to\ a\ video\ and\ a\ playlist.
 
  79 \-\-age\-limit\ YEARS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ suitable\ for\ the\ given\ age
 
  80 \-\-download\-archive\ FILE\ \ \ \ \ \ \ \ \ \ Download\ only\ videos\ not\ listed\ in\ the\ archive\ file.\ Record\ the\ IDs\ of\ all\ downloaded\ videos\ in\ it.
 
  81 \-\-include\-ads\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ advertisements\ as\ well\ (experimental)
 
  88 \-r,\ \-\-rate\-limit\ LIMIT\ \ \ \ \ \ \ \ \ \ \ Maximum\ download\ rate\ in\ bytes\ per\ second\ (e.g.\ 50K\ or\ 4.2M)
 
  89 \-R,\ \-\-retries\ RETRIES\ \ \ \ \ \ \ \ \ \ \ \ Number\ of\ retries\ (default\ is\ 10),\ or\ "infinite".
 
  90 \-\-buffer\-size\ SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Size\ of\ download\ buffer\ (e.g.\ 1024\ or\ 16K)\ (default\ is\ 1024)
 
  91 \-\-no\-resize\-buffer\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ automatically\ adjust\ the\ buffer\ size.\ By\ default,\ the\ buffer\ size\ is\ automatically\ resized\ from\ an\ initial\ value\ of\ SIZE.
 
  92 \-\-playlist\-reverse\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ playlist\ videos\ in\ reverse\ order
 
  93 \-\-xattr\-set\-filesize\ \ \ \ \ \ \ \ \ \ \ \ \ Set\ file\ xattribute\ ytdl.filesize\ with\ expected\ filesize\ (experimental)
 
  94 \-\-hls\-prefer\-native\ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ native\ HLS\ downloader\ instead\ of\ ffmpeg\ (experimental)
 
  95 \-\-external\-downloader\ COMMAND\ \ \ \ Use\ the\ specified\ external\ downloader.\ Currently\ supports\ aria2c,curl,httpie,wget
 
  96 \-\-external\-downloader\-args\ ARGS\ \ Give\ these\ arguments\ to\ the\ external\ downloader
 
  99 .SS Filesystem Options:
 
 103 \-a,\ \-\-batch\-file\ FILE\ \ \ \ \ \ \ \ \ \ \ \ File\ containing\ URLs\ to\ download\ (\[aq]\-\[aq]\ for\ stdin)
 
 104 \-\-id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ only\ video\ ID\ in\ file\ name
 
 105 \-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
 
 106 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nickname\ if\ different,\ %(autonumber)s\ to\ get\ an\ automatically\ incremented\ number,\ %(ext)s\ for\ the\ filename\ extension,\ %(format)s\ for
 
 107 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ the\ format\ description\ (like\ "22\ \-\ 1280x720"\ or\ "HD"),\ %(format_id)s\ for\ the\ unique\ id\ of\ the\ format\ (like\ YouTube\[aq]s\ itags:\ "137"),
 
 108 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(upload_date)s\ for\ the\ upload\ date\ (YYYYMMDD),\ %(extractor)s\ for\ the\ provider\ (youtube,\ metacafe,\ etc),\ %(id)s\ for\ the\ video\ id,
 
 109 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(playlist_title)s,\ %(playlist_id)s,\ or\ %(playlist)s\ (=title\ if\ present,\ ID\ otherwise)\ for\ the\ playlist\ the\ video\ is\ in,
 
 110 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(playlist_index)s\ for\ the\ position\ in\ the\ playlist.\ %(height)s\ and\ %(width)s\ for\ the\ width\ and\ height\ of\ the\ video\ format.
 
 111 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(resolution)s\ for\ a\ textual\ description\ of\ the\ resolution\ of\ the\ video\ format.\ %%\ for\ a\ literal\ percent.\ Use\ \-\ to\ output\ to\ stdout.
 
 112 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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]\ .
 
 113 \-\-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
 
 114 \-\-restrict\-filenames\ \ \ \ \ \ \ \ \ \ \ \ \ Restrict\ filenames\ to\ only\ ASCII\ characters,\ and\ avoid\ "&"\ and\ spaces\ in\ filenames
 
 115 \-A,\ \-\-auto\-number\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated;\ use\ \ \-o\ "%(autonumber)s\-%(title)s.%(ext)s"\ ]\ Number\ downloaded\ files\ starting\ from\ 00000
 
 116 \-t,\ \-\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated]\ Use\ title\ in\ file\ name\ (default)
 
 117 \-l,\ \-\-literal\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [deprecated]\ Alias\ of\ \-\-title
 
 118 \-w,\ \-\-no\-overwrites\ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ overwrite\ files
 
 119 \-c,\ \-\-continue\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Force\ resume\ of\ partially\ downloaded\ files.\ By\ default,\ youtube\-dl\ will\ resume\ downloads\ if\ possible.
 
 120 \-\-no\-continue\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ resume\ partially\ downloaded\ files\ (restart\ from\ beginning)
 
 121 \-\-no\-part\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ use\ .part\ files\ \-\ write\ directly\ into\ output\ file
 
 122 \-\-no\-mtime\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ use\ the\ Last\-modified\ header\ to\ set\ the\ file\ modification\ time
 
 123 \-\-write\-description\ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ description\ to\ a\ .description\ file
 
 124 \-\-write\-info\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ metadata\ to\ a\ .info.json\ file
 
 125 \-\-write\-annotations\ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ video\ annotations\ to\ a\ .annotations.xml\ file
 
 126 \-\-load\-info\ FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ JSON\ file\ containing\ the\ video\ information\ (created\ with\ the\ "\-\-write\-info\-json"\ option)
 
 127 \-\-cookies\ FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ File\ to\ read\ cookies\ from\ and\ dump\ cookie\ jar\ in
 
 128 \-\-cache\-dir\ DIR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Location\ in\ the\ filesystem\ where\ youtube\-dl\ can\ store\ some\ downloaded\ information\ permanently.\ By\ default\ $XDG_CACHE_HOME/youtube\-dl
 
 129 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ or\ ~/.cache/youtube\-dl\ .\ At\ the\ moment,\ only\ YouTube\ player\ files\ (for\ videos\ with\ obfuscated\ signatures)\ are\ cached,\ but\ that\ may
 
 130 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ change.
 
 131 \-\-no\-cache\-dir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Disable\ filesystem\ caching
 
 132 \-\-rm\-cache\-dir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Delete\ all\ filesystem\ cache\ files
 
 135 .SS Thumbnail images:
 
 139 \-\-write\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ thumbnail\ image\ to\ disk
 
 140 \-\-write\-all\-thumbnails\ \ \ \ \ \ \ \ \ \ \ Write\ all\ thumbnail\ image\ formats\ to\ disk
 
 141 \-\-list\-thumbnails\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate\ and\ list\ all\ available\ thumbnail\ formats
 
 144 .SS Verbosity / Simulation Options:
 
 148 \-q,\ \-\-quiet\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Activate\ quiet\ mode
 
 149 \-\-no\-warnings\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Ignore\ warnings
 
 150 \-s,\ \-\-simulate\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ the\ video\ and\ do\ not\ write\ anything\ to\ disk
 
 151 \-\-skip\-download\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ download\ the\ video
 
 152 \-g,\ \-\-get\-url\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ URL
 
 153 \-e,\ \-\-get\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ title
 
 154 \-\-get\-id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ id
 
 155 \-\-get\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ thumbnail\ URL
 
 156 \-\-get\-description\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ video\ description
 
 157 \-\-get\-duration\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ video\ length
 
 158 \-\-get\-filename\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ output\ filename
 
 159 \-\-get\-format\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ output\ format
 
 160 \-j,\ \-\-dump\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Simulate,\ quiet\ but\ print\ JSON\ information.\ See\ \-\-output\ for\ a\ description\ of\ available\ keys.
 
 161 \-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
 
 162 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ information\ in\ a\ single\ line.
 
 163 \-\-print\-json\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Be\ quiet\ and\ print\ the\ video\ information\ as\ JSON\ (video\ is\ still\ being\ downloaded).
 
 164 \-\-newline\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Output\ progress\ bar\ as\ new\ lines
 
 165 \-\-no\-progress\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ print\ progress\ bar
 
 166 \-\-console\-title\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ progress\ in\ console\ titlebar
 
 167 \-v,\ \-\-verbose\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ various\ debugging\ information
 
 168 \-\-dump\-pages\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ downloaded\ pages\ encoded\ using\ base64\ to\ debug\ problems\ (very\ verbose)
 
 169 \-\-write\-pages\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ downloaded\ intermediary\ pages\ to\ files\ in\ the\ current\ directory\ to\ debug\ problems
 
 170 \-\-print\-traffic\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ sent\ and\ read\ HTTP\ traffic
 
 171 \-C,\ \-\-call\-home\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Contact\ the\ youtube\-dl\ server\ for\ debugging
 
 172 \-\-no\-call\-home\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Do\ NOT\ contact\ the\ youtube\-dl\ server\ for\ debugging
 
 179 \-\-encoding\ ENCODING\ \ \ \ \ \ \ \ \ \ \ \ \ \ Force\ the\ specified\ encoding\ (experimental)
 
 180 \-\-no\-check\-certificate\ \ \ \ \ \ \ \ \ \ \ Suppress\ HTTPS\ certificate\ validation
 
 181 \-\-prefer\-insecure\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ an\ unencrypted\ connection\ to\ retrieve\ information\ about\ the\ video.\ (Currently\ supported\ only\ for\ YouTube)
 
 182 \-\-user\-agent\ UA\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Specify\ a\ custom\ user\ agent
 
 183 \-\-referer\ URL\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Specify\ a\ custom\ referer,\ use\ if\ the\ video\ access\ is\ restricted\ to\ one\ domain
 
 184 \-\-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
 
 185 \-\-bidi\-workaround\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Work\ around\ terminals\ that\ lack\ bidirectional\ text\ support.\ Requires\ bidiv\ or\ fribidi\ executable\ in\ PATH
 
 186 \-\-sleep\-interval\ SECONDS\ \ \ \ \ \ \ \ \ Number\ of\ seconds\ to\ sleep\ before\ each\ download.
 
 189 .SS Video Format Options:
 
 193 \-f,\ \-\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ \ \ Video\ format\ code,\ see\ the\ "FORMAT\ SELECTION"\ for\ all\ the\ info
 
 194 \-\-all\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ all\ available\ video\ formats
 
 195 \-\-prefer\-free\-formats\ \ \ \ \ \ \ \ \ \ \ \ Prefer\ free\ video\ formats\ unless\ a\ specific\ one\ is\ requested
 
 196 \-F,\ \-\-list\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ available\ formats
 
 197 \-\-youtube\-skip\-dash\-manifest\ \ \ \ \ Do\ not\ download\ the\ DASH\ manifests\ and\ related\ data\ on\ YouTube\ videos
 
 198 \-\-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
 
 199 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge\ is\ required
 
 202 .SS Subtitle Options:
 
 206 \-\-write\-sub\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ subtitle\ file
 
 207 \-\-write\-auto\-sub\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ automatic\ subtitle\ file\ (YouTube\ only)
 
 208 \-\-all\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ all\ the\ available\ subtitles\ of\ the\ video
 
 209 \-\-list\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ available\ subtitles\ for\ the\ video
 
 210 \-\-sub\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ \ \ Subtitle\ format,\ accepts\ formats\ preference,\ for\ example:\ "srt"\ or\ "ass/srt/best"
 
 211 \-\-sub\-lang\ LANGS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Languages\ of\ the\ subtitles\ to\ download\ (optional)\ separated\ by\ commas,\ use\ IETF\ language\ tags\ like\ \[aq]en,pt\[aq]
 
 214 .SS Authentication Options:
 
 218 \-u,\ \-\-username\ USERNAME\ \ \ \ \ \ \ \ \ \ Login\ with\ this\ account\ ID
 
 219 \-p,\ \-\-password\ PASSWORD\ \ \ \ \ \ \ \ \ \ Account\ password.\ If\ this\ option\ is\ left\ out,\ youtube\-dl\ will\ ask\ interactively.
 
 220 \-2,\ \-\-twofactor\ TWOFACTOR\ \ \ \ \ \ \ \ Two\-factor\ auth\ code
 
 221 \-n,\ \-\-netrc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ .netrc\ authentication\ data
 
 222 \-\-video\-password\ PASSWORD\ \ \ \ \ \ \ \ Video\ password\ (vimeo,\ smotri)
 
 225 .SS Post\-processing Options:
 
 229 \-x,\ \-\-extract\-audio\ \ \ \ \ \ \ \ \ \ \ \ \ \ Convert\ video\ files\ to\ audio\-only\ files\ (requires\ ffmpeg\ or\ avconv\ and\ ffprobe\ or\ avprobe)
 
 230 \-\-audio\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Specify\ audio\ format:\ "best",\ "aac",\ "vorbis",\ "mp3",\ "m4a",\ "opus",\ or\ "wav";\ "best"\ by\ default
 
 231 \-\-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
 
 232 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 5)
 
 233 \-\-recode\-video\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Encode\ the\ video\ to\ another\ format\ if\ necessary\ (currently\ supported:\ mp4|flv|ogg|webm|mkv|avi)
 
 234 \-\-postprocessor\-args\ ARGS\ \ \ \ \ \ \ \ Give\ these\ arguments\ to\ the\ postprocessor
 
 235 \-k,\ \-\-keep\-video\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Keep\ the\ video\ file\ on\ disk\ after\ the\ post\-processing;\ the\ video\ is\ erased\ by\ default
 
 236 \-\-no\-post\-overwrites\ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ overwrite\ post\-processed\ files;\ the\ post\-processed\ files\ are\ overwritten\ by\ default
 
 237 \-\-embed\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Embed\ subtitles\ in\ the\ video\ (only\ for\ mkv\ and\ mp4\ videos)
 
 238 \-\-embed\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Embed\ thumbnail\ in\ the\ audio\ as\ cover\ art
 
 239 \-\-add\-metadata\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ metadata\ to\ the\ video\ file
 
 240 \-\-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
 
 241 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ parameters\ replace\ existing\ values.\ Additional\ templates:\ %(album)s,\ %(artist)s.\ Example:\ \-\-metadata\-from\-title\ "%(artist)s\ \-
 
 242 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(title)s"\ matches\ a\ title\ like\ "Coldplay\ \-\ Paradise"
 
 243 \-\-xattrs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ metadata\ to\ the\ video\ file\[aq]s\ xattrs\ (using\ dublin\ core\ and\ xdg\ standards)
 
 244 \-\-fixup\ POLICY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Automatically\ correct\ known\ faults\ of\ the\ file.\ One\ of\ never\ (do\ nothing),\ warn\ (only\ emit\ a\ warning),\ detect_or_warn\ (the\ default;
 
 245 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fix\ file\ if\ we\ can,\ warn\ otherwise)
 
 246 \-\-prefer\-avconv\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ avconv\ over\ ffmpeg\ for\ running\ the\ postprocessors\ (default)
 
 247 \-\-prefer\-ffmpeg\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ ffmpeg\ over\ avconv\ for\ running\ the\ postprocessors
 
 248 \-\-ffmpeg\-location\ PATH\ \ \ \ \ \ \ \ \ \ \ Location\ of\ the\ ffmpeg/avconv\ binary;\ either\ the\ path\ to\ the\ binary\ or\ its\ containing\ directory.
 
 249 \-\-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
 
 250 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {}\[aq]
 
 251 \-\-convert\-subtitles\ FORMAT\ \ \ \ \ \ \ Convert\ the\ subtitles\ to\ other\ format\ (currently\ supported:\ srt|ass|vtt)
 
 256 You can configure youtube\-dl by placing default arguments (such as
 
 257 \f[C]\-\-extract\-audio\ \-\-no\-mtime\f[] to always extract the audio
 
 258 and not copy the mtime) into \f[C]/etc/youtube\-dl.conf\f[] and/or
 
 259 \f[C]~/.config/youtube\-dl/config\f[].
 
 260 On Windows, the configuration file locations are
 
 261 \f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] and
 
 262 \f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[].
 
 263 .SS Authentication with \f[C]\&.netrc\f[] file
 
 265 You may also want to configure automatic credentials storage for
 
 266 extractors that support authentication (by providing login and password
 
 267 with \f[C]\-\-username\f[] and \f[C]\-\-password\f[]) in order not to
 
 268 pass credentials as command line arguments on every youtube\-dl
 
 269 execution and prevent tracking plain text passwords in shell command
 
 271 You can achieve this using \f[C]\&.netrc\f[]
 
 272 file (http://stackoverflow.com/tags/.netrc/info) on per extractor basis.
 
 273 For that you will need to create \f[C]\&.netrc\f[] file in your
 
 274 \f[C]$HOME\f[] and restrict permissions to read/write by you only:
 
 279 chmod\ a\-rwx,u+rw\ $HOME/.netrc
 
 283 After that you can add credentials for extractor in the following
 
 284 format, where \f[I]extractor\f[] is the name of extractor in lowercase:
 
 288 machine\ <extractor>\ login\ <login>\ password\ <password>
 
 296 machine\ youtube\ login\ myaccount\@gmail.com\ password\ my_youtube_password
 
 297 machine\ twitch\ login\ my_twitch_account_name\ password\ my_twitch_password
 
 301 To activate authentication with \f[C]\&.netrc\f[] file you should pass
 
 302 \f[C]\-\-netrc\f[] to youtube\-dl or to place it in configuration
 
 303 file (#configuration).
 
 305 On Windows you may also need to setup \f[C]%HOME%\f[] environment
 
 309 The \f[C]\-o\f[] option allows users to indicate a template for the
 
 311 The basic usage is not to set any template arguments when downloading a
 
 313 \f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[].
 
 314 However, it may contain special sequences that will be replaced when
 
 315 downloading each video.
 
 316 The special sequences have the format \f[C]%(NAME)s\f[].
 
 317 To clarify, that is a percent symbol followed by a name in parenthesis,
 
 318 followed by a lowercase S.
 
 321 \f[C]id\f[]: The sequence will be replaced by the video identifier.
 
 323 \f[C]url\f[]: The sequence will be replaced by the video URL.
 
 325 \f[C]uploader\f[]: The sequence will be replaced by the nickname of the
 
 326 person who uploaded the video.
 
 328 \f[C]upload_date\f[]: The sequence will be replaced by the upload date
 
 331 \f[C]title\f[]: The sequence will be replaced by the video title.
 
 333 \f[C]ext\f[]: The sequence will be replaced by the appropriate extension
 
 336 \f[C]epoch\f[]: The sequence will be replaced by the Unix epoch when
 
 339 \f[C]autonumber\f[]: The sequence will be replaced by a five\-digit
 
 340 number that will be increased with each download, starting at zero.
 
 342 \f[C]playlist\f[]: The name or the id of the playlist that contains the
 
 345 \f[C]playlist_index\f[]: The index of the video in the playlist, a
 
 348 The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[].
 
 350 In some cases, you don\[aq]t want special characters such as äø, spaces,
 
 351 or &, such as when transferring the downloaded filename to a Windows
 
 352 system or the filename through an 8bit\-unsafe channel.
 
 353 In these cases, add the \f[C]\-\-restrict\-filenames\f[] flag to get a
 
 358 $\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc
 
 359 youtube\-dl\ test\ video\ \[aq]\[aq]_Ƥāš.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters
 
 360 $\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc\ \-\-restrict\-filenames
 
 361 youtube\-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name
 
 366 By default youtube\-dl tries to download the best quality, but sometimes
 
 367 you may want to download other format.
 
 368 The simplest case is requesting a specific format, for example
 
 370 You can get the list of available formats using
 
 371 \f[C]\-\-list\-formats\f[], you can also use a file extension (currently
 
 372 it supports aac, m4a, mp3, mp4, ogg, wav, webm) or the special names
 
 373 \f[C]best\f[], \f[C]bestvideo\f[], \f[C]bestaudio\f[] and
 
 376 If you want to download multiple videos and they don\[aq]t have the same
 
 377 formats available, you can specify the order of preference using
 
 378 slashes, as in \f[C]\-f\ 22/17/18\f[].
 
 379 You can also filter the video results by putting a condition in
 
 380 brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or
 
 381 \f[C]\-f\ "[filesize>10M]"\f[]).
 
 382 This works for filesize, height, width, tbr, abr, vbr, asr, and fps and
 
 383 the comparisons <, <=, >, >=, =, != and for ext, acodec, vcodec,
 
 384 container, and protocol and the comparisons =, != .
 
 385 Formats for which the value is not known are excluded unless you put a
 
 386 question mark (?) after the operator.
 
 387 You can combine format filters, so
 
 388 \f[C]\-f\ "[height\ <=?\ 720][tbr>500]"\f[] selects up to 720p videos
 
 389 (or videos where the height is not known) with a bitrate of at least 500
 
 391 Use commas to download multiple formats, such as
 
 392 \f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[].
 
 393 You can merge the video and audio of two formats into a single file
 
 394 using \f[C]\-f\ <video\-format>+<audio\-format>\f[] (requires ffmpeg or
 
 395 avconv), for example \f[C]\-f\ bestvideo+bestaudio\f[].
 
 397 Since the end of April 2015 and version 2015.04.26 youtube\-dl uses
 
 398 \f[C]\-f\ bestvideo+bestaudio/best\f[] as default format selection (see
 
 400 If ffmpeg or avconv are installed this results in downloading
 
 401 \f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them
 
 402 together into a single file giving the best overall quality available.
 
 403 Otherwise it falls back to \f[C]best\f[] and results in downloading best
 
 404 available quality served as a single file.
 
 405 \f[C]best\f[] is also needed for videos that don\[aq]t come from YouTube
 
 406 because they don\[aq]t provide the audio and video in two different
 
 408 If you want to only download some dash formats (for example if you are
 
 409 not interested in getting videos with a resolution higher than 1080p),
 
 410 you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to
 
 411 your configuration file.
 
 412 Note that if you use youtube\-dl to stream to \f[C]stdout\f[] (and most
 
 413 likely to pipe it to your media player then), i.e.
 
 414 you explicitly specify output template as \f[C]\-o\ \-\f[], youtube\-dl
 
 415 still uses \f[C]\-f\ best\f[] format selection in order to start content
 
 416 delivery immediately to your player and not to wait until
 
 417 \f[C]bestvideo\f[] and \f[C]bestaudio\f[] are downloaded and muxed.
 
 419 If you want to preserve the old format selection behavior (prior to
 
 420 youtube\-dl 2015.04.26), i.e.
 
 421 you want to download best available quality media served as a single
 
 422 file, you should explicitly specify your choice with \f[C]\-f\ best\f[].
 
 423 You may want to add it to the configuration file (#configuration) in
 
 424 order not to type it every time you run youtube\-dl.
 
 427 Videos can be filtered by their upload date using the options
 
 428 \f[C]\-\-date\f[], \f[C]\-\-datebefore\f[] or \f[C]\-\-dateafter\f[],
 
 429 they accept dates in two formats:
 
 431 Absolute dates: Dates in the format \f[C]YYYYMMDD\f[].
 
 433 Relative dates: Dates in the format
 
 434 \f[C](now|today)[+\-][0\-9](day|week|month|year)(s)?\f[]
 
 440 #\ Download\ only\ the\ videos\ uploaded\ in\ the\ last\ 6\ months
 
 441 $\ youtube\-dl\ \-\-dateafter\ now\-6months
 
 443 #\ Download\ only\ the\ videos\ uploaded\ on\ January\ 1,\ 1970
 
 444 $\ youtube\-dl\ \-\-date\ 19700101
 
 446 $\ #\ will\ only\ download\ the\ videos\ uploaded\ in\ the\ 200x\ decade
 
 447 $\ youtube\-dl\ \-\-dateafter\ 20000101\ \-\-datebefore\ 20091231
 
 451 .SS How do I update youtube\-dl?
 
 453 If you\[aq]ve followed our manual installation
 
 454 instructions (http://rg3.github.io/youtube-dl/download.html), you can
 
 455 simply run \f[C]youtube\-dl\ \-U\f[] (or, on Linux,
 
 456 \f[C]sudo\ youtube\-dl\ \-U\f[]).
 
 458 If you have used pip, a simple
 
 459 \f[C]sudo\ pip\ install\ \-U\ youtube\-dl\f[] is sufficient to update.
 
 461 If you have installed youtube\-dl using a package manager like
 
 462 \f[I]apt\-get\f[] or \f[I]yum\f[], use the standard system update
 
 464 Note that distribution packages are often outdated.
 
 465 As a rule of thumb, youtube\-dl releases at least once a month, and
 
 466 often weekly or even daily.
 
 467 Simply go to http://yt\-dl.org/ to find out the current version.
 
 468 Unfortunately, there is nothing we youtube\-dl developers can do if your
 
 469 distributions serves a really outdated version.
 
 470 You can (and should) complain to your distribution in their bugtracker
 
 473 As a last resort, you can also uninstall the version installed by your
 
 474 package manager and follow our manual installation instructions.
 
 475 For that, remove the distribution\[aq]s package, with a line like
 
 479 sudo\ apt\-get\ remove\ \-y\ youtube\-dl
 
 483 Afterwards, simply follow our manual installation
 
 484 instructions (http://rg3.github.io/youtube-dl/download.html):
 
 488 sudo\ wget\ https://yt\-dl.org/latest/youtube\-dl\ \-O\ /usr/local/bin/youtube\-dl
 
 489 sudo\ chmod\ a+x\ /usr/local/bin/youtube\-dl
 
 494 Again, from then on you\[aq]ll be able to update with
 
 495 \f[C]sudo\ youtube\-dl\ \-U\f[].
 
 496 .SS I\[aq]m getting an error
 
 497 \f[C]Unable\ to\ extract\ OpenGraph\ title\f[] on YouTube playlists
 
 499 YouTube changed their playlist format in March 2014 and later on, so
 
 500 you\[aq]ll need at least youtube\-dl 2014.07.25 to download all YouTube
 
 503 If you have installed youtube\-dl with a package manager, pip, setup.py
 
 504 or a tarball, please use that to update.
 
 505 Note that Ubuntu packages do not seem to get updated anymore.
 
 506 Since we are not affiliated with Ubuntu, there is little we can do.
 
 508 bugs (https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+filebug) to
 
 510 guys (mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20youtube-dl)
 
 511 \- all they have to do is update the package to a somewhat recent
 
 513 See above for a way to update.
 
 514 .SS Do I always have to pass \f[C]\-citw\f[]?
 
 516 By default, youtube\-dl intends to have the best options (incidentally,
 
 517 if you have a convincing case that these should be different, please
 
 518 file an issue where you explain that (https://yt-dl.org/bug)).
 
 519 Therefore, it is unnecessary and sometimes harmful to copy long option
 
 520 strings from webpages.
 
 521 In particular, the only option out of \f[C]\-citw\f[] that is regularly
 
 522 useful is \f[C]\-i\f[].
 
 523 .SS Can you please put the \-b option back?
 
 525 Most people asking this question are not aware that youtube\-dl now
 
 526 defaults to downloading the highest available quality as reported by
 
 527 YouTube, which will be 1080p or 720p in some cases, so you no longer
 
 528 need the \f[C]\-b\f[] option.
 
 529 For some specific videos, maybe YouTube does not report them to be
 
 530 available in a specific high quality format you\[aq]re interested in.
 
 531 In that case, simply request it with the \f[C]\-f\f[] option and
 
 532 youtube\-dl will try to download it.
 
 533 .SS I get HTTP error 402 when trying to download a video. What\[aq]s
 
 536 Apparently YouTube requires you to pass a CAPTCHA test if you download
 
 538 We\[aq]re considering to provide a way to let you solve the
 
 539 CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at the
 
 540 moment, your best course of action is pointing a webbrowser to the
 
 541 youtube URL, solving the CAPTCHA, and restart youtube\-dl.
 
 542 .SS I have downloaded a video but how can I play it?
 
 544 Once the video is fully downloaded, use any video player, such as
 
 545 vlc (http://www.videolan.org) or mplayer (http://www.mplayerhq.hu/).
 
 546 .SS I extracted a video URL with \-g, but it does not play on another
 
 547 machine / in my webbrowser.
 
 549 It depends a lot on the service.
 
 550 In many cases, requests for the video (to download/play it) must come
 
 551 from the same IP address and with the same cookies.
 
 552 Use the \f[C]\-\-cookies\f[] option to write the required cookies into a
 
 553 file, and advise your downloader to read cookies from that file.
 
 554 Some sites also require a common user agent to be used, use
 
 555 \f[C]\-\-dump\-user\-agent\f[] to see the one in use by youtube\-dl.
 
 557 It may be beneficial to use IPv6; in some cases, the restrictions are
 
 558 only applied to IPv4.
 
 559 Some services (sometimes only for a subset of videos) do not restrict
 
 560 the video URL by IP address, cookie, or user\-agent, but these are the
 
 561 exception rather than the rule.
 
 563 Please bear in mind that some URL protocols are \f[B]not\f[] supported
 
 564 by browsers out of the box, including RTMP.
 
 565 If you are using \-g, your own downloader must support these as well.
 
 567 If you want to play the video on a machine that is not running
 
 568 youtube\-dl, you can relay the video content from the machine that runs
 
 570 You can use \f[C]\-o\ \-\f[] to let youtube\-dl stream a video to
 
 571 stdout, or simply allow the player to download the files written by
 
 573 .SS ERROR: no fmt_url_map or conn information found in video info
 
 575 YouTube has switched to a new video info format in July 2011 which is
 
 576 not supported by old versions of youtube\-dl.
 
 577 See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
 
 578 .SS ERROR: unable to download video
 
 580 YouTube requires an additional signature since September 2012 which is
 
 581 not supported by old versions of youtube\-dl.
 
 582 See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
 
 583 .SS Video URL contains an ampersand and I\[aq]m getting some strange
 
 584 output \f[C][1]\ 2839\f[] or
 
 585 \f[C]\[aq]v\[aq]\ is\ not\ recognized\ as\ an\ internal\ or\ external\ command\f[]
 
 587 That\[aq]s actually the output from your shell.
 
 588 Since ampersand is one of the special shell characters it\[aq]s
 
 589 interpreted by shell preventing you from passing the whole URL to
 
 591 To disable your shell from interpreting the ampersands (or any other
 
 592 special characters) you have to either put the whole URL in quotes or
 
 593 escape them with a backslash (which approach will work depends on your
 
 596 For example if your URL is
 
 597 https://www.youtube.com/watch?t=4&v=BaW_jenozKc you should end up with
 
 600 \f[C]youtube\-dl\ \[aq]https://www.youtube.com/watch?t=4&v=BaW_jenozKc\[aq]\f[]
 
 604 \f[C]youtube\-dl\ https://www.youtube.com/watch?t=4\\&v=BaW_jenozKc\f[]
 
 606 For Windows you have to use the double quotes:
 
 608 \f[C]youtube\-dl\ "https://www.youtube.com/watch?t=4&v=BaW_jenozKc"\f[]
 
 609 .SS ExtractorError: Could not find JS function u\[aq]OF\[aq]
 
 611 In February 2015, the new YouTube player contained a character sequence
 
 612 in a string that was misinterpreted by old versions of youtube\-dl.
 
 613 See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl.
 
 614 .SS HTTP Error 429: Too Many Requests or 402: Payment Required
 
 616 These two error codes indicate that the service is blocking your IP
 
 617 address because of overuse.
 
 618 Contact the service and ask them to unblock your IP address, or \- if
 
 619 you have acquired a whitelisted IP address already \- use the
 
 620 \f[C]\-\-proxy\f[] or \f[C]\-\-source\-address\f[]
 
 621 options (#network-options) to select another IP address.
 
 622 .SS SyntaxError: Non\-ASCII character
 
 628 File\ "youtube\-dl",\ line\ 2
 
 629 SyntaxError:\ Non\-ASCII\ character\ \[aq]\\x93\[aq]\ ...
 
 633 means you\[aq]re using an outdated version of Python.
 
 634 Please update to Python 2.6 or 2.7.
 
 635 .SS What is this binary file? Where has the code gone?
 
 637 Since June 2012 (#342) youtube\-dl is packed as an executable zipfile,
 
 638 simply unzip it (might need renaming to \f[C]youtube\-dl.zip\f[] first
 
 639 on some systems) or clone the git repository, as laid out above.
 
 640 If you modify the code, you can run it by executing the
 
 641 \f[C]__main__.py\f[] file.
 
 642 To recompile the executable, run \f[C]make\ youtube\-dl\f[].
 
 643 .SS The exe throws a \f[I]Runtime error from Visual C++\f[]
 
 645 To run the exe you need to install first the Microsoft Visual C++ 2008
 
 647 Package (http://www.microsoft.com/en-us/download/details.aspx?id=29).
 
 648 .SS On Windows, how should I set up ffmpeg and youtube\-dl? Where should
 
 651 If you put youtube\-dl and ffmpeg in the same directory that you\[aq]re
 
 652 running the command from, it will work, but that\[aq]s rather
 
 655 To make a different directory work \- either for ffmpeg, or for
 
 656 youtube\-dl, or for both \- simply create the directory (say,
 
 657 \f[C]C:\\bin\f[], or \f[C]C:\\Users\\<User\ name>\\bin\f[]), put all the
 
 658 executables directly in there, and then set your PATH environment
 
 659 variable (https://www.java.com/en/download/help/path.xml) to include
 
 662 From then on, after restarting your shell, you will be able to access
 
 663 both youtube\-dl and ffmpeg (and youtube\-dl will be able to find
 
 664 ffmpeg) by simply typing \f[C]youtube\-dl\f[] or \f[C]ffmpeg\f[], no
 
 665 matter what directory you\[aq]re in.
 
 666 .SS How do I put downloads into a specific folder?
 
 668 Use the \f[C]\-o\f[] to specify an output template (#output-template),
 
 669 for example \f[C]\-o\ "/home/user/videos/%(title)s\-%(id)s.%(ext)s"\f[].
 
 670 If you want this for all of your downloads, put the option into your
 
 671 configuration file (#configuration).
 
 672 .SS How do I download a video starting with a \f[C]\-\f[] ?
 
 674 Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the
 
 675 ID from the options with \f[C]\-\-\f[]:
 
 679 youtube\-dl\ \-\-\ \-wNyEUrxzFU
 
 680 youtube\-dl\ "http://www.youtube.com/watch?v=\-wNyEUrxzFU"
 
 683 .SS Can you add support for this anime video site, or site which shows
 
 684 current movies for free?
 
 686 As a matter of policy (as well as legality), youtube\-dl does not
 
 687 include support for services that specialize in infringing copyright.
 
 688 As a rule of thumb, if you cannot easily find a video that the service
 
 689 is quite obviously allowed to distribute (i.e.
 
 690 that has been uploaded by the creator, the creator\[aq]s distributor, or
 
 691 is published under a free license), the service is probably unfit for
 
 692 inclusion to youtube\-dl.
 
 694 A note on the service that they don\[aq]t host the infringing content,
 
 695 but just link to those who do, is evidence that the service should
 
 696 \f[B]not\f[] be included into youtube\-dl.
 
 697 The same goes for any DMCA note when the whole front page of the service
 
 698 is filled with videos they are not allowed to distribute.
 
 699 A "fair use" note is equally unconvincing if the service shows
 
 700 copyright\-protected videos in full without authorization.
 
 702 Support requests for services that \f[B]do\f[] purchase the rights to
 
 703 distribute their content are perfectly fine though.
 
 704 If in doubt, you can simply include a source that mentions the
 
 705 legitimate purchase of content.
 
 706 .SS How can I speed up work on my issue?
 
 708 (Also known as: Help, my important issue not being solved!) The
 
 709 youtube\-dl core developer team is quite small.
 
 710 While we do our best to solve as many issues as possible, sometimes that
 
 711 can take quite a while.
 
 712 To speed up your issue, here\[aq]s what you can do:
 
 714 First of all, please do report the issue at our issue
 
 715 tracker (https://yt-dl.org/bugs).
 
 716 That allows us to coordinate all efforts by users and developers, and
 
 717 serves as a unified point.
 
 718 Unfortunately, the youtube\-dl project has grown too large to use
 
 719 personal email as an effective communication channel.
 
 721 Please read the bug reporting instructions (#bugs) below.
 
 722 A lot of bugs lack all the necessary information.
 
 723 If you can, offer proxy, VPN, or shell access to the youtube\-dl
 
 725 If you are able to, test the issue from multiple computers in multiple
 
 726 countries to exclude local censorship or misconfiguration issues.
 
 728 If nobody is interested in solving your issue, you are welcome to take
 
 729 matters into your own hands and submit a pull request (or coerce/pay
 
 730 somebody else to do so).
 
 732 Feel free to bump the issue from time to time by writing a small comment
 
 733 ("Issue is still present in youtube\-dl version ...from France, but
 
 734 fixed from Belgium"), but please not more than once a month.
 
 735 Please do not declare your issue as \f[C]important\f[] or
 
 737 .SS How can I detect whether a given URL is supported by youtube\-dl?
 
 739 For one, have a look at the list of supported
 
 740 sites (docs/supportedsites.md).
 
 741 Note that it can sometimes happen that the site changes its URL scheme
 
 742 (say, from http://example.com/video/1234567 to
 
 743 http://example.com/v/1234567 ) and youtube\-dl reports an URL of a
 
 744 service in that list as unsupported.
 
 745 In that case, simply report a bug.
 
 747 It is \f[I]not\f[] possible to detect whether a URL is supported or not.
 
 748 That\[aq]s because youtube\-dl contains a generic extractor which
 
 749 matches \f[B]all\f[] URLs.
 
 750 You may be tempted to disable, exclude, or remove the generic extractor,
 
 751 but the generic extractor not only allows users to extract videos from
 
 752 lots of websites that embed a video from another service, but may also
 
 753 be used to extract video from a service that it\[aq]s hosting itself.
 
 754 Therefore, we neither recommend nor support disabling, excluding, or
 
 755 removing the generic extractor.
 
 757 If you want to find out whether a given URL is supported, simply call
 
 759 If you get no videos back, chances are the URL is either not referring
 
 760 to a video or unsupported.
 
 761 You can find out which by examining the output (if you run youtube\-dl
 
 762 on the console) or catching an \f[C]UnsupportedError\f[] exception if
 
 763 you run it from a Python program.
 
 764 .SH DEVELOPER INSTRUCTIONS
 
 766 Most users do not need to build youtube\-dl and can download the
 
 767 builds (http://rg3.github.io/youtube-dl/download.html) or get them from
 
 770 To run youtube\-dl as a developer, you don\[aq]t need to build anything
 
 776 python\ \-m\ youtube_dl
 
 780 To run the test, simply invoke your favorite test runner, or execute a
 
 781 test file directly; any of the following work:
 
 785 python\ \-m\ unittest\ discover
 
 786 python\ test/test_download.py
 
 791 If you want to create a build of youtube\-dl yourself, you\[aq]ll need
 
 802 .SS Adding support for a new site
 
 804 If you want to add support for a new site, you can follow this quick
 
 805 list (assuming your service is called \f[C]yourextractor\f[]):
 
 807 Fork this repository (https://github.com/rg3/youtube-dl/fork)
 
 809 Check out the source code with
 
 810 \f[C]git\ clone\ git\@github.com:YOUR_GITHUB_USERNAME/youtube\-dl.git\f[]
 
 812 Start a new git branch with
 
 813 \f[C]cd\ youtube\-dl;\ git\ checkout\ \-b\ yourextractor\f[]
 
 815 Start with this simple template and save it to
 
 816 \f[C]youtube_dl/extractor/yourextractor.py\f[]:
 
 822 from\ __future__\ import\ unicode_literals
 
 824 from\ .common\ import\ InfoExtractor
 
 827 class\ YourExtractorIE(InfoExtractor):
 
 828 \ \ \ \ _VALID_URL\ =\ r\[aq]https?://(?:www\\.)?yourextractor\\.com/watch/(?P<id>[0\-9]+)\[aq]
 
 830 \ \ \ \ \ \ \ \ \[aq]url\[aq]:\ \[aq]http://yourextractor.com/watch/42\[aq],
 
 831 \ \ \ \ \ \ \ \ \[aq]md5\[aq]:\ \[aq]TODO:\ md5\ sum\ of\ the\ first\ 10241\ bytes\ of\ the\ video\ file\ (use\ \-\-test)\[aq],
 
 832 \ \ \ \ \ \ \ \ \[aq]info_dict\[aq]:\ {
 
 833 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ \[aq]42\[aq],
 
 834 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]ext\[aq]:\ \[aq]mp4\[aq],
 
 835 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ \[aq]Video\ title\ goes\ here\[aq],
 
 836 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]thumbnail\[aq]:\ \[aq]re:^https?://.*\\.jpg$\[aq],
 
 837 \ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties,\ either\ as:
 
 838 \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ value
 
 839 \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ MD5\ checksum;\ start\ the\ string\ with\ md5:
 
 840 \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ regular\ expression;\ start\ the\ string\ with\ re:
 
 841 \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ Any\ Python\ type\ (for\ example\ int\ or\ float)
 
 845 \ \ \ \ def\ _real_extract(self,\ url):
 
 846 \ \ \ \ \ \ \ \ video_id\ =\ self._match_id(url)
 
 847 \ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id)
 
 849 \ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ...
 
 850 \ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]<h1>(.*?)</h1>\[aq],\ webpage,\ \[aq]title\[aq])
 
 852 \ \ \ \ \ \ \ \ return\ {
 
 853 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id,
 
 854 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title,
 
 855 \ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage),
 
 856 \ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py)
 
 863 \f[C]youtube_dl/extractor/__init__.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/__init__.py).
 
 866 \f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[].
 
 867 This \f[I]should fail\f[] at first, but you can continually re\-run it
 
 868 until you\[aq]re done.
 
 869 If you decide to add more than one test, then rename \f[C]_TEST\f[] to
 
 870 \f[C]_TESTS\f[] and make it into a list of dictionaries.
 
 871 The tests will be then be named
 
 872 \f[C]TestDownload.test_YourExtractor\f[],
 
 873 \f[C]TestDownload.test_YourExtractor_1\f[],
 
 874 \f[C]TestDownload.test_YourExtractor_2\f[], etc.
 
 877 \f[C]youtube_dl/common/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py)
 
 878 for possible helper methods and a detailed description of what your
 
 880 return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L38).
 
 881 Add tests and code for as many as you want.
 
 883 If you can, check the code with
 
 884 flake8 (https://pypi.python.org/pypi/flake8).
 
 886 When the tests pass, add (http://git-scm.com/docs/git-add) the new files
 
 887 and commit (http://git-scm.com/docs/git-commit) them and
 
 888 push (http://git-scm.com/docs/git-push) the result, like this:
 
 893 $\ git\ add\ youtube_dl/extractor/__init__.py
 
 894 $\ git\ add\ youtube_dl/extractor/yourextractor.py
 
 895 $\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq]
 
 896 $\ git\ push\ origin\ yourextractor
 
 901 Finally, create a pull
 
 902 request (https://help.github.com/articles/creating-a-pull-request).
 
 903 We\[aq]ll then review and merge it.
 
 905 In any case, thank you very much for your contributions!
 
 906 .SH EMBEDDING YOUTUBE\-DL
 
 908 youtube\-dl makes the best effort to be a good command\-line program,
 
 909 and thus should be callable from any programming language.
 
 910 If you encounter any problems parsing its output, feel free to create a
 
 911 report (https://github.com/rg3/youtube-dl/issues/new).
 
 913 From a Python program, you can embed youtube\-dl in a more powerful
 
 918 from\ __future__\ import\ unicode_literals
 
 922 with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
 
 923 \ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]])
 
 927 Most likely, you\[aq]ll want to use various options.
 
 928 For a list of what can be done, have a look at
 
 929 youtube_dl/YoutubeDL.py (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L69).
 
 930 For a start, if you want to intercept youtube\-dl\[aq]s output, set a
 
 931 \f[C]logger\f[] object.
 
 933 Here\[aq]s a more complete example of a program that outputs only errors
 
 934 (and a short message after the download is finished), and
 
 935 downloads/converts the video to an mp3 file:
 
 939 from\ __future__\ import\ unicode_literals
 
 943 class\ MyLogger(object):
 
 944 \ \ \ \ def\ debug(self,\ msg):
 
 947 \ \ \ \ def\ warning(self,\ msg):
 
 950 \ \ \ \ def\ error(self,\ msg):
 
 951 \ \ \ \ \ \ \ \ print(msg)
 
 955 \ \ \ \ if\ d[\[aq]status\[aq]]\ ==\ \[aq]finished\[aq]:
 
 956 \ \ \ \ \ \ \ \ print(\[aq]Done\ downloading,\ now\ converting\ ...\[aq])
 
 960 \ \ \ \ \[aq]format\[aq]:\ \[aq]bestaudio/best\[aq],
 
 961 \ \ \ \ \[aq]postprocessors\[aq]:\ [{
 
 962 \ \ \ \ \ \ \ \ \[aq]key\[aq]:\ \[aq]FFmpegExtractAudio\[aq],
 
 963 \ \ \ \ \ \ \ \ \[aq]preferredcodec\[aq]:\ \[aq]mp3\[aq],
 
 964 \ \ \ \ \ \ \ \ \[aq]preferredquality\[aq]:\ \[aq]192\[aq],
 
 966 \ \ \ \ \[aq]logger\[aq]:\ MyLogger(),
 
 967 \ \ \ \ \[aq]progress_hooks\[aq]:\ [my_hook],
 
 969 with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
 
 970 \ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]])
 
 975 Bugs and suggestions should be reported at:
 
 976 <https://github.com/rg3/youtube-dl/issues> .
 
 977 Unless you were prompted so or there is another pertinent reason (e.g.
 
 978 GitHub fails to accept the bug report), please do not send bug reports
 
 980 For discussions, join us in the irc channel #youtube\-dl on freenode.
 
 982 \f[B]Please include the full output of youtube\-dl when run with
 
 985 The output (including the first lines) contain important debugging
 
 987 Issues without the full output are often not reproducible and therefore
 
 988 do not get solved in short order, if ever.
 
 990 Please re\-read your issue once again to avoid a couple of common
 
 991 mistakes (you can and should use this as a checklist):
 
 992 .SS Is the description of the issue itself sufficient?
 
 994 We often get issue reports that we cannot really decipher.
 
 995 While in most cases we eventually get the required information after
 
 996 asking back multiple times, this poses an unnecessary drain on our
 
 998 Many contributors, including myself, are also not native speakers, so we
 
 999 may misread some parts.
 
1001 So please elaborate on what feature you are requesting, or what bug you
 
1003 Make sure that it\[aq]s obvious
 
1007 How it could be fixed
 
1009 How your proposed solution would look like
 
1011 If your report is shorter than two lines, it is almost certainly missing
 
1012 some of these, which makes it hard for us to respond to it.
 
1013 We\[aq]re often too polite to close the issue outright, but the missing
 
1014 info makes misinterpretation likely.
 
1015 As a commiter myself, I often get frustrated by these issues, since the
 
1016 only possible way for me to move forward on them is to ask for
 
1017 clarification over and over.
 
1019 For bug reports, this means that your report should contain the
 
1020 \f[I]complete\f[] output of youtube\-dl when called with the \-v flag.
 
1021 The error message you get for (most) bugs even says so, but you would
 
1022 not believe how many of our bug reports do not contain this information.
 
1024 If your server has multiple IPs or you suspect censorship, adding
 
1025 \-\-call\-home may be a good idea to get more diagnostics.
 
1026 If the error is \f[C]ERROR:\ Unable\ to\ extract\ ...\f[] and you cannot
 
1027 reproduce it from multiple countries, add \f[C]\-\-dump\-pages\f[]
 
1028 (warning: this will yield a rather large output, redirect it to the file
 
1029 \f[C]log.txt\f[] by adding \f[C]>log.txt\ 2>&1\f[] to your
 
1030 command\-line) or upload the \f[C]\&.dump\f[] files you get when you add
 
1031 \f[C]\-\-write\-pages\f[] somewhere (https://gist.github.com/).
 
1033 \f[B]Site support requests must contain an example URL\f[].
 
1034 An example URL is a URL you might want to download, like
 
1035 http://www.youtube.com/watch?v=BaW_jenozKc .
 
1036 There should be an obvious video present.
 
1037 Except under very special circumstances, the main page of a video
 
1039 http://www.youtube.com/ ) is \f[I]not\f[] an example URL.
 
1040 .SS Are you using the latest version?
 
1042 Before reporting any issue, type youtube\-dl \-U.
 
1043 This should report that you\[aq]re up\-to\-date.
 
1044 About 20% of the reports we receive are already fixed, but people are
 
1045 using outdated versions.
 
1046 This goes for feature requests as well.
 
1047 .SS Is the issue already documented?
 
1049 Make sure that someone has not already opened the issue you\[aq]re
 
1051 Search at the top of the window or at
 
1052 https://github.com/rg3/youtube\-dl/search?type=Issues .
 
1053 If there is an issue, feel free to write something along the lines of
 
1054 "This affects me as well, with version 2015.01.01.
 
1055 Here is some more information on the issue: ...".
 
1056 While some issues may be old, a new post into them often spurs rapid
 
1058 .SS Why are existing options not enough?
 
1060 Before requesting a new feature, please have a quick peek at the list of
 
1062 options (https://github.com/rg3/youtube-dl/blob/master/README.md#synopsis).
 
1063 Many feature requests are for features that actually exist already!
 
1064 Please, absolutely do show off your work in the issue report and detail
 
1065 how the existing similar options do \f[I]not\f[] solve your problem.
 
1066 .SS Is there enough context in your bug report?
 
1068 People want to solve problems, and often think they do us a favor by
 
1069 breaking down their larger problems (e.g.
 
1070 wanting to skip already downloaded files) to a specific request (e.g.
 
1071 requesting us to look whether the file exists before downloading the
 
1073 However, what often happens is that they break down the problem into two
 
1074 steps: One simple, and one impossible (or extremely complicated one).
 
1076 We are then presented with a very complicated request when the original
 
1077 problem could be solved far easier, e.g.
 
1078 by recording the downloaded video IDs in a separate file.
 
1079 To avoid this, you must include the greater context where it is
 
1081 In particular, every feature request that does not consist of adding
 
1082 support for a new site should contain a use case scenario that explains
 
1083 in what situation the missing feature would be useful.
 
1084 .SS Does the issue involve one problem, and one problem only?
 
1086 Some of our users seem to think there is a limit of issues they can or
 
1088 There is no limit of issues they can or should open.
 
1089 While it may seem appealing to be able to dump all your issues into one
 
1090 ticket, that means that someone who solves one of your issues cannot
 
1091 mark the issue as closed.
 
1092 Typically, reporting a bunch of issues leads to the ticket lingering
 
1093 since nobody wants to attack that behemoth, until someone mercifully
 
1094 splits the issue into multiple ones.
 
1096 In particular, every site support request issue should only pertain to
 
1097 services at one site (generally under a common domain, but always using
 
1098 the same backend technology).
 
1099 Do not request support for vimeo user videos, Whitehouse podcasts, and
 
1100 Google Plus pages in the same issue.
 
1101 Also, make sure that you don\[aq]t post bug reports alongside feature
 
1103 As a rule of thumb, a feature request does not include outputs of
 
1104 youtube\-dl that are not immediately related to the feature at hand.
 
1105 Do not post reports of a network error alongside the request for a new
 
1107 .SS Is anyone going to need the feature?
 
1109 Only post features that you (or an incapacitated friend you can
 
1110 personally talk to) require.
 
1111 Do not post features because they seem like a good idea.
 
1112 If they are really useful, they will be requested by someone who
 
1114 .SS Is your question about youtube\-dl?
 
1116 It may sound strange, but some bug reports we receive are completely
 
1117 unrelated to youtube\-dl and relate to a different or even the
 
1118 reporter\[aq]s own application.
 
1119 Please make sure that you are actually using youtube\-dl.
 
1120 If you are using a UI for youtube\-dl, report the bug to the maintainer
 
1121 of the actual application providing the UI.
 
1122 On the other hand, if your UI for youtube\-dl fails in some way you
 
1123 believe is related to youtube\-dl, by all means, go ahead and report the
 
1127 youtube\-dl is released into the public domain by the copyright holders.
 
1129 This README file was originally written by Daniel Bolton
 
1130 (<https://github.com/dbbolton>) and is likewise released into the public