如何使用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来绕过验证:- 打开浏览器登录YouTube,按F12打开开发者工具,切换到「Application」标签页,找到YouTube的Cookie列表;
- 复制
__Secure-3PAPISID和__Secure-3PSID这两个Cookie的值; - 在代码里设置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




