Python中youtube-dl下载时为什么会卡住没速度并自动关闭?

是在科学上网的环境下面使用的,但是经常用着用着就出现卡在某个速度上面,比如卡在 1.5M\s 上。然后就不动了,不知道大家有没有类似的情况。但是下载的是一个油管的播放列表,youtube-dl 卡主之后一段时间就自动退出。然后就没有然后了。有什么命令是可以让它卡主之后自动重启吗?还是说要自己写一段其他的程序来对付这种情况?


Python中youtube-dl下载时为什么会卡住没速度并自动关闭?
1 回复

youtube-dl卡住没速度自动关闭,通常是网络问题或youtube-dl本身过时导致的。

核心解决方案:

  1. 更新到yt-dlp:youtube-dl已基本停止维护,强烈建议换用它的增强版fork——yt-dlp。它速度更快,能绕过很多限制,维护活跃。

    pip install -U yt-dlp
    

    之后用yt-dlp命令替换youtube-dl即可,参数基本通用。

  2. 检查网络和代理:如果你在墙内,必须设置代理。yt-dlp支持--proxy参数。

    yt-dlp --proxy "http://127.0.0.1:1080" "视频URL"
    
  3. 使用备用方案:如果某个格式或协议卡住,可以尝试:

    • 限制下载速率避免被限速:--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并挂代理是解决这类问题最直接有效的方法。

回到顶部