Python中youtube-dl下载时为什么会卡住没速度并自动关闭?
是在科学上网的环境下面使用的,但是经常用着用着就出现卡在某个速度上面,比如卡在 1.5M\s 上。然后就不动了,不知道大家有没有类似的情况。但是下载的是一个油管的播放列表,youtube-dl 卡主之后一段时间就自动退出。然后就没有然后了。有什么命令是可以让它卡主之后自动重启吗?还是说要自己写一段其他的程序来对付这种情况?
Python中youtube-dl下载时为什么会卡住没速度并自动关闭?
1 回复
youtube-dl卡住没速度自动关闭,通常是网络问题或youtube-dl本身过时导致的。
核心解决方案:
-
更新到yt-dlp:youtube-dl已基本停止维护,强烈建议换用它的增强版fork——yt-dlp。它速度更快,能绕过很多限制,维护活跃。
pip install -U yt-dlp之后用
yt-dlp命令替换youtube-dl即可,参数基本通用。 -
检查网络和代理:如果你在墙内,必须设置代理。yt-dlp支持
--proxy参数。yt-dlp --proxy "http://127.0.0.1:1080" "视频URL" -
使用备用方案:如果某个格式或协议卡住,可以尝试:
- 限制下载速率避免被限速:
--limit-rate 5M - 尝试不同的视频格式:
-f bestvideo+bestaudio/best - 使用
--verbose查看详细错误信息。
- 限制下载速率避免被限速:
直接上代码:这是最稳的用法,结合了代理和格式选择。
import yt_dlp
ydl_opts = {
'format': 'bestvideo[height<=1080]+bestaudio/best', # 选1080p以下格式,避免高码率卡顿
'outtmpl': '%(title)s.%(ext)s',
'proxy': 'http://127.0.0.1:1080', # 设置代理,必须
'ratelimit': 5000000, # 限速5MB/s
'retries': 10, # 多试几次
'ignoreerrors': 'only_download', # 跳过错误
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(['视频URL'])
一句话总结:换yt-dlp并挂代理是解决这类问题最直接有效的方法。

