实例

youtube-dl --proxy http://127.0.0.1:10809 "https://www.youtube.com/watch?v=6k8cpUkKK4c"
--merge-output-format mp4 --write-auto-sub --sub-lang zh-Hans --embed-sub -i 
youtube-dl --proxy http://127.0.0.1:10809  --write-auto-sub --embed-subs --embed-thumbnail XyaBFh_6b-8

通用选项

-h, --help                       打印帮助文档
    --version                        打印版本信息
    -U, --update                     更新到最新版(需要权限)
    -i, --ignore-errors              遇到下载错误时跳过
    --abort-on-error                 遇到下载错误时终止
    --dump-user-agent                显示当前使用的浏览器(User-agent)
    --list-extractors                列出所有的提取器(支持的网站)
    --extractor-descriptions         同上
    --force-generic-extractor        强制使用通用提取器下载
    --default-search PREFIX          使用此前缀补充不完整的URLs,例如:"ytsearch2 yt-dl" 从youtube搜索并下载两个关于yt-dl视频. 使用"auto"youtube-dl就会猜一个,一般效果等价于"ytsearch"("auto_warning"猜测时加入警告).我已知支持的PREFIX:ytsearch (youtube), ytsearchdate (youtube), yvsearch (yahoo videos), gvsearch (google videos) 
    --ignore-config                  不读取配置文件,当时用了全局配置文件/etc/youtube-dl.conf:不再读取 ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)
    --config-location PATH           使用指定路径下的配置文件
    --flat-playlist                  列出列表视频但不下载
    --mark-watched                   标记看过此视频 (YouTube only)
    --no-mark-watched                不标记看过此视频 (YouTube only)
    --no-color                       打印到屏幕上的代码不带色

网络选项

--proxy URL                      使用HTTP/HTTPS/SOCKS协议的代理.如:socks5://127.0.0.1:1080/.
   --socket-timeout SECONDS         放弃连接前等待时间
   --source-address IP              绑定的客户端IP地址
   -4, --force-ipv4                 所有连接通过IPv4
   -6, --force-ipv6                 所有连接通过IPv6

代理设置

--geo-verification-proxy URL     使用此代理地址测试一些有地理限制的地址
 --geo-bypass                     绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip
 --no-geo-bypass                  不 绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip
 --geo-bypass-country CODE        强制绕过地理限制通过提供准确的ISO 3166-2标准的国别代码
 --geo-bypass-ip-block IP_BLOCK   强制绕过地理限制通过提供精确的无类别域间路由IP段(2018.09.13更新)

视频选择

--playlist-start NUMBER          指定列表中开始下载的视频(默认为1)
 --playlist-end NUMBER            指定列表中结束的视频(默认为last)
 --playlist-items ITEM_SPEC       指定列表中要下载的视频项目编号.如:"--playlist-items 1,2,5,8""--playlist-items 1-3,7,10-13"
 --match-title REGEX              下载标题匹配的视频(正则表达式或区分大小写的字符串)
 --reject-title REGEX             跳过下载标题匹配的视频(正则表达式或区分大小写的字符串)
 --max-downloads NUMBER           下载NUMBER个视频后停止
 --min-filesize SIZE              不下载小于SIZE的视频(e.g. 50k or 44.6m)
 --max-filesize SIZE              不下载大于SIZE的视频(e.g. 50k or 44.6m)
 --date DATE                      仅下载上传日期在指定日期的视频
 --datebefore DATE                仅下载上传日期在指定日期或之前的视频 (i.e. inclusive)
 --dateafter DATE                 仅下载上传日期在指定日期或之后的视频 (i.e. inclusive)
 --min-views COUNT                不下载观影数小于指定值的视频
 --max-views COUNT                不下载观影数大于指定值的视频
 --match-filter FILTER            通用视频过滤器. 
 --no-playlist                    当视频链接到一个视频和一个播放列表时,仅下载视频
 --yes-playlist                   当视频链接到一个视频和一个播放列表时,下载视频和播放列表
 --age-limit YEARS                下载合适上传年限的视频
 --download-archive FILE          仅下载档案文件中未列出的影片,已下载的记录ID
 --include-ads                    同时下载广告(实验)

下载选项

-r, --limit-rate RATE            最大bps (e.g. 50K or 4.2M)
-R, --retries RETRIES            重试次数 (默认10), or "infinite".
--fragment-retries RETRIES       一个分段的最大重试次数(default is 10), or "infinite" (DASH, hlsnative and ISM)
--skip-unavailable-fragments     跳过不可用分段(DASH, hlsnative and ISM)
--abort-on-unavailable-fragment  放弃某个分段当不可获取时
--keep-fragments                 下载完成后,将下载的片段保存在磁盘上; 片段默认被删除
--buffer-size SIZE               设置缓冲区大小buffer (e.g. 1024 or 16K) (default is 1024)
--no-resize-buffer               不自动调整缓冲区大小.默认情况下自动调整
--playlist-reverse               以相反的顺序下载播放列表视频
--playlist-random                以随机的顺序下载播放列表视频
--xattr-set-filesize             Set file xattribute ytdl.filesize with expected file size (experimental)
--hls-prefer-native              使用本机默认HLS下载器而不是ffmpeg
--hls-prefer-ffmpeg              使用ffmpeg而不是本机HLS下载器
--hls-use-mpegts                 使用TS流容器来存放HLS视频,一些高级播放器允许在下载的同时播放视频
--external-downloader COMMAND    使用指定的第三方下载工具,当前支持:aria2c,avconv,axel,curl,ffmpeg,httpie,wget
--external-downloader-args ARGS  给第三方下载工具指定参数,如:--external-downloader aria2c --external-downloader-args -j8

文件系统选项

-a, --batch-file FILE            文件中包含需要下载的URL
--id                             仅使用文件名中的视频ID
-o, --output TEMPLATE            Output filename template, see the "OUTPUT TEMPLATE" for all the info
--autonumber-start NUMBER        指定%(autonumber)s的起始值(默认为1)
--restrict-filenames             将文件名限制为ASCII字符,并避免文件名中的“&”和空格
-w, --no-overwrites              不要覆盖文件
-c, --continue                   强制恢复部分下载的文件。 默认情况下,youtube-dl仅在可能时将恢复下载。
--no-continue                    不要恢复部分下载的文件(从头开始重新启动)
--no-part                        不使用.part文件 - 直接写入输出文件
--no-mtime                       不使用Last-modified header来设置文件最后修改时间
--write-description              将视频描述写入.description文件
--write-info-json                将视频元数据写入.info.json文件
--write-annotations              将视频注释写入.annotations.xml文件
--load-info-json FILE            包含视频信息的JSON文件(使用“--write-info-json”选项创建)
--cookies FILE                   文件从中读取Cookie(经测试,export cookies插件可以使用,但firebug导出的cookies导致错误,chrome下请用cookies.txt)注意:不同平台windows、Linux、OSX之间需要转换CE LF才能使用!
--cache-dir DIR                  文件存储位置。youtube-dl需要永久保存一些下载的信息。默认为$XDG_CACHE_HOME/youtube-dl或/.cache/youtube-dl。目前,只有YouTube播放器文件(对于具有模糊签名的视频)进行缓存,但可能会发生变化。
--no-cache-dir                   不用缓存
--rm-cache-dir                   删除所有缓存文件

缩略图

--write-thumbnail                把缩略图写入硬盘
--write-all-thumbnails           将所有缩略图写入磁盘
--list-thumbnails                列出所有可用的缩略图格式

详细/模拟选项

-q, --quiet                      激活退出模式
--no-warnings                    忽略警告
-s, --simulate                   不下载不存储任何文件到硬盘,模拟下载模式
--skip-download                  不下载视频
-g, --get-url                    模拟下载获取视频直连
-e, --get-title                  模拟下载获取标题
--get-id                         模拟下载获取id
--get-thumbnail                  模拟下载获取缩略图URL
--get-description                模拟下载获取视频描述
--get-duration                   模拟下载获取视频长度
--get-filename                   模拟下载获取输出视频文件名
--get-format                     模拟下载获取输出视频格式
-j, --dump-json                  模拟下载获取JSON information.
-J, --dump-single-json           模拟下载获取每条命令行参数的JSON information.如果是个播放列表,就获取整个播放列表的JSON
--print-json                     下载的同时获取视频信息的JSON
--newline                        进度条在新行输出
--no-progress                    不打印进度条
--console-title                  在控制台标题栏显示进度
-v, --verbose                    打印各种调试信息
--dump-pages                     打印下载下来的使用base64编码的页面来调试问题(非常冗长)
--write-pages                    将下载的中间页以文件的形式写入当前目录中以调试问题
--print-traffic                  显示发送和读取HTTP流量
-C, --call-home                  联系youtube-dl服务器进行调试
--no-call-home                   不联系youtube-dl服务器进行调试

解决方法:

--encoding ENCODING              强制指定编码(实验)
--no-check-certificate           禁止HTTPS证书验证
--prefer-insecure                使用未加密的连接来检索有关视频的信息(目前仅支持YouTube)
--user-agent UA                  指定user agent
--referer URL                    指定自定义的referer,仅限视频来源于同一网站
--add-header FIELD:VALUE         指定一个自定义值的HTTP头文件,使用分号分割,可以多次使用此选项
--bidi-workaround                围绕缺少双向文本支持的终端工作。需要在PATH中有bidiv或fribidi可执行文件
--sleep-interval SECONDS         在每次下载之前休眠的秒数,或者每次下载之前的随机睡眠的范围的下限(最小可能的睡眠秒数)与-max-sleep-interval一起使用。
--max-sleep-interval SECONDS     每次下载前随机睡眠范围的上限(最大可能睡眠秒数)。只能与--min-sleep-interval一起使用。

视频格式选项

-f, --format FORMAT              视频格式代码,查看"FORMAT SELECTION"获取所有信息
--all-formats                    获取所有视频格式
--prefer-free-formats            开源的视频格式优先,除非有特定的请求
-F, --list-formats               列出请求视频的所有可用格式
--youtube-skip-dash-manifest     不要下载关于YouTube视频的DASH清单和相关数据
--merge-output-format FORMAT     如果需要合并(例如bestvideo + bestaudio),则输出到给定的容器格式。mkv,mp4,ogg,webm,flv之一。如果不需要合并,则忽略

字幕选项

--write-sub                      下载字幕文件
--write-auto-sub                 下载自动生成的字幕文件 (YouTube only)
--all-subs                       下载所有可用的字幕
--list-subs                      列出所有字幕
--sub-format FORMAT              字幕格式,接受格式偏好,如:"srt" or "ass/srt/best"
--sub-lang LANGS                 要下载的字幕的语言(可选)用逗号分隔,请使用--list-subs表示可用的语言标签
  

验证选项

 -u, --username USERNAME          使用ID登录
  -p, --password PASSWORD          账户密码,如果此选项未使用,youtube-dl将交互式地询问。
  -2, --twofactor TWOFACTOR        双因素认证码
  -n, --netrc                      使用.netrc认证数据
  --video-password PASSWORD        视频密码(vimeo, smotri, youku)
Adobe Pass Options:
  --ap-mso MSO                     Adobe Pass多系统运营商(电视提供商)标识符,使用--ap-list-mso列出可用的MSO
  --ap-username USERNAME           MSO账号登录
  --ap-password PASSWORD           账户密码,如果此选项未使用,youtube-dl将交互式地询问。
  --ap-list-mso                    列出所有支持的MSO

后处理选项

-x, --extract-audio              将视频文件转换为纯音频文件(需要ffmpeg或avconv和ffprobe或avprobe)
--audio-format FORMAT            指定音频格式: "best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav"; "best" by default;-x存在时无效
--audio-quality QUALITY          指定ffmpeg/avconv音频质量,为VBR插入一个0(best)-9(worse)的值(默认5),或者指定比特率
--recode-video FORMAT            必要时将视频转码为其他格式(当前支持: mp4|flv|ogg|webm|mkv|avi)
--postprocessor-args ARGS        给后处理器提供这些参数
-k, --keep-video                 视频文件在后处理后保存在磁盘上; 该视频默认被删除
--no-post-overwrites             不要覆盖后处理文件; 默认情况下,后处理文件将被覆盖
--embed-subs                     在视频中嵌入字幕(仅适用于mp4,webm和mkv视频)
--embed-thumbnail                将缩略图嵌入音频作为封面艺术
--add-metadata                   将元数据写入视频文件
--metadata-from-title FORMAT     从视频标题中解析附加元数据,如歌曲标题/艺术家。格式语法和--output相似.也可以使用带有命名捕获组的正则表达式。解析的参数替换现有值。Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise". Example (regex): --metadata-from-title "(?P<artist>.+?) - (?P<title>.+)" 
--xattrs                         将元数据写入视频文件的xattrs(使用dublin core 和 xdg标准)
--fixup POLICY                   自动更正文件的已知故障。never(不做警告), warn(只发出警告), detect_or_warn (默认;如果可以的话修复文件,否则警告)
--prefer-avconv                  后处理时相较ffmpeg偏向于avconv
--prefer-ffmpeg                  后处理优先使用ffmpeg
--ffmpeg-location PATH           ffmpeg/avconv程序位置;PATH为二进制所在文件夹或者目录.
--exec CMD                       在下载后对文件执行命令,类似于find -exec语法.示例:--exec'adb push {} /sdcard/Music/ && rm {}'
--convert-subs FORMAT            转换字幕格式(当前支持: srt|ass|vtt)