youtube-dl安装和⽤法
原⽂作者:⼈脑之战
⼀、准备⼯作
1、下载Python最新版本并安装,配置环境变量。
2、下载FFmpeg最新版本并解压,把解压之后的bin⽂件夹路径添加到PATH。
⼆、youtube-dl安装
打开cmd,输⼊
pip install youtube-dl #安装
pip uninstall youtube-dl #卸载
pip install --upgrade youtube-dl #升级
三、youtube-dl⽤法
Usage: youtube-dl [OPTIONS] URL []
Options:
通⽤选项:
-h, --help 打印帮助⽂档
--version 打印版本信息
-U, --update 更新到最新版(需要权限)
-i, --ignore-errors 遇到下载错误时跳过
--abort-on-error 遇到下载错误时终⽌
--dump-user-agent 显⽰当前使⽤的浏览器(User-agent)
--list-extractors 列出所有的提取器(⽀持的⽹站)
--extractor-descriptions 同上
-
-force-generic-extractor 强制使⽤通⽤提取器下载chrome直接下载
--default-search PREFIX 使⽤此前缀补充不完整的URLs,例如:"ytsearch2 yt-dl" 从youtube搜索并下载两个关于yt-dl视频. 使⽤"auto"youtube-dl就会猜⼀个,⼀般效果等价于"ytsearch"("auto_warning"猜测时加⼊警告).我已知⽀持的PREFI --ignore-config 不读取配置⽂件,当时⽤了全局配置⽂件/f:不再读取 ~/.config/youtube-dl/config (%APPDATA%/ 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 通⽤视频过滤器. 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 >=, --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 将视频注释写⼊.l⽂件
--load-info-json FILE 包含视频信息的JSON⽂件(使⽤“--write-info-json”选项创建)
--cookies FILE ⽂件从中读取Cookie(经测试,export cookies插件可以使⽤,但firebug导出的
cookies导致错误,chrome下请⽤)注意:不同平台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 使⽤rc认证数据
--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 --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)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论