解决 yt-dlp 的 HTTP 429 Too Many Requests 错误

解决 yt-dlp 的 HTTP 429 Too Many Requests 错误

理解 yt-dlp 的 HTTP 429 错误

HTTP 429 Too Many Requests 表示 YouTube 已经对你的 IP 做了限速。yt-dlp 用户最常在以下场景里遇到它:批处理脚本一口气拉一个 50+ 视频的播放列表;或者共享 IP(校园、办公室、VPN 出口)当小时的请求配额已经被用完。和 403 通常是签名/令牌问题不同,429 纯粹是请求频率问题。解决思路只有三种:等、换 IP,或者别在那么短的时间里发那么多请求。

为什么会发生

YouTube 给每个 IP 设了请求配额,用来防爬。yt-dlp 默认配置下,每个视频要发好几个请求(元数据、签名解密、视频流 URL、分片)。一播放列表下来这数量就翻得很快。如果你在同一个 IP 的浏览器里同时还开着别的 YouTube 标签页,到限额的时间会比你想的更早。

常见触发点:

  • 长播放列表上加 --yes-playlist 但没加 --sleep-interval
  • 并行跑多个 yt-dlp 进程
  • 共享的 NAT IP(公司、宿舍、移动运营商 CGNAT)
  • 多人共用的 VPN 出口节点也都在访问 YouTube
  • 失败的批次不 resume,直接整体重跑

yt-dlp 这边能尝试的办法

  • 等 1–6 小时,限速会自动重置。
  • --sleep-interval 5 --max-sleep-interval 20 把节奏放慢。
  • --retries 10 --retry-sleep linear=10:300:30,让重试带 backoff。
  • 换网络 —— 手机热点、换个 VPN 出口、回家里的网。
  • 用浏览器导出的 --cookies 鉴权;登录态请求的配额会稍微高一点。

这些都不会完全消除 429,只是降低撞上的概率。

改用 Any4K

Any4K 把解析放在服务端做。你的 IP 不会直接和 YouTube 通讯,所以「按用户限速」就不会以同样的方式生效。单个视频或少量视频的话,把链接粘到 any4k.com 就能下载,不用调任何 sleep-interval,也不用写重试逻辑。

在限速场景下使用 Any4K 的好处

  • 个人 IP 不出去:是 Any4K 的基础设施在跟 YouTube 通讯,你只是把成品文件拉回来。
  • 更高的画质上限:源支持时最高 8K。
  • 多平台:YouTube、TikTok、Twitter、Instagram、Facebook、Reddit、Shorts 共用同一套界面。
  • 零安装:任何浏览器都能开。

什么时候 yt-dlp 还是更合适

成百上千视频的批量归档、字幕抽取、元数据内嵌这种场景,yt-dlp 的能力是最深的。这种用法下就承认 429 是工作流的一部分,把 sleep-interval 调好即可。但如果只是单个视频或小批量,Any4K 端到端的速度更快。

结论

429 不是 bug,而是 YouTube 的流量整形。可以通过调参让 yt-dlp 跟它共存,也可以直接用 Any4K Video Downloader 这样的服务端工具,整个绕开「按 IP 限速」这件事。

Related Download Guides

版权所有 © 2010 - 2026 Any4K.com