Youtube API Search接口videoCaption参数无效问题求助
YouTube Data API v3 search.list 请求报400错误的解决办法
问题重现
你提供的第一个请求可正常执行:
GET https://youtube.googleapis.com/youtube/v3/search?maxResults=1&q=test&key=[YOUR_API_KEY] HTTP/1.1 Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json
但添加part=snippet和videoCaption=closedCaption参数后的第二个请求返回400无效参数错误:
GET https://youtube.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q=test&videoCaption=closedCaption&key=[YOUR_API_KEY] HTTP/1.1 Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json
错误详情:
{ "error": { "code": 400, "message": "Request contains an invalid argument.", "errors": [ { "message": "Request contains an invalid argument.", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }
问题原因
videoCaption参数仅适用于视频类型的搜索结果,但默认情况下search.list会返回多种类型的内容(视频、频道、播放列表等)。当API尝试对非视频类型的结果应用videoCaption筛选规则时,就会触发参数无效的错误。
解决方案
在请求URL中添加type=video参数,明确指定只搜索视频内容,这样videoCaption参数就能正常生效。
修正后的请求示例:
GET https://youtube.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q=test&videoCaption=closedCaption&type=video&key=[YOUR_API_KEY] HTTP/1.1 Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json
补充说明:第一个请求能正常运行,是因为它没有使用videoCaption这种类型受限的参数,即使返回非视频结果也不会报错。part=snippet参数本身是合法的,问题核心是videoCaption和未指定搜索类型的冲突。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

