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

如何批量调用YouTube API获取2055个视频详情数据?

YouTube API批量获取视频详情的最优方案与实现

最优选择:按50个ID批量请求

绝对不要逐个请求,核心原因:

  • YouTube API有调用配额限制,2055个ID逐个请求要消耗2055次配额,而批量请求仅需42次(41组50个+1组5个),配额消耗大幅降低
  • 批量请求的响应速度远快于逐个请求,能节省大量等待时间

实现批量请求的具体步骤

1. 拆分ID列表为50个一组的批次

用Python切片即可快速拆分,示例代码:

video_ids = ["id_001", "id_002", ..., "id_2055"]  # 你的2055个视频ID列表
# 按每50个为一组拆分,最后一组自动处理剩余数量
batches = [video_ids[i:i+50] for i in range(0, len(video_ids), 50)]

2. 遍历批次调用API并收集数据

假设你已通过google-api-python-client初始化好youtube服务对象,完整实现示例:

video_details = {}  # 存储最终结果的字典

for batch in batches:
    # 把批次内的ID用逗号拼接成API要求的格式
    id_str = ",".join(batch)
    # 调用videos.list接口,指定需要获取的字段集合
    response = youtube.videos().list(
        part="statistics,snippet",  # statistics包含点赞、浏览量;snippet包含标题等基础信息
        id=id_str
    ).execute()
    
    # 解析响应,将每个视频的信息存入字典
    for item in response["items"]:
        video_id = item["id"]
        stats = item["statistics"]
        video_details[video_id] = {
            "浏览量": int(stats.get("viewCount", 0)),
            "点赞数": int(stats.get("likeCount", 0)),
            "视频标题": item["snippet"]["title"]
            # 可根据需求添加其他字段,比如评论数、发布时间等
        }

3. 处理无效ID(可选)

如果批次中存在无效ID,API会自动忽略并仅返回有效ID的数据。若需要记录无效ID,可对比批次ID列表与响应返回的ID列表,找出缺失项:

returned_ids = [item["id"] for item in response["items"]]
invalid_ids = [vid for vid in batch if vid not in returned_ids]
if invalid_ids:
    print(f"以下ID无效或无法获取数据:{invalid_ids}")

注意事项

  • 每个videos.list调用无论请求多少个ID,都仅消耗1个单位的API配额,放心批量请求即可
  • 按需选择part参数,避免请求不必要的字段,减少响应数据量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:23:14