YouTube 字幕下载 API 接口简介
为方便需要批量下载 YouTube 字幕的同学,开放使用的 YouTube 字幕下载 API 接口 ,利用本接口,可以编写脚本下载单个视频字幕,或一次性批量下载某个 YouTube Playlist 内全部视频的字幕,也可以使用 YouTube 字幕下载网站手动下载所需字幕。支持返回带时间轴的字幕内容、不带时间轴的字幕文本、双语字幕内容。
Authentication
避免滥用加了一个简单的 API-key, 请访问原文获取 API-key, 默认每日请求数为 1000 次。请求次数会在每天 00:00:00 清零。
测试用 API-key:a2d09c7d76fced01f8be4b1f4cce8bec
获取 YouTube 字幕
获取视频支持的字幕列表
URI | HTTP Method | Authentication |
---|---|---|
api.zhuwei.me/v1/captions/{video_id}?api-key={your_api_key} | GET | API key |
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
video_id | string | 是 | video_id |
api-key | string | 是 | api-key |
部分返回参数说明
参数 | 类型 | 说明 |
---|---|---|
autogenerated | Boolean | 是否为自动生成字幕 |
machinetranslated | Boolean | 是否为机器翻译字幕 |
limit_remaining | Integer | 本日剩余请求次数, 将会在每天 00:00:00 清零 |
以 https://www.youtube.com/watch?v=XzK98UbxbjY
为例, 获取 video_id
为 XzK98UbxbjY
的视频支持的字幕列表:
`
GET https://api.zhuwei.me/v1/capt…
`
返回结果:
{
"meta": {
"code": 200,
"msg": "OK",
"limit_remaining": 654
},
"responses": {
"caption": {
"video_url": "https://www.youtube.com/watch?v=kbdCg_xtUbA",
"title": "how to get YouTube captions? Here is the easiest way!",
"available_captions_count": 2,
"available_captions": [
{
"language": "zh-HK",
"caption_content_url": "https://api.zhuwei.me/v1/captions/kbdCg_xtUbA/contents/zh-HK",
"autogenerated": false,
"machinetranslated": false
},
{
"language": "zh-Hans",
"caption_content_url": "https://api.zhuwei.me/v1/captions/kbdCg_xtUbA/contents/machinetranslation/zh-Hans",
"autogenerated": true,
"machinetranslated": true
}
]
}
}
}
获取字幕内容
从上一步返回的支持字幕列表中,选择某语言对应的 caption_content_url
URI | HTTP Method | Authentication |
---|---|---|
api.zhuwei.me/v1/captions/{video_id}/contents[/machinetranslations]/{language}?api-key={your_api_key}[&multilanguage=multilanguage] [¬imeline=notimeline] | GET | API key |
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
notimeline | string | 否 | notimeline = notimeline 时,将返回不带时间轴的字幕内容 |
multilanguage | string | 否 | multilanguage = multilanguage 时,将返回源语言 + 中文双语字幕内容 |
api-key | string | 是 | api-key |
部分返回参数说明
参数 | 类型 | 说明 |
---|---|---|
multilanguage | Boolean | 是否为双语字幕 |
notimeline | Boolean | 字幕内容是否不包含时间轴 |
content | string | 字幕内容,以\n 换行 |
请求示例: GET https://api.zhuwei.me/v1/captions/XzK98UbxbjY/contents/en?multilanguage=multilanguage
成功返回结果
{
"meta": {
"code": 200,
"msg": "OK",
"limit_remaining": 80
},
"contents": {
"language": "zh-HK",
"multilanguage": false,
"notimeline": false,
"content": "1\n00:00:00,000 --> 00:00:03,702\n查看視頻是否包含字幕\n\n2\n00:00:03,702 --> 00:00:06,310\n復制 Youtube 視頻地址\n\n3\n00:00:06,310 --> 00:00:11,573\n訪問 Youtube 字幕網站: https://zhuwei.me/y2b/\n\n4\n00:00:11,573 --> 00:00:17,573\n在輸入框粘貼剛才復制的 YouTube 視頻地址\n\n5\n00:00:17,573 --> 00:00:19,535\n點擊"獲取字幕"\n\n6\n00:00:19,535 --> 00:00:21,535\n點擊所需字幕語言\n\n7\n00:00:21,535 --> 00:00:23,593\n字幕分別為 1.打包的 .SRT 字幕\n\n8\n00:00:23,593 --> 00:00:25,565\n2.SRT 字幕\n\n9\n00:00:25,565 --> 00:00:29,393\n3.不包含時間軸的字幕\n\n10\n00:00:29,393 --> 00:00:55,066\n再演示一次 (ง •_•)ง\n\n11\n00:00:55,066 --> 00:00:57,360\n(●'◡'●)\n\n"
}
}
获取 YouTube Playlist 内所有视频 ID
URI | HTTP Method | Authentication |
---|---|---|
api.zhuwei.me/v1/videos/playlists/{playlist_id}?api-key={your_api_key} | GET | API key |
请求示例: GET https://api.zhuwei.me/v1/videos/playlists/PLUl4u3cNGP61qDex7XslwNJ-xxxEFzMNV
返回示例
{
"meta": {
"code": 200,
"msg": "OK",
"limit_remaining": 100
},
"response": {
"playlist": {
"videos_count": 215,
"videos": [
"F3N5EkMX_ks",
"5ucfHd8FWKw",
"Jf2PgGInUEk",
"Bq0fDYtbfBA",
...
"EhgF2OViDDs",
"oILq3xz_XtU",
"WxkwkGEVu-E",
"lkeX42KQjac",
"1UD560RQ684",
"4r1xgrWbALg",
"hxa6jAYA980",
"CfTLS6YYPms",
"cHKyuSAySyE",
"TvdmaZR6m8Q",
"RX88J2e4W0M",
"ZMa-xKcM2L8",
"xh_LCHvzp-Q",
"V1I-vrXGl3A",
"ThP6wQkf5ec",
"jOPA3XY-V3U",
"5oLLnCGStUc"
]
}
}
}
已知问题:
- 部分有地区、年龄限制的视频和 YouTube Red 无法获取字幕。