from yt_dlp import YoutubeDL
options = {
'extract_flat': True
}
def get_channel_videos(channel_url: str) -> list[dict[str, str]]:
with YoutubeDL(options) as ydl:
channel_data = ydl.extract_info(channel_url, download=False)
return [
{'title': video.get('title'), 'url': video.get('url')}
for video in channel_data['entries']
]
for video in get_channel_videos('https://www.youtube.com/@MrBeast/videos'):
print(video['title'], video['url'])
图书馆将非常适合您的任务
yt-dlp安装是这样的:
安装后,可以直接从控制台界面使用该库。
格式:
例如:
执行此命令后,运行的进程将返回有关频道上每个视频的简要信息。有名称和链接。
当然,我不会列出所有参数,参数有很多,每个参数的描述可以在GitHub 存储库的README.md中找到。
当然,您可以将它用作 Python 库:
同样,该方法的输出格式
extract_info非常庞大且复杂——在 Python 中json也是如此。dict第一次,为了进行更详细的分析,我建议将方法的结果上传到某个文件,并手动研究您可以从视频中了解到哪些有趣的事情。
特别是对于您的任务,添加一个参数
playlistend将接收到的视频数量限制为 10 个是有意义的,以免上传整个频道:然后与旧列表进行比较,您可以看到哪些视频被添加到频道中
在常规 bs4 的帮助下,这会更容易,因为你理解它(据我所知),而且,也许在时间方面更优化,因为你知道如何使用它。
如果我是你,我就会这么做。