ScrapeTube包失效:无法提取YouTube频道视频ID返回空列表
解决ScrapeTube提取YouTube频道视频返回空列表的问题
可能原因及对应解决方案
1. ScrapeTube版本未适配YouTube最新结构
YouTube会频繁调整页面/数据接口结构,旧版本ScrapeTube可能无法解析新格式。执行以下命令更新到最新版:
pip install --upgrade scrapetube
2. 目标频道视频存在隐私限制或无公开内容
手动访问该频道(ID: UCPXnayBvF7ynbG_I3VOTgIg)确认:
- 是否有公开可见的视频内容
- 频道是否设置了仅订阅者可见、年龄限制等隐私规则
- 视频是否被批量删除或设为私有状态
3. 未指定视频类型导致漏抓
默认情况下ScrapeTube可能仅抓取常规长视频,需明确指定包含Shorts、直播回放等类型:
import scrapetube link = [] videos = scrapetube.get_channel( channel_id="UCPXnayBvF7ynbG_I3VOTgIg", include_shorts=True, include_live=True, include_upcoming=False ) for video in videos: if 'videoId' in video: # 避免键不存在的报错 link.append(f"https://www.youtube.com/watch?v={video['videoId']}") print(link)
4. 捕获隐藏异常
ScrapeTube的视频生成器可能在迭代时悄悄抛出未暴露的错误,添加异常捕获排查问题:
import scrapetube link = [] videos = scrapetube.get_channel("UCPXnayBvF7ynbG_I3VOTgIg") try: for video in videos: if 'videoId' in video: link.append(f"https://www.youtube.com/watch?v={video['videoId']}") except Exception as e: print(f"迭代过程出错: {str(e)}") print(link)
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

