我使用 pytube 下载并剪辑一些 YouTube 视频,但有些视频未下载并要求年龄验证。我该如何解决这个问题?谢谢你的建议
来自文档:
对于高级用例,您可以在创建 YouTube 对象时提供一些附加参数:
>>> yt = YouTube( 'http://youtube.com/watch?v=2lAe1cqCOXo', on_progress_callback=progress_func, on_complete_callback=complete_func, proxies=my_proxies, use_oauth=False, allow_oauth_cache=True )
use_oauth 和allow_oauth_cache 标志允许您授权 pytube 使用您的帐户与 YouTube 进行交互,并且可用于绕过年龄限制或访问私人视频和播放列表。如果allow_oauth_cache 设置为 True,则只会提示您执行一次,之后 pytube 将缓存代表您执行操作所需的令牌。否则,系统将再次提示您执行需要进行身份验证的每个操作。
所以,换句话说,这样的事情应该有效:
yt = YouTube(
'https://www.youtube.com/watch?v=B3eAMGXFw1o',
use_oauth=True,
allow_oauth_cache=True
)
# then download the video in whichever way you choose fit
对于 pytube 15.0.0,即使使用 use_oauth 选项,我在流内容中也遇到了 AgeRestrictedError 。
我解决了仅在innertube.py第223行将ANDROID_MUSIC更改为“客户端”的问题:
def __init__(self, client='ANDROID_MUSIC', use_oauth=False, allowed_cache=True):
def __init__(self, client='ANDROID', use_oauth=False, allowed_cache=True):