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

如何通过YouTube V3 API获取YouTube视频的videoId?

问题分析与解决方法

错误原因

你用requests.get(api_url).text拿到的是JSON格式的字符串,不是Python可直接操作的字典对象,所以用["videoId"]这种字符串索引去访问自然会报错——字符串只能用整数索引取字符,不能用键名。

修正方案

直接用requests提供的.json()方法,它会自动把API返回的JSON字符串解析成Python字典,之后就能按键名层级访问数据了。另外要注意YouTube Search API的返回结构:videoId嵌套在items数组的id对象里,得按层级取。

修正后的代码

import requests

channel_id = "UCfjTZZ3iqy24oSg-bmi2waw"
api_key = "你的API密钥"  # 记得填入有效API密钥

api_url = f"https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&maxResults=1&order=date&type=video&key={api_key}"

# 用.json()解析响应为字典
response = requests.get(api_url).json()

# 按API返回结构层级获取videoId
if response.get("items"):  # 先判断有没有返回结果,避免索引报错
    video_id = response["items"][0]["id"]["videoId"]
    print(video_id)
else:
    print("未获取到视频数据")

补充说明

  • 一定要确保api_key填入有效的YouTube Data API密钥,不然会返回权限错误。
  • 加if response.get("items")的判断是为了防止API返回空数据时,访问items[0]触发索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:21:30