如何使用Pytube查找YouTube播放列表中标题含指定关键词的视频
Pytube 筛选YouTube播放列表指定关键词视频实现方案
原代码失效核心原因
- 旧版本pytube的
Playlist.videos属性适配逻辑落后,无法匹配YouTube最新的页面DOM结构,导致解析播放列表失败 - 关键词匹配未做大小写兼容,会漏掉标题中含小写、混合大小写
Proje的视频 - 直接遍历
videos属性会重复发起请求,容易触发反爬限制或超时
前置操作
先升级pytube到最新版本,修复已知解析bug:pip install --upgrade pytube
正确实现代码
from pytube import Playlist # 初始化目标播放列表 p = Playlist('https://www.youtube.com/playlist?list=PLEcJSEQK_cD5KHgg9sXumeg659hAr2j4W') # 适配YouTube最新页面正则,确保能正常解析出所有视频链接 p._video_regex = r"\"url\":\"(/watch\?v=[\w-]*)" for video in p.videos: # 去除标题首尾空格,转小写后匹配,兼容所有大小写形式的关键词 if "proje" in video.title.strip().lower(): print(video.title)
可选优化
如果只需要筛选标题不需要下载视频,可以先直接抓取播放列表页面的标题元数据,不用加载每个视频的完整信息,运行速度会快3-5倍。
内容的提问来源于stack exchange,提问作者Poseidon Paris
相关产品推荐
相关产品推荐

