使用YouTube API获取视频转录文本失败,仅返回元数据
问题解答
你的操作没有完全错误,但存在关键认知偏差:
- 调用YouTube Captions API的
list接口(即你当前使用的/youtube/v3/captions?videoId=...)仅能返回字幕的元数据信息(比如字幕ID、语言类型、生成方式、状态等),无法直接获取转录文本内容。 - 你疑惑的"caption"和转录文本其实是同一概念——ASR类型的caption就是YouTube自动生成的视频转录字幕,只是API将元数据与实际内容拆分为两个接口提供。
正确获取转录文本的步骤:
- 保留当前的
list接口调用,拿到目标字幕的id值(你的响应里是AUieDaY04UW8eDU0F_kn4QlGzc7lJriXOz42Nqc20cmkmQN759U) - 调用Captions API的
download接口,传入该字幕ID,并指定返回格式:GET https://www.googleapis.com/youtube/v3/captions/AUieDaY04UW8eDU0F_kn4QlGzc7lJriXOz42Nqc20cmkmQN759U?key=MYKEY&tfmt=jsontfmt参数可选值:json(带时间戳的结构化文本)、srt、vtt(标准字幕格式),按需选择即可。
补充说明:
第三方服务能直接返回转录文本,是因为它们后台自动完成了"获取字幕ID→调用下载接口"这两步流程,将结果直接展示给用户。
另外,如果目标视频的字幕为私有内容,仅用API Key无法访问,需要通过OAuth 2.0完成用户授权;但你示例中的ASR字幕属于公开可访问类型,使用API Key即可获取内容。
内容的提问来源于stack exchange,提问作者Evgeniy
相关产品推荐
相关产品推荐

