使用YouTube Data API v3下载字幕遇404问题及权限咨询
问题解答
1. 你的请求流程确实有误
你用来下载字幕的URL格式及请求逻辑存在问题:
- 正确的Captions API下载端点是
GET https://www.googleapis.com/youtube/v3/captions/{CAPTION_ID},但必须附加必要查询参数:比如指定返回格式的alt(如alt=srt获取SRT格式、alt=vtt获取VTT格式),同时要携带有效的授权凭证(API密钥或OAuth 2.0令牌)。你直接拼接ID的请求既没指定格式也无授权,因此返回404。 - 另外,你调用
captions.list时只获取了字幕的基础元数据,若要了解字幕语言、类型(自动生成/人工上传)等信息,建议添加part=snippet参数,能更清晰判断目标字幕的属性。
2. 正确下载YouTube字幕的步骤
第一步:获取字幕ID及详情
调用captions.list接口,指定视频ID、part=snippet参数并携带授权凭证:GET https://www.googleapis.com/youtube/v3/captions?part=snippet&videoId={视频ID}&key={你的API密钥}响应会包含每个字幕的ID、语言标签、是否自动生成等关键信息。
第二步:下载目标字幕
使用第一步得到的字幕ID,调用下载端点并指定格式:GET https://www.googleapis.com/youtube/v3/captions/{字幕ID}?alt=srt&key={你的API密钥}alt参数可选值:srt、vtt、json,根据需求选择对应格式即可。
3. 非自有视频的字幕下载权限
是的,非自有视频的字幕下载必须获得视频所有者授权,例外情况仅为:字幕是YouTube自动生成且所有者开启了公开下载权限。
- 若视频公开且字幕允许下载,可通过API正常获取(需API密钥);
- 若字幕设为私有或所有者未开启下载权限,即便能通过
captions.list获取到字幕ID,下载时也会返回权限错误(而非404); - 受版权保护的公开视频,其字幕可能因版权限制无法获取,需严格遵守YouTube版权政策。
内容的提问来源于stack exchange,提问作者AutoMEta
相关产品推荐
相关产品推荐

