You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyTube下载带‘建议观众自行斟酌’标签的YouTube视频时出错

解决YouTube年龄限制视频下载的Streaming Error问题

带“建议观众自行斟酌”标签的视频属于YouTube的年龄限制内容,这类视频要求访问者通过年龄验证才能获取流数据,而pytube默认的请求没有通过这层验证,所以会抛出Streaming Error。下面是几个可行的解决办法:

方法一:绕过年龄限制验证

如果你的pytube版本支持,直接调用bypass_age_gate()方法就能绕过年龄验证,不需要额外的cookie。修改代码中创建YouTube对象的部分:

def download_from_youtube(playlist, playlist_name, convert_to_mp3, is_playlist):
    if is_playlist == True:
        urls = obtain_urls(playlist)
    if is_playlist == False:
        urls = playlist

    for x in range(len(urls)):
        try:
            yt = YouTube(urls[x])
            # 新增:绕过年龄限制
            yt.bypass_age_gate()
            if convert_to_mp3 == True:
                download_and_convert_video(yt, playlist_name, x, urls)
            if convert_to_mp3 == False:
                download_video(yt, playlist_name)
        except Exception as e:
            print(f"第{x+1}个视频下载失败:{str(e)}")
    print(f"成功下载{len(urls)}个视频")

方法二:添加认证Cookie

如果bypass_age_gate无效,你可以用自己登录YouTube后的浏览器Cookie来验证身份:

  1. 在浏览器登录YouTube,打开开发者工具(F12),找到Application标签下的Cookie列表,复制LOGIN_INFO和SID这两个Cookie的值。
  2. 修改创建YouTube对象的代码,传入Cookie参数:
yt = YouTube(urls[x], cookies={
    "LOGIN_INFO": "你的LOGIN_INFO值",
    "SID": "你的SID值"
})

注意:Cookie值会过期,过期后需要重新从浏览器获取。

方法三:升级pytube到最新版本

旧版本的pytube可能存在年龄限制视频的处理bug,执行下面的命令升级:

pip install --upgrade pytube

另外,建议给下载逻辑加上异常捕获,避免单个视频下载失败导致整个程序终止,上面的代码示例已经加入了try-except块。

内容的提问来源于stack exchange,提问作者ape_man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:03:46