使用pytube绕过YouTube年龄限制失败,bypass_age_gate返回None求助
问题分析与解决办法
首先明确:bypass_age_gate()方法本身没有返回值,所以打印它得到None是正常现象,这不是年龄限制没绕过的原因。你的问题主要出在调用时机和可能的版本/权限问题上,具体解决办法如下:
调整调用顺序:你现在先获取了
title,此时pytube已经请求过视频页面并缓存了年龄限制状态,后续调用bypass_age_gate()就不会生效了。应该先检查年龄限制并调用绕过方法,再去获取标题等属性:from pytube import YouTube youtubeObject = YouTube(link, on_progress_callback=self.Download_Progress) if youtubeObject.age_restricted: youtubeObject.bypass_age_gate() # 现在再获取视频标题 title = youtubeObject.title传入登录Cookie(针对严格限制的视频):部分年龄限制视频需要验证登录状态才能绕过,pytube默认的匿名绕过可能失效。你可以传入已登录YouTube的Cookie文件(比如从浏览器导出的Netscape格式Cookie):
from pytube import YouTube # 替换为你的Cookie文件实际路径 youtubeObject = YouTube(link, on_progress_callback=self.Download_Progress, cookie_file="cookies.txt") if youtubeObject.age_restricted: youtubeObject.bypass_age_gate() title = youtubeObject.title升级pytube版本:旧版本的pytube可能存在
bypass_age_gate的功能bug,执行以下命令升级到最新版:pip install --upgrade pytube
内容的提问来源于stack exchange,提问作者GoodGameCrafter
相关产品推荐
相关产品推荐

