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

如何通过youtubei API获取YouTube视频可用字幕语言列表及字幕内容?

通过YouTube内部youtubei API获取字幕及可用语言列表

可行性说明

可以通过youtubei API实现你的需求。youtubei是YouTube网页端和移动端原生应用使用的内部API,虽然官方未公开正式文档,但开发者社区已总结出稳定的调用方式,适合非商业化的个人或小型应用场景(注意:需遵守YouTube的服务条款,避免用于大规模商用或违规爬取)。

步骤1:获取视频可用字幕语言列表

请求构造

  • URL:https://www.youtube.com/youtubei/v1/get_transcript
  • 请求方法:POST
  • 请求头:
    • 必须包含Content-Type: application/json
    • 添加模拟移动端的User-Agent,例如:Mozilla/5.0 (Linux; Android 10; SM-G973F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 Mobile Safari/537.36
  • 请求体(JSON):
    {
      "context": {
        "client": {
          "clientName": "ANDROID",
          "clientVersion": "17.33.42",
          "hl": "en",
          "gl": "US"
        }
      },
      "videoId": "YOUR_VIDEO_ID"
    }
    
    替换YOUR_VIDEO_ID为目标视频的ID。

响应解析

响应中actions[0].updateEngagementPanelAction.content.transcriptRenderer.body.transcriptHeader.captionTracks节点下的数组,就是该视频的所有可用字幕语言条目。每个条目包含以下关键字段:

  • languageCode:语言代码(如zh-CN、en-US)
  • name.simpleText:语言名称(如“中文(简体)”、“English”)
  • baseUrl:该语言字幕的直接获取链接

提取这些信息后,即可得到完整的可用字幕语言列表。

步骤2:检查目标语言是否存在

将用户指定的语言代码(如zh-CN)与步骤1中提取的languageCode字段进行匹配,判断是否存在对应字幕。

步骤3:获取指定语言的字幕内容

当确认目标语言存在后,直接发送GET请求到该语言条目对应的baseUrl,即可获取到字幕内容(通常为WebVTT格式)。你可以根据需求将其解析为纯文本或其他格式。

youtubei API使用注意事项

  • Client参数适配:clientName和clientVersion需要匹配当前YouTube移动端应用的版本,过时的版本可能导致请求失败,建议定期更新为最新的Android客户端版本号。
  • 限流与封禁:避免高频次批量请求,否则可能触发YouTube的反爬机制,导致IP被临时封禁。
  • 响应结构变化:由于是内部API,YouTube可能随时调整响应结构,需要定期验证调用逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:23:23