我正在尝试使用 pytube 来获取播放列表中每个视频的详细信息。 API 文档展示了如何从播放列表下载视频,但不展示如何从中获取信息。
由于每个视频都是一个 YouTube 对象,并且文档说你可以做类似
yt_video.title
的事情,我想我可以这样做:
from pytube import Playlist
playlist = Playlist('https://www.youtube.com/playlist?list=PLS1QulWo1RIaJECMeUT4LFwJ-ghgoSH6n')
for video in playlist.videos:
print(video.title)
但这对我不起作用。运行时出现此错误:
Traceback (most recent call last):
File "C:\Users\****\AppData\Local\Programs\Python\Python39\lib\site-packages\pytube\__main__.py", line 341, in title
self._title = self.vid_info['videoDetails']['title']
KeyError: 'videoDetails'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\****\Desktop\dev\api\yt.py", line 15, in <module>
print(video.title)
File "C:\Users\****\AppData\Local\Programs\Python\Python39\lib\site-packages\pytube\__main__.py", line 346, in title
raise exceptions.PytubeError(
pytube.exceptions.PytubeError: Exception while accessing title of https://youtube.com/watch?v=41qgdwd3zAg. Please file a bug report at https://github.com/pytube/pytube
我想知道我做错了什么,或者获取有关播放列表视频的详细信息的正确方法是什么。
PyTube 不再是最佳选择。 你可以在 gitub 上查看这篇文章。
但是您可以使用 PyTubeFix 代替 PyTube。用法相同,但问题较少且维护良好。 我用了很多次,没有任何问题。
安装方式
pip install pytubefix
并更改输入:
# from pytube import Playlist
from pytubefix import Playlist
# OR
# import pytube
import pytubefix as pytube