最近这段时间,yt-dlp 相关的社区里弥漫着同一种焦虑:用了很久的下载流程,突然就废了。
B站一个讲 yt-dlp 下载失败排障的视频下面,一百多条评论里全是类似的声音:“这两天油管反下载机制更新了,YT-DLP 和 IDM 都下载不了,报错 YOU ARE NOT A ROBOT,刷新 IP、更换节点都解决不了”“所有网站的视频都可以,就油管的不行”“这是被油管判断成机器人封了,怎么处理”。哔哩哔哩连 IDM 这种商业软件都一起阵亡,说明问题不在某个工具,而在对面那堵墙又加高了。
如果你也正好卡在这,先别急着换工具、更别急着充钱买什么"下载神器"。这篇文章替你把最近几个月散落在知乎、B站、小红书各处的排障经验归拢了一遍,把 YouTube 反下载的几道关卡拆开讲清楚,再给你一张"看报错对号入座"的排查清单。看完至少能判断:你是真没救了,还是只差一条命令。
先搞清楚一件事:不是 yt-dlp 死了,是军备竞赛到你了
yt-dlp 是目前 GitHub 上 16.3 万 Star 级别的开源下载器,youtube-dl 停更之后事实上的接班人,支持的站点以千计。知乎它的运作模式决定了它永远处在攻防第一线:YouTube 每改一次混淆、每加一道验证,全世界的 yt-dlp 用户就会集体报错,然后维护者在几天甚至几小时内发新版修复。

所以"突然不能下"在这个圈子里不是事故,是常态。B站排障视频的评论区里,老用户催新人贴完整报错截图的吐槽随处可见——这侧面说明求助量有多大、问题有多高频。你要做的不是怀疑人生,而是搞清楚自己卡在了哪一道关卡。
YouTube 的四道关卡,你卡在哪一道
把最近社区里流传的解法归纳起来,YouTube 拦下载器大致靠四套机制,每一套对应不同的报错和不同的解法:
第一关:JS 签名混淆。 视频的播放地址是加密的,解密逻辑藏在一段频繁变动的 JavaScript 里。yt-dlp 需要一个 JS 运行时来跑这段解密,新版本已经带了自家的 yt-dlp-ejs 组件,也有人配 Deno 或 Node。哔哩哔哩如果你很久没更新,或者系统环境缺了 JS 运行时,就会在解析这一步直接失败。这也是为什么很多排障教程第一步永远是"先升级到最新版"——不是敷衍,是因为签名解法真的几乎天天在变。
第二关:TLS 指纹识别。 下载器发出的网络请求,"握手姿势"和真实浏览器不一样,服务端一眼就能认出你是脚本。对应的解法是让 yt-dlp 伪装成浏览器的指纹:安装时带上 curl-cffi 组件,下载时加 --impersonate 参数,比如伪装成 Chrome-116 或 Chrome-119。知乎上 8 月 10 日刚有人写了一篇这个参数报错的快速排障,核心就是重装 yt-dlp[default,curl-cffi] 这个带指纹伪装组件的版本。知乎
第三关:PO Token(来源证明)。 YouTube 会要求部分请求附带一个"你来自正常网页播放环境"的证明令牌,拿不出就拒发视频流,典型表现也是 403。社区目前的解法是装第三方插件(比如 B站有 UP 主专门讲过的 bgutil-ytdlp-pot-provider),配合浏览器 cookies 使用。哔哩哔哩这条路的配置门槛最高,但也是被验证过确实有效的路线之一。
第四关:账号与 IP 信誉。 前面三关都过了,如果你的 IP 段被标记、或者下载行为太"机器"(比如短时间批量拉几百个视频),YouTube 会直接要求登录验证,报错原文通常是"Sign in to confirm you’re not a bot"。解法是把真实浏览器的登录态交给 yt-dlp,用 --cookies-from-browser 参数指定你常用的浏览器;也有人在讨论切换播放器客户端参数来绕,但哪个客户端当前有效是随时间变的,以你手头版本的报错提示为准。哔哩哔哩
这四道关卡经常是叠加的:同一次失败可能是"版本太旧 + 指纹裸露"双重原因。所以排查要按顺序来,别东试一条西试一条。
对号入座:看你的报错走流程
情况一:报 HTTP 403。
这是目前最高频的报错。按这个顺序处理:第一步,升级 yt-dlp 到最新版(pip 用户一行 -U 就够,可执行文件用户去 GitHub Releases 覆盖下载);第二步还不行,装 curl-cffi 组件并加 --impersonate 参数;第三步还不行,上 PO Token 插件;第四步,带浏览器 cookies 重试。每一层解决的是不同的关卡,跳着试容易误判。

情况二:提示"Sign in to confirm you’re not a bot"之类的登录验证。
说明你的请求被判定为可疑流量。优先用 --cookies-from-browser 带上你真实登录的浏览器 cookies;如果用的是代理或机房 IP,换回家宽网络再试,这类 IP 段被重点关照是常态。
情况三:能下载,但只有 720P,或者视频没声音。
这个其实不是反下载,是机制问题:YouTube 对 1080P 及以上画质采用音视频分流存储,只下默认流的话,要么缺音轨要么画质被砍。知乎解法是装好 ffmpeg,让 yt-dlp 合并最佳音视频流,格式参数用 -f “bv*+ba/b” 这类写法,输出容器选 mp4 或 mkv。知乎上最近有个两万播放的相关提问,病根都在这里。

情况四:下载速度极慢、频繁中断。
多半是限速或网络问题,和反下载机制关系不大。检查是否走了代理、适当调整并发分片参数,或者换个时段再试。
情况五:以上都无效。
大概率是 YouTube 刚改了规则、yt-dlp 还没发修复版。这时候正确的姿势不是继续乱试,而是去 yt-dlp 的 GitHub Issues 里搜你的报错关键词——这种时候通常已经有人报过、维护者已经在修。等新版发布,一般以小时到天计。
求助和报障的正确姿势
最后说个社区里反复被吐槽的事:提问时别只发一句"下载不了了"。那个排障视频的评论区里,老用户直接开怼:“请问问题的B友们看一眼视频的第一分钟吧,学一下完整截图,讲了几百遍了”。哔哩哔哩这条吐槽拿了五个赞同,原因就是太多人连报错截图都不会给。正确姿势是带上 --verbose 参数跑一次,把完整日志(注意抹掉你的 cookies 和个人信息)贴出来,别人才帮得上你。
另外两个提醒:一是批量下载整个频道这种操作有账号风险,带着登录 cookies 大批量拉视频,账号是可能被风控的,评论区已经有人因此吃过亏;二是工具归工具,下载内容请限于自己有权保存或允许离线的内容。
顺便说一句,如果你用的是套壳 GUI(YTDLnis、MeTube、Parabolic 这类),它们的内核基本都是 yt-dlp,遇到同样的报错时,升级壳里内置的 yt-dlp 版本、或者把壳的配置项(尤其是 cookies 和自定义参数)对应设置好,解法是完全相通的。
你现在卡在哪一道关卡?欢迎评论区贴报错(记得打码),互相抄作业。