我是转播man,还运营着好几个vtuber的账号,因此我需要长期稳定的一个youtube视频下载工具。在网上找过很多软件,但是大多数软件都是需要付费的,后来找到了IDM,确实是方便了不少,但是随着我的需求越来越多,IDM已经无法满足我了。
首先,IDM的下载方式是点击一个悬浮的按钮,要想让这个按钮显示,就需要安装一个IDM的浏览器拓展插件。这个倒没什么,但是有的时候这个悬浮的按钮,不显示。好像这个软件压根就没存在过我的电脑上一样。而且,我必须点开我要下载的视频才能点击下载,如果我有几天因为其他的事情没能及时下载,就需要点开好多页面,去挨个点下载。如果手快了,点开的视频质量选项里就没有mp4格式的了,只有mkv格式,这很不利于我的保存(我还需要存档一些vtuber的直播)。
前面说了,我运营着好几个vtuber的账号,也就是说我要下载好几个vtuber的直播,把它们放到一起显然不是一个聪明的方法,后面想找的时候就会非常困难。所以每个vtuber的录像我都是分开存放的,下载的时候自然也就要选择不同的位置,又增加了工作量。vtuber的录播多了,有时候就很难找到自己想要的那个录播,后来我便开始在文件名的前面加上直播的日期,但是IDM没法帮我加,还得我自己一个一个数字按。一个大的录播可能会有好几个G的大小,而且这些流量全部都要走梯子,万一梯子的速度不太行或者寄了,IDM就有一定概率会下不动了,这个时候就得重新下载,把上面的步骤再做一遍。
说了这么多,我对IDM真的是不想再用了,于是在某次电脑重装后就没再装回来。
吐槽完IDM,但是我还是得有一个下载工具啊,很快我又相中了youtube-dl。可以通过参数来实现各种方便的下载功能,除了是命令行界面外几乎没有缺点,我也用了一段时间。
但是很快我又发现了一个问题,下载的速度很慢,貌似是被限速了,无论我怎么切换梯子的节点,下载速度都徘徊在300kb/s左右,而我用梯子的测速工具测速,速度是比这个速度要快的,而且我同时开多个下载,都是这样的速度。(IDM也有这个问题,这也是我抛弃它的原因之一)
当我准备给youtube-dl提交issues的时候,我在其他人的issus里发现了yt-dlp。它的功能跟youtube-dl相差不多,而且还一直保持着更新(当时youtube-dl已经有段时间没有更新了,现在虽然也有在更新,但是release的最新版还是在去年),关键是下载没有限速!
一直用到现在,我都可以说yt-dlp是根据我的情况来看,最适合我的youtube视频下载工具了。
那么这篇文章,我就来根据我的需求来介绍这款工具。
yt-dlp 是基于现在不活动的youtube-dlc的youtube-dl分支。该项目的主要重点是添加新功能和补丁,同时与原始项目保持同步
yt-dlp GitHub地址:https://github.com/yt-dlp/yt-dlp
因个人原因,这篇文章并没有完成,请见谅。
如果你觉得本教程有些复杂,你可以试试我的一键包,只需要很简单的配置就可以马上使用,目前我还在制作中,敬请期待!
下载
进入https://github.com/yt-dlp/yt-dlp/releases,然后向下滚动。
Windows
找到yt-dlp.exe(如果找不到,就点Assets展开),点击下载就行了。或者直接点这里下载最新版本
Linux
找到yt-dlp.tar.gz(如果找不到,就点Assets展开),下载就行了。但是我不是很推荐,可以看下面的安装部分
安装
Windows
我的建议是把yt-dlp.exe放在C:\Users\你的用户名
这里,就可以直接调用了,不过我还是建议添加到全局变量里。
Linux
官方的安装方法,个人比较推荐:
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
sudo aria2c https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp --dir /usr/local/bin -o yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
如果是root用户,前面的sudo可以不要。
使用PIP,这部分我不熟,直接原文了
You can install the PyPI package with:
python3 -m pip install -U yt-dlp
You can install without any of the optional dependencies using:
python3 -m pip install --no-deps -U yt-dlp
If you want to be on the cutting edge, you can also install the master branch with:
python3 -m pip install --force-reinstall https://github.com/yt-dlp/yt-dlp/archive/master.tar.gz
Note that on some systems, you may need to use py
or python
instead of python3
使用Homebrew,不熟,原文
macOS or Linux users that are using Homebrew can also install it by:
brew install yt-dlp/taps/yt-dlp
我更喜欢最前面的安装方法,简单,而且以后更新方便。
安装好后,最简单的测试方法就是打一个yt-dlp。如果正常输出,那么就可以正常使用了!
ffmpeg
单独拿出来讲是因为它太好用了,不装是真不行的。
Windows安装
这家伙下载有点麻烦,请允许我暂时跳过这一部分,之后我会补上这里的,果面!(下面就是假设你已经安装好了)
aria2
也是非常好用的程序,有了这玩意就能跑满速下载了!
好像是网络有点问题,页面打不开,后面补上吧
选项
大的来了,我把官方的介绍搬过来,慢慢翻译:
yt-dlp [OPTIONS] [--] URL [URL...]
善用Ctrl+F
常规选项:
-h, --help 打印帮助文本并退出
--version 打印程序版本并退出
-U, --update 将这个程序更新到最新版本。确保您有足够的权限(如果需要,可以使用sudo运行)
-i, --ignore-errors 忽略下载和后处理错误。即使后处理失败,downlocal也被认为是成功的
--no-abort-on-error 继续下一个关于下载错误的视频;例如跳过播放列表中不可用的视频(默认)
--abort-on-error 如果发生错误,终止进一步的视频下载(别名:——no-ignore-errors)
--dump-user-agent 显示当前用户代理并退出
--list-extractors 列出所有支持的提取器并退出
--extractor-descriptions 所有支持的提取器和退出的输出描述
--force-generic-extractor 使用通用提取器强制提取
--default-search PREFIX 对不符合条件的url使用此前缀。
例如“gvsearch2:”为搜索词“大苹果”从谷歌视频下载两个视频。
使用值"auto"让yt-dlp进行猜测("auto_warning"在猜测时发出警告)。
"error"只是抛出一个错误。默认值“fixup_error”修复损坏的url,
但如果无法进行搜索,则会发出错误
--ignore-config, --no-config 禁用加载除——config-location提供的配置文件外的任何配置文件。
当在配置中给出时文件,不再加载进一步的配置文件。
此外,(为了向后兼容)如果在系统配置文件中找到这个选项,
则用户配置不会被加载
--config-location PATH 主配置文件的位置;到配置或其包含目录的路径
--flat-playlist 不提取播放列表中的视频,只列出它们
--no-flat-playlist 提取一个playzist的视频
--mark-watched 标记视频观看(甚至-模拟)。目前仅支持YouTube
--no-mark-watched 不标记观看的视频(默认)
--no-colors 不发出彩色代码输出
--compat-options OPTS 可以帮助保持兼容性的选项使用youtube-dl或youtube-dlc
通过恢复一些配置对yt-dlp的改动。看到“差异默认行为”的详细信息
网络选项:
--proxy URL 使用指定的HTTP/HTTPS/SOCKS代理。
要启用SOCKS代理,请指定合适的代理
计划。例如
socks5: / / 127.0.0.1:1080 /。传入空的
String(——proxy "")用于直接连接
--socket-timeout SECONDS 在放弃之前等待的时间,以秒为单位
--source-address IP 绑定到的客户端IP地址
-4, --force-ipv4 通过IPv4进行所有连接
-6, --force-ipv6 通过IPv6进行所有连接
地理限制:
--geo-verification-proxy URL 使用此代理来验证的IP地址
一些geo-restricted网站。默认的
由——Proxy指定的代理(如果
选项不存在)用于
实际下载
--geo-bypass 通过作假绕过地理限制X-Forwarded-For HTTP头
--no-geo-bypass 不绕过地理限制通过伪造X-Forwarded-For HTTP报头
--geo-bypass-country CODE 武力绕过地理限制明确提供了两个字母的ISO 3166-2国家代码
--geo-bypass-ip-block IP_BLOCK 武力绕过地理限制在CIDR中明确提供的IP块符号
视频选择:
--playlist-start NUMBER 播放列表视频开始(默认为1)
--playlist-end NUMBER 播放列表视频结束(默认是最后)
--playlist-items ITEM_SPEC 播放列表视频项目下载。指定
播放列表中视频的索引
用逗号隔开,如:"——playlist-items
1 2 5 8英寸,如果你想下载视频
在播放列表中索引1,2,5,8。你可以
指定范围:”——playlist-items
1-3,7,10-13",它会下载视频
在指数12 3 7 10 11 12和13处
--max-downloads NUMBER 下载NUMBER文件后中止
--min-filesize SIZE 切勿下载任何小于尺寸(如50k或446m)的影片。
--max-filesize SIZE 切勿下载超过大小的影片(例如50k或446m)
--date DATE 只下载在此日期上传的视频。日期可以是“YYYYMMDD”或以下格式"
(now l today) [+-][0-9] (day lweek | month l year) (s)?"
--datebefore DATE 只下载在此日期或之前上传的视频。接受的日期格式与——date相同
--dateafter DATE 只下载在此日期或之后上传的视频。接受的日期格式与——date相同
--match-filter FILTER 通用的视频滤镜。任何领域(见
“输出模板”)可以与
数字或使用运算符的字符串
定义于“过滤格式”。你可以
还可以简单地指定要匹配的字段
Field is present and !字段"来检查是否
该字段不存在。此外,
Python风格的正则表达式匹配
可以使用“~=”和多个
过滤器可以用“&”进行检查。使用“\”
转义"&"或引号(如果需要)。例如:
——match-filter”!is_live & like_count > ?One hundred.
& description~='(?i)\bcats \& dogs\b'"
只匹配那些不是直播的视频,有
一个点赞数超过100个(或类似数)
字段不可用),并具有
包含短语“猫”的描述
&狗”(忽略案例)
--no-match-filter 不要使用通用的视频过滤器(默认)
--no-playlist 如果URL指的是视频和播放列表,则只下载视频
--yes-playlist 如果URL是指视频和播放列表,请下载播放列表
--age-limit YEARS 只下载适合特定年龄的视频
--download-archive FILE 只下载档案文件中没有列出的视频。记录所有下载视频的id
--break-on-existing 当遇到存档中的文件时,停止下载过程
--break-on-reject 当遇到已过滤掉的文件时,停止下载过程
--skip-playlist-after-errors N 允许的失败数,直到跳过播放列表的其余部分
--no-download-archive 不要使用存档文件(默认)
下载选项:
-N, --concurrent-fragments N 应该并发下载的dash/ hlnative视频片段数(默认为1)
-r, --limit-rate RATE 最大下载速率(字节/秒)(例如50K或4.2M)
--throttled-rate RATE 最小下载速率(以字节/秒为单位),低于此速率时将进行节流并重新提取视频数据(例如100K)
-R, --retries RETRIES 重试次数(默认为10),或“无限”
--fragment-retries RETRIES 一个片段的重试次数(默认为10),或“无限”(DASH, hLsnative和~ AAAISM)
--skip-unavailable-fragments 跳过DASH hlnative和ISM的不可用片段(默认)
(Alias: --no-abort-on-unavailable-fragment)
--abort-on-unavailable-fragment 如果片段不可用,则中止下载
(Alias: --no-skip-unavailable-fragments)
--keep-fragments 下载完成后,将下载的片段保存在磁盘上
--no-keep-fragments 下载完成后删除下载的片段(默认)
--buffer-size SIZE 下载缓冲区的大小(例如1024或16K)(默认是1024)
--resize-buffer 缓冲区大小从初始值——buffer-size(默认值)自动调整
--no-resize-buffer 不自动调整缓冲区大小
--http-chunk-size SIZE 基于块的HTTP下载块的大小(例如10485760或10M)(默认禁用)。
可能对绕过网络服务器施加的带宽节流有用(实验)
--playlist-reverse 按倒序下载播放列表视频
--no-playlist-reverse 按默认顺序下载播放列表视频(默认)
--playlist-random 按随机顺序下载播放列表视频
--xattr-set-filesize 设置文件xattribute ytdl。文件大小与预期的文件大小
--hls-use-mpegts 对HLS视频使用mpegts容器;允许一些播放器在下载时播放视频,
并减少下载中断时文件损坏的机会。这在默认情况下为实时流启用
--no-hls-use-mpegts 不要在HLS视频中使用mpegts容器。当不下载实时流时,这是默认值
--downloader [PROTO:]NAME 要加载的外部下载程序的名称或路径
使用(可选地)以协议为前缀
(http, ftp, m3u8, dash, rstp, rtmp, mms)到
用它来。目前支持本地,
Aria2c avconv axel curl ffmpeg httpie
wget(推荐:aria2c)。您可以使用
此选项多次设置不同
不同协议的下载程序。为
示例:——downloader aria2c——downloader
"dash,m3u8:native"将使用aria2c
Http /ftp下载,和本机
下载的dash/m3u8下载
(别名:——external-downloader)
--downloader-args NAME:ARGS 把这些论点交给外部
下载器。指定下载器名称和
参数由冒号":"分隔。为
Ffmpeg,参数可以传递给
不同的位置使用相同的语法
——postprocessor-args。你可以用这个
选择多次给予不同
不同下载程序的参数
(别名:——external-downloader-args)
文件系统选项:
-a, --batch-file FILE 包含要下载的url的文件('-' for
stdin),每行一个URL。行开始
'#', ';'或']'被认为是评论和忽视
--no-batch-file 不从批处理文件中读取url(默认)
-P, --paths [TYPES:]PATH 文件所在的路径
下载。指定文件类型和
以冒号“:”分隔的路径。所有的
支持与——output相同的类型。
此外,您还可以提供“家”
(默认)和"temp"路径。所有
中间文件首先被下载到
临时路径和最终文件是
下载后移动到主路径
完成为止。如果。该选项将被忽略
——output是一个绝对路径
-o, --output [TYPES:]TEMPLATE 输出文件名模板;详见“输出模板”
--output-na-placeholder TEXT 不可用元的占位符值 输出文件名模板中的字段 (默认:“NA”)
--restrict-filenames 将文件名限制为ASCII字符,避免文件名中出现"&"和空格
--no-restrict-filenames 允许使用Unicode字符,"&"和空格文件名(默认)
--windows-filenames 强制文件名与窗口兼容
--no-windows-filenames 使文件名窗口兼容只有当使用windows(默认)
--trim-filenames LENGTH 限制文件名长度(不包括扩展)到指定的号码字符
-w, --no-overwrites 不覆盖任何文件
--force-overwrites 覆盖所有视频和元数据文件。他的选择包括——不继续
--no-force-overwrites 不覆盖视频,但覆盖相关文件(默认)
-c, --continue 恢复部分下载的文件/片段(默认)
--no-continue 不要恢复部分下载的片段。如果文件没有分片,则开始下载整个文件
--part 使用.part文件而不是直接写入输出文件(默认)
--no-part 不要使用。part文件-直接写入输出文件
--mtime 使用Last-modified头来设置文件修改时间(默认)
--no-mtime 不使用Last-modified头来设置文件修改时间
--write-description 将视频描述写入。description文件
--no-write-description 不写视频描述(默认)
--write-info-json 将视频元数据写入.info.json文件(可能包含个人信息)
--no-write-info-json 不写视频元数据(默认)
--write-playlist-metafiles 编写播放列表元数据,除了
使用——write-info-json时的视频元数据,
——write-description等等。(默认)
--no-write-playlist-metafiles 当使用——write-info-json,——write-description等时,不要写入播放列表元数据。
--clean-infojson 删除一些私有字段,例如
infojson中的文件名。注意它
还会有私人恩怨吗
信息(默认)
--no-clean-infojson 将所有字段写入infojson
--write-comments 检索视频评论放置在
infojson。这些评论是牵强附会的
没有这个选项,如果提取是
以快速著称(别名:-get-comments)
--no-write-comments 不要检索视频评论,除非 撤离速度是众所周知的 (别名:——no-get-comments)
--load-info-json FILE 包含视频信息的JSON文件(使用"——write-info-json"选项创建)
--cookies FILE 文件读取cookie和转储cookie罐子
--no-cookies 不要从/文件默认读取/转储cookie)
--cookies-from-browser BROWSER[:PROFILE]
的用户配置文件加载cookie
给定的web浏览器。目前支持
浏览器有:勇敢,铬,铬,
Edge, firefox, opera, safari, vivaldi。你
可以指定用户配置文件名称或
使用"BROWSER:PROFILE_NAME"或
“浏览器:PROFILE_PATH”。如果没有配置文件
给定,最近访问的是
使用
--no-cookies-from-browser 不要从浏览器加载cookie(默认)
--cache-dir DIR youtube-dl所在的文件系统中的位置
可以存储一些下载的信息(如 作为客户端标识和签名)永久。
默认情况下$XDG_CACHE_HOME/yt-dlp或
~ / .cache / yt-dlp
--no-cache-dir 禁用文件系统缓存
--rm-cache-dir 删除所有文件系统缓存文件
缩略图选项:
--write-thumbnail 将缩略图图像写入磁盘
--no-write-thumbnail 不将缩略图图像写入磁盘(默认)
--write-all-thumbnails 将所有缩略图图像格式写入磁盘
--list-thumbnails 列出每个视频的可用缩略图。模拟除非使用-no- simulation
互联网快捷方式选项:
--write-link 写一个互联网快捷方式文件,取决于
在当前平台上(。url, .webloc或
desktop)。该URL可能被操作系统缓存
--write-url-link 编写一个。url的Windows互联网快捷方式。操作系统根据文件路径缓存URL
--write-webloc-link 编写一个。webloc macOS互联网快捷方式
--write-desktop-link 编写一个。desktop Linux internet快捷方式
详细程度和模拟选项:
-q, --quiet 启动安静模式。如果与——verbose一起使用,则将日志打印到stderr
--no-warnings 忽略警告,
-s, --simulate 不下载视频,不写任何东西到磁盘
--no-simulate 即使使用了打印/列表选项,也可以下载视频
--ignore-no-formats-error 忽略“无视频格式”错误。有用 提取元数据,即使是视频
实际上不是可以下载的吗 (实验)
--no-ignore-no-formats-error 当没有找到可下载的视频格式时抛出错误(默认)
--skip-download 不下载视频,但写入所有相关文件(别名:——no-download)
-O, --print TEMPLATE 安静的,但要为每个字段打印给定的字段 视频。模拟除非——no- simulation是
使用。一个字段名或相同的语法 可以使用输出模板
-j, --dump-json 安静的,但是为每个输出JSON信息
视频。模拟除非——no- simulation是
使用。参见“输出模板”
可用密钥描述
-J, --dump-single-json 安静,但是为每个输出JSON信息
Url或infojson已传递。模拟,除非
——no-simulate使用。如果URL指向
一个播放列表,整个播放列表信息
在一条线上倾倒
--force-write-archive 即使使用了-s或其他模拟选项,只要没有发生错误,就强制写入下载存档项
(Alias: --force-download-archive)
--newline 以新行输出进度条
--no-progress 不打印进度条
--progress 显示进度条,即使在安静模式
--console-title 在控制台标题栏显示进度
--progress-template [TYPES:]TEMPLATE
可选的进度输出模板
以“download:”(默认)作为前缀,
“download-title”(主机游戏名称),
“后处理:”或“postprocess-title:”。
视频的字段可以在
"info"键和进度属性是
可在“进度”键下访问。例如:
——console-title progress-template
“download-title: % s - (info.id) % (progress.eta)”
-v, --verbose 打印各种调试信息
--dump-pages 打印使用base64编码的下载页面以调试问题(非常冗长)
--write-pages 将下载的中间页面写入当前目录中的文件以调试问题
--print-traffic 显示发送和读取的HTTP流量
解决方法:
--encoding ENCODING 强制指定的编码(实验性)
--no-check-certificate 禁止HTTPS证书验证
--prefer-insecure 使用未加密的连接来检索有关视频的信息(目前仅支持YouTube)
--user-agent UA 指定自定义用户代理
--referer URL 指定一个自定义引用,如果视频访问被限制在一个域使用
--add-header FIELD:VALUE 指定一个自定义HTTP报头及其值,用冒号":"分隔。你可以多次使用这个方法
--bidi-workaround 解决缺乏双向文本支持的终端。在PATH中需要双div r fribidi可执行文件
--sleep-requests SECONDS 数据提取期间请求之间的休眠秒数
--sleep-interval SECONDS 入睡前的秒数
下载。这是最小的睡眠时间
当与——max-sleep-interval一起使用时
(别名:——min-sleep-interval)
--max-sleep-interval SECONDS 睡眠的最大秒数。只能与-min-sleep-interval一起使用
--sleep-subtitles SECONDS 每次字幕下载前休眠的秒数
视频格式选项:
-f, --format FORMAT 视频格式代码,详见“格式选择”
-S, --format-sort SORTORDER 根据给定的字段对格式进行排序,详见“格式排序”
--S-force, --format-sort-force 强制用户指定的排序顺序优先于所有字段,详情请参阅“排序格式”
--no-format-sort-force 有些字段优先于用户指定的排序顺序(默认),请参阅“排序格式”了解更多细节
--video-multistreams 允许多个视频流合并成一个单一的文件
--no-video-multistreams 每个输出文件只下载一个视频流(默认)
--audio-multistreams 允许多个音频流合并成一个单一的文件
--no-audio-multistreams 每个输出文件只下载一个音频流(默认)
--prefer-free-formats 更喜欢带有免费容器的视频格式 而非同等质量的免费产品。使用
与“-S ext”严格偏好免费 集装箱不论质量如何
--no-prefer-free-formats 不要给空闲容器任何特殊的优先级(默认)
--check-formats 检查所选的格式是否确实可以下载
--no-check-formats 不检查所选的格式实际上是可下载的
-F, --list-formats 列出每个视频的可用格式。模拟除非使用-no- simulation
--merge-output-format FORMAT 如果需要合并(例如,bestvideo+bestaudio),输出到给定的容器格式。mkv mp4 ogg
webm flv。如果不需要合并,则忽略
字幕选项:
--write-subs 编写字幕文件
--no-write-subs 不写字幕文件(默认)
--write-auto-subs 写自动生成的字幕文件(别名:——Write -automatic-subs)
--no-write-auto-subs 不写自动生成的字幕(默认)(别名:——no-write-automatic-subs)
--list-subs 列出每个视频可用的字幕。模拟除非使用-no- simulation
--sub-format FORMAT 字幕格式,接受格式优先,例如:“srt”或“ass/srt/best”
--sub-langs LANGS 语言字幕下载(可以是正则表达式)或用逗号分隔的“全部”。
(例如:——sub-langs en.*,ja 带有"-"的语言代码免除了它
从请求的语言。(如:——子 使用——list-subs 可用语言标记列表
身份验证选项:
-u, --username USERNAME 使用此帐户ID登录
-p, --password PASSWORD 账户密码。如果省略了这个选项,那么yt-dlp将会交互地询问
-2, --twofactor TWOFACTOR 双因素身份验证代码
-n, --netrc 使用.netrc身份验证数据
--netrc-location PATH .netrc认证数据的位置;路径或其包含的目录。默认为~ / . netrc
--video-password PASSWORD 视频密码(vimeo, youku)
--ap-mso MSO Adobe Pass多系统运营商(电视供应商)标识符,使用——ap-list-mso为可用的mso列表
--ap-username USERNAME 多系统操作员帐号登录
--ap-password PASSWORD 多系统操作员帐号密码。
如果省略了这个选项,那么yt-dlp将会交互地询问
--ap-list-mso 列出所有支持的多系统操作符
后处理选项:
-x, --extract-audio 将视频文件转换为音频文件(需要ffmpeg和ffprobe)
--audio-format FORMAT 指定音频格式以转换音频
当使用-x时。目前支持
格式有:best(默认)或
最好| aac | flac mp3 | | m4a格式|作品| vorbis | wav
--audio-quality QUALITY 指定ffmpeg音频质量,插入一个
值介于0(较好)和9(较差)之间
VBR或特定的比特率,如128K (默认5)
--remux-video FORMAT 将视频重新放入另一个容器,如果 必要的
(目前支持:mp4|mkv|flv | webm | mov avi mp3 | | | mka | m4a格式| ogg |作品)。
如果 目标容器不支持 视频/音频编解码器,重放将失败。你
可以指定多个规则;如。 “aac>m4a/mov>mp4/mkv”将重放aac到 M4a, mov到mp4,其他任何东西到mkv。
--recode-video FORMAT 重新编码成另一种格式,如果 重新编码是必要的。的语法和 支持的格式与——remux-video相同
--postprocessor-args NAME:ARGS 将这些参数给后处理器。
指定后处理器/可执行程序名称
参数由冒号":"分隔
将参数赋给指定的
后处理程序/可执行。支持页:
合并,ModifyChapters SplitChapters,
ExtractAudio、VideoRemuxer VideoConvertor,
元数据、EmbedSubtitle EmbedThumbnail,
SubtitlesConvertor ThumbnailsConvertor,
FixupStretched、FixupM4a FixupM3u8,
FixupTimestamp FixupDuration。的
支持的可执行文件有:AtomicParsley,
FFmpeg FFprobe。你也可以指定
“PP+EXE:ARGS”给出了论证
仅在使用时指定可执行文件
由指定的后处理程序处理。
此外,对于ffmpeg/ffprobe, "_i"/"_o"
可以附加到前缀可选
后面跟着一个数字来传递参数
在指定的输入/输出文件之前。例如:
——ppa“合并+ ffmpeg_i1: - v安静”。你可以
多次使用这个选项
不同的论点
后处理程序。(别名:——ppa)
-k, --keep-video 后期处理后将中间视频文件保存在磁盘上
--no-keep-video 后期处理后删除中间视频文件(默认)
--post-overwrites 覆盖后期处理的文件(默认)
--no-post-overwrites 不覆盖后期处理的文件
--embed-subs 视频中嵌入字幕(仅mp4, webm和mkv视频)
--no-embed-subs 不要嵌入字幕(默认)
--embed-thumbnail 嵌入缩略图在视频作为封面艺术
--no-embed-thumbnail 不嵌入缩略图(默认)
--embed-metadata 在视频文件中嵌入元数据。还增加了
章节文件除非-no-add-章
别名:——add-metadata
--no-embed-metadata 不添加元数据到文件(默认)(别名:——no-add-metadata)
--embed-chapters 添加章节标记到视频文件(别名:——Add -章)
--no-embed-chapters 不添加章节标记(默认)(别名:——no-add-章)
--parse-metadata FROM:TO 解析其他领域的元数据,如标题/艺术家;详情请参见“修改元数据”
--replace-in-metadata FIELDS REGEX REPLACE 使用给定的正则表达式替换元数据字段中的文本。这个选项可以多次使用
--xattrs 将元数据写入视频文件的xattrs(使用dublin core和xdg标准)
--fixup POLICY 自动纠正系统的已知故障
文件。一个永远(什么都不做),警告(只有)
发出警告),detect_or_warn
违约;如果可以,修复文件,警告
否则),强制(尝试修复即使文件
已经存在
--ffmpeg-location PATH ffmpeg二进制文件的位置;二进制文件或其包含目录的路径
--exec CMD 在文件上执行命令
下载和后处理。相同
语法作为输出模板可以使用
将任何字段作为参数传递给
命令。附加字段“filepath”
它包含了
下载的文件也可用。如果没有
字段被传递,%(filepath)q被追加
直到命令的最后。这个选项可以
多次使用
--no-exec 删除任何先前定义的——exec
--exec-before-download CMD 执行命令之前,实际下载。语法与——exec相同
但是“filepath”不可用。这选项可以多次使用
--no-exec-before-download 删除任何以前定义的- execute -before-download
--convert-subs FORMAT 将字幕转换为另一种格式(目前支持:srt|vtt|ass|lrc)(别名:——Convert -副标题)
--convert-thumbnails FORMAT 将缩略图转换为另一种格式(目前支持:jpg|png)
--split-chapters 将视频分割成多个文件基于
内部章节。“章:”前缀
可以与"——paths"和"——output"一起使用
设置分割的输出文件名
文件。详见“OUTPUT TEMPLATE”
--no-split-chapters 不要基于章节分割视频(默认)
--remove-chapters REGEX 删除标题匹配的章节
给定的正则表达式。时间范围
用“*”作为前缀也可以在适当的地方使用
的章节,以删除指定的范围。
如:remove-chapters“* 10:15-15:00”
——remove-chapters“介绍”。这个选项可以多次使用
--no-remove-chapters 不要从文件中删除任何章节(默认)
--force-keyframes-at-cuts 强制关键帧围绕章节之前
删除/分裂。需要一个
重新编码会很慢,但是
最终的视频可能有更少的伪影
在削减
--no-force-keyframes-at-cuts 当切割/分割章节时,不要强制关键帧(默认)插件的(区分大小写)名称
--use-postprocessor NAME[:ARGS] 启用后处理器,以及 (可选)传递给它的参数,
由冒号":"分隔。参数是一个
分号";"分隔的NAME=VALUE列表。
"when"参数决定 后处理程序被调用。它可以是
“pre_process”(提取)后, "before_dl"(视频下载前),
"post_process"(视频下载后; 或"after_move"(在移动文件后
最终到达目的地)。这个选项可以 可多次使用以添加不同 后处理程序
赞助商区块选项:
使用SponsorBlock API从下载的 YouTube 视频中创建章节条目或删除各种片段(赞助商、介绍等)
--sponsorblock-mark CATS SponsorBlock categories to create chapters
for, separated by commas. Available
categories are all, default(=all), sponsor,
intro, outro, selfpromo, preview, filler,
interaction, music_offtopic, poi_highlight.
You can prefix the category with a "-" to
exempt it. See [1] for description of the
categories. Eg: --sponsorblock-mark all,-preview
[1] https://wiki.sponsor.ajay.app/w/Segment_Categories
--sponsorblock-remove CATS SponsorBlock categories to be removed from
the video file, separated by commas. If a
category is present in both mark and
remove, remove takes precedence. The syntax
and available categories are the same as
for --sponsorblock-mark except that
"default" refers to "all,-filler" and
poi_highlight is not available
--sponsorblock-chapter-title TEMPLATE
The title template for SponsorBlock
chapters created by --sponsorblock-mark.
The same syntax as the output template is
used, but the only available fields are
start_time, end_time, category, categories,
name, category_names. Defaults to
"[SponsorBlock]: %(category_names)l"
--no-sponsorblock Disable both --sponsorblock-mark and
--sponsorblock-remove
--sponsorblock-api URL SponsorBlock API location, defaults to
https://sponsor.ajay.app
提取器选项:
--extractor-retries RETRIES 已知提取器错误的重试次数(默认为3),或“无限”
--allow-dynamic-mpd 进程动态DASH清单(默认)(别名:——no-ignore-dynamic-mpd)
--ignore-dynamic-mpd 不处理动态DASH清单(别名:—no-allow-dynamic-mpd)
--hls-split-discontinuity 将HLS播放列表分割成不同的格式,如广告中断
--no-hls-split-discontinuity 不要将HLS播放列表分割成不同的格式,如广告中断(默认)
--extractor-args KEY:ARGS 将这些参数传递给提取器。看到 详细信息请参见“EXTRACTOR ARGUMENTS”。
你可以多次使用这个选项 不同提取器的参数
看着东西非常多,实际能用上的不多,放心。
使用
方法都差不多,这里就不分Windows和Linux了。
首先打开命令提示符或PowerShell,这里就是我们使用yt-dlp的地方了。当然,也可以用批处理,方法都是相通的。
如果您对命令行语言不熟悉,我推荐用这个方法来打开,不然您可能会找不到下载好的视频在哪里:
在桌面的空白处,按住Shift右键,选择在ps中打开
下载视频
最简单的用法,yt-dlp后面加上要下载的视频的链接,完事,yt-dlp会自行帮你直接下载好。
Comments NOTHING