Pytube 在获取 Youtube 视频详细信息时抛出错误

问题描述 投票:0回答:3

当我运行下载 YouTube 视频或获取视频详细信息的代码时。我收到以下错误

    C:\Users\ankit\PycharmProjects\tube\venv\Scripts\python.exe C:/Users/ankit/PycharmProjects/tube/main.py
Traceback (most recent call last):
  File "C:\Users\ankit\PycharmProjects\tube\main.py", line 2, in <module>
    yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\__main__.py", line 91, in __init__
    self.prefetch()
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\__main__.py", line 183, in prefetch
    self.js_url = extract.js_url(self.watch_html)
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\extract.py", line 143, in js_url
    base_js = get_ytplayer_config(html)["assets"]["js"]
KeyError: 'assets'

Process finished with exit code 1

此代码已使用

    from pytube import YouTube

yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')

print(yt.title)

print(yt.streams)
python pytube
3个回答
3
投票

此错误现已在 pytube 存储库中修复。只需从存储库重新安装即可。

pip uninstall pytube
pip install git+https://github.com/nficano/pytube

0
投票

我认为当官方文档中的前两个步骤失败时,您可能有一个损坏的库。实际上,我无法重现您的错误,并且从库中的各个其他模块收到导入错误。

导入错误:无法从“pytube.compat”导入名称“quote”

当我解决这个问题时,我得到:

导入错误:无法从“pytube.compat”导入名称“urlencode”

就在那时我放弃了。

我似乎记得以前在处理 YouTube 内容时遇到过相同或相似的问题。您可以跟踪错误并尝试修复导入,或者就到此为止并尝试“youtube-dl”库:

pip 安装 youtube_dl


0
投票

`@属性 def vid_info(自我): """解析原始视频信息并返回解析结果。

    :rtype: Dict[Any, Any]
    """
    if self._vid_info:
        return self._vid_info

    innertube = InnerTube(client='WEB', use_oauth=self.use_oauth, allow_cache=self.allow_oauth_cache)

    innertube_response = innertube.player(self.video_id)
    self._vid_info = innertube_response
    return self._vid_info`

这解决了问题

在pytube main.py函数中修改此函数。

© www.soinside.com 2019 - 2024. All rights reserved.