如何通过YouTube内部API(youtubei/Innertube)搜索视频ID?
解决Innertube API搜索视频ID的JSON格式错误问题
错误原因分析
你收到的JSON格式错误,是因为请求体存在语法问题:
- 多余的闭合括号
}}(错误信息里的022011"}}部分) - 查询词的双引号被错误转义,
"query":"\"godot\""应改为"query":"godot"
修正后的curl命令示例
curl 'https://www.youtube.com/youtubei/v1/search?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' \ -H 'Content-Type: application/json' \ --data-raw '{ "context": { "client": { "clientName": "WEB", "clientVersion": "2.20240520.01.00" } }, "query": "godot", "params": "CAIQAA" }'
关键注意事项
- API密钥:使用网页端YouTube默认的Innertube密钥(示例中的
AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8),该密钥公开可用,但可能随时变更。 - 请求头模拟:若请求被拦截,需添加浏览器User-Agent等头信息,比如
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'。 - 响应解析:返回的JSON中,视频ID位于
contents.twoColumnSearchResultsRenderer.primaryContents.sectionListRenderer.contents[0].itemSectionRenderer.contents数组内,每个videoRenderer对象的videoId字段即为目标ID。
关于Innertube API的提醒
这是YouTube内部API,无官方文档,结构和规则可能随时变动,生产环境使用需谨慎,做好异常处理与兼容逻辑。
内容的提问来源于stack exchange,提问作者Nam Vu
相关产品推荐
相关产品推荐

