You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用pytube下载需年龄验证的YouTube视频?

如何使用pytube下载需年龄验证的YouTube视频?

嘿,这个问题我之前帮不少人解决过,给你几个亲测有效的方案:

  • 使用OAuth认证(最省心的方法)
    pytube本身支持通过你的YouTube账号OAuth认证来绕过年龄限制,第一次配置后后续都不用再操作。你只需要在实例化YouTube对象时加上两个参数:

    from pytube import YouTube
    
    # 替换成你要下载的视频URL
    yt = YouTube(
        "https://www.youtube.com/watch?v=xxxxxx",
        use_oauth=True,
        allow_oauth_cache=True
    )
    # 选择最高分辨率的流并下载
    stream = yt.streams.get_highest_resolution()
    stream.download()
    

    第一次运行代码时,会自动弹出浏览器让你登录自己的YouTube账号,登录后认证信息会被缓存下来,之后再运行就不用重复登录了,能直接下载需要年龄验证的视频。

  • 手动传入登录后的Cookie
    如果你不想用OAuth,也可以从登录过YouTube的浏览器里提取关键Cookie,传给pytube来绕过验证:

    1. 打开浏览器登录YouTube,按F12打开开发者工具,切换到「Application」标签页,找到YouTube的Cookie列表;
    2. 复制__Secure-3PAPISID__Secure-3PSID这两个Cookie的值;
    3. 在代码里设置Cookie后再下载:
      from pytube import YouTube
      from pytube.request import set_cookies
      
      # 替换成你复制的Cookie值
      youtube_cookies = {
          "__Secure-3PAPISID": "你的__Secure-3PAPISID值",
          "__Secure-3PSID": "你的__Secure-3PSID值"
      }
      
      # 全局设置Cookie
      set_cookies(youtube_cookies)
      
      yt = YouTube("https://www.youtube.com/watch?v=xxxxxx")
      stream = yt.streams.get_highest_resolution()
      stream.download()
      

    注意:Cookie可能会过期,过期后重复上述步骤重新提取即可。

  • 确保pytube是最新版本
    有时候旧版本的pytube对YouTube的API接口适配有问题,导致无法绕过年龄验证。先执行下面的命令更新到最新版:

    pip install --upgrade pytube
    

另外要提醒一句:下载有版权的视频前,请确保符合相关法律法规和YouTube的使用条款哦。

备注:内容来源于stack exchange,提问作者byhite

火山引擎 最新活动