You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用YouTube Data API V3时如何忽略点赞数未公开的视频

YouTube Data API 缺失likeCount报错解决方案

调用YouTube Data API拉取视频数据时,未公开点赞/点踩数据的视频,返回的statistics结构体中不会包含对应的likeCount、dislikeCount字段,直接强制取值就会触发KeyError。另外当前YouTube已经公开移除了全局公开点踩数的接口,绝大多数视频都无法返回dislikeCount字段。你可以通过以下两种方式处理,实现遍历不中断:

  • 方案1:跳过缺少目标字段的视频
    先判断需要的字段是否全部存在,仅当字段齐全时才将数据加入结果列表,同时优化原代码的遍历写法、修正原代码中dislikeCount行误用索引i的笔误,修改后代码如下:
request = youtube.videos().list(part = "snippet,statistics", id = LIST)
A = request.execute()
Data = []
for item in A['items']:
    stats = item['statistics']
    # 检查需要的字段是否都存在,缺少任意一个就跳过当前视频
    if all(key in stats for key in ['viewCount', 'likeCount', 'dislikeCount']):
        Data.append({
            'Views': stats['viewCount'],
            'Likes': stats['likeCount'],
            'Dislikes': stats['dislikeCount']
        })

如果不需要点踩数据,把判断条件里的'dislikeCount'删掉即可,避免大部分视频被跳过。

  • 方案2:保留所有视频,缺失字段填充默认值
    如果你不想跳过视频,只是给缺失的字段填充默认值(比如0、None),可以用字典内置的get()方法,找不到对应的key时会自动返回你指定的默认值,不会抛出错误,代码如下:
request = youtube.videos().list(part = "snippet,statistics", id = LIST)
A = request.execute()
Data = []
for item in A['items']:
    stats = item['statistics']
    Data.append({
        'Views': stats.get('viewCount', 0),
        'Likes': stats.get('likeCount', None),
        'Dislikes': stats.get('dislikeCount', None)
    })

内容的提问来源于stack exchange,提问作者Rishab Navaneet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:27:04