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

使用Python调用YouTube API获取播放列表视频详情仅返回24条数据求助

问题排查与修复

你的问题出在get_video_details函数的代码结构上:处理API返回数据的for循环被放在了分页请求的循环外面,导致程序只处理了最后一次API请求返回的视频数据,前面所有分页的结果都被覆盖后丢弃了。

修正后的代码

video_ids = get_video_ids(youtube, playlist_id)

def get_video_details(youtube, video_ids):
    all_video_stats = []
    
    for i in range(0, len(video_ids), 50):
        request = youtube.videos().list(
                part='snippet,statistics',
                id=','.join(video_ids[i:i+50]))
        response = request.execute()
        
        # 把处理response的循环移到分页循环内部,每次请求后立即处理数据
        for video in response['items']:
            # 用get方法避免KeyError(部分视频可能缺失统计字段)
            video_stats = dict(
                Title=video['snippet']['title'],
                Publish_date=video['snippet']['publishedAt'],
                View_Count=video['statistics'].get('viewCount', '0'),
                Comment_Count=video['statistics'].get('commentCount', '0')
            )
            all_video_stats.append(video_stats)
    
    return all_video_stats

关键修改点

  1. 将遍历response['items']的代码块移动到for i in range(0, len(video_ids), 50)分页请求循环内部,确保每一次API请求返回的数据都被及时处理并添加到all_video_stats列表中。
  2. 用字典的get方法获取统计字段,避免部分视频因缺失viewCount或commentCount字段抛出KeyError异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:17:42