YouTube Transcript API

API ID 13178

Fetch YouTube video transcripts as JSON, SRT, or VTT with video metadata included. List caption languages, and resolve entire playlists or channels into video lists. Fast, reliable, all-inclusive.

API 文档

端点

请求

Extracts the full transcript of a YouTube video and returns it as structured JSON: timed segments with text, start and duration, plus the complete concatenated plain text. Every response includes video metadata (title, channel, channel ID, duration in seconds, view count), the caption kind (manual or auto-generated), and whether the requested language was matched. Pass a video_id and optionally a lang code such as en, es or de. If the video has no captions the API returns a clean NO_CAPTIONS error code instead of an ambiguous empty response.

Endpoint ID: 26729
GET https://creators.zylalabs.com/api/13178/youtube+transcript+api/26729/get+transcript+json
输入参数

Get Transcript JSON — 端点功能

对象 描述
video_id 必需 YouTube video ID — the part after watch?v= in the video URL. Example: dQw4w9WgXcQ
lang 可选 Optional caption language code (en, es, de, fr...). Defaults to the best available track. Example: en

剩余免费测试请求:3 / 3。


输入参数

video_id
lang
API 示例响应
JSON
{"video_id":"dQw4w9WgXcQ","lang":"en","kind":"manual","requested_lang_matched":null,"video":{"title":"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","duration_sec":213,"view_count":1791582068},"segments":[{"start_ms":1360,"duration_ms":1680,"text":"[♪♪♪]"},{"start_ms":18640,"duration_ms":3240,"text":"♪ We're no strangers to love ♪"},{"start_ms":22640,"duration_ms":4320,"text":"♪ You know the rules\nand so do I ♪"},{"start_ms":27040,"duration_ms":4000,"text":"♪ A full commitment's\nwhat I'm thinking of ♪"},{"start_ms":31120,"duration_ms":3960,"text":"♪ You wouldn't get this\nfrom any other guy ♪"},{"start_ms":35160,"duration_ms":4360,"text":"♪ I just wanna tell you\nhow I'm feeling ♪"},{"start_ms":40520,"duration_ms":2400,"text":"♪ Gotta make you understand ♪"},{"start_ms":43000,"duration_ms":2120,"text":"♪ Never gonna give you up ♪"},{"start_ms":45200,"duration_ms":1880,"text":"♪ Never gonna let you down ♪"},{"start_ms":47320,"duration_ms":3800,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":51480,"duration_ms":2000,"text":"♪ Never gonna make you cry ♪"},{"start_ms":53600,"duration_ms":1920,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":55720,"duration_ms":3640,"text":"♪ Never gonna tell a lie\nand hurt you ♪"},{"start_ms":60800,"duration_ms":4000,"text":"♪ We've known each other\nfor so long ♪"},{"start_ms":64880,"duration_ms":4160,"text":"♪ Your heart's been aching\nbut you're too shy to say it ♪"},{"start_ms":69120,"duration_ms":3840,"text":"♪ Inside we both know\nwhat's been going ♪"},{"start_ms":73360,"duration_ms":3840,"text":"♪ We know the game\nand we're gonna play it ♪"},{"start_ms":77400,"duration_ms":4640,"text":"♪ And if you ask me\nhow I'm feeling ♪"},{"start_ms":82400,"duration_ms":2840,"text":"♪ Don't tell me\nyou're too blind to see ♪"},{"start_ms":85320,"duration_ms":1960,"text":"♪ Never gonna give you up ♪"},{"start_ms":87360,"duration_ms":1960,"text":"♪ Never gonna let you down ♪"},{"start_ms":89440,"duration_ms":4280,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":93800,"duration_ms":1800,"text":"♪ Never gonna make you cry ♪"},{"start_ms":95760,"duration_ms":2240,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":98080,"duration_ms":3960,"text":"♪ Never gonna tell a lie\nand hurt you ♪"},{"start_ms":102200,"duration_ms":1920,"text":"♪ Never gonna give you up ♪"},{"start_ms":104280,"duration_ms":2080,"text":"♪ Never gonna let you down ♪"},{"start_ms":106480,"duration_ms":3600,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":110760,"duration_ms":1960,"text":"♪ Never gonna make you cry ♪"},{"start_ms":112800,"duration_ms":1880,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":114960,"duration_ms":3800,"text":"♪ Never gonna tell a lie\nand hurt you ♪"},{"start_ms":119840,"duration_ms":3120,"text":"♪ (Ooh, give you up) ♪"},{"start_ms":123720,"duration_ms":3640,"text":"♪ (Ooh, give you up) ♪"},{"start_ms":128480,"duration_ms":1640,"text":"♪ Never gonna give,\nnever gonna give ♪"},{"start_ms":130240,"duration_ms":1320,"text":"♪ (Give you up) ♪"},{"start_ms":132480,"duration_ms":1760,"text":"♪ Never gonna give,\nnever gonna give ♪"},{"start_ms":134360,"duration_ms":1560,"text":"♪ (Give you up) ♪"},{"start_ms":136760,"duration_ms":4320,"text":"♪ We've known each other\nfor so long ♪"},{"start_ms":141200,"duration_ms":4000,"text":"♪ Your heart's been aching\nbut you're too shy to say it ♪"},{"start_ms":145280,"duration_ms":3840,"text":"♪ Inside we both know\nwhat's been going ♪"},{"start_ms":149520,"duration_ms":3680,"text":"♪ We know the game\nand we're gonna play it ♪"},{"start_ms":153360,"duration_ms":4680,"text":"♪ I just wanna tell you\nhow I'm feeling ♪"},{"start_ms":158640,"duration_ms":2680,"text":"♪ Gotta make you understand ♪"},{"start_ms":161400,"duration_ms":1960,"text":"♪ Never gonna give you up ♪"},{"start_ms":163440,"duration_ms":2200,"text":"♪ Never gonna let you down ♪"},{"start_ms":165720,"duration_ms":4000,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":169800,"duration_ms":1840,"text":"♪ Never gonna make you cry ♪"},{"start_ms":171800,"duration_ms":2160,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":174040,"duration_ms":3560,"text":"♪ Never gonna tell a lie\nand hurt you ♪"},{"start_ms":178200,"duration_ms":2040,"text":"♪ Never gonna give you up ♪"},{"start_ms":180320,"duration_ms":2120,"text":"♪ Never gonna let you down ♪"},{"start_ms":182520,"duration_ms":4120,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":186720,"duration_ms":2000,"text":"♪ Never gonna make you cry ♪"},{"start_ms":188840,"duration_ms":1880,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":190840,"duration_ms":4360,"text":"♪ Never gonna tell a lie\nand hurt you ♪"},{"start_ms":195280,"duration_ms":1840,"text":"♪ Never gonna give you up ♪"},{"start_ms":197200,"duration_ms":2040,"text":"♪ Never gonna let you down ♪"},{"start_ms":199400,"duration_ms":3720,"text":"♪ Never gonna run around\nand desert you ♪"},{"start_ms":203360,"duration_ms":2240,"text":"♪ Never gonna make you cry ♪"},{"start_ms":205680,"duration_ms":2160,"text":"♪ Never gonna say goodbye ♪"},{"start_ms":207920,"duration_ms":3400,"text":"♪ Never gonna tell a lie\nand hurt you ♪"}],"text":"[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ♪ A full commitment's what I'm thinking of ♪ ♪ You wouldn't get this from any other guy ♪ ♪ I just wanna tell you how I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ♪ We've known each other for so long ♪ ♪ Your heart's been aching but you're too shy to say it ♪ ♪ Inside we both know what's been going ♪ ♪ We know the game and we're gonna play it ♪ ♪ And if you ask me how I'm feeling ♪ ♪ Don't tell me you're too blind to see ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ♪ (Ooh, give you up) ♪ ♪ (Ooh, give you up) ♪ ♪ Never gonna give, never gonna give ♪ ♪ (Give you up) ♪ ♪ Never gonna give, never gonna give ♪ ♪ (Give you up) ♪ ♪ We've known each other for so long ♪ ♪ Your heart's been aching but you're too shy to say it ♪ ♪ Inside we both know what's been going ♪ ♪ We know the game and we're gonna play it ♪ ♪ I just wanna tell you how I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪"}
Get Transcript JSON — 代码片段

curl --location --request GET 'https://zylalabs.com/api/13178/youtube+transcript+api/26729/get+transcript+json?video_id=dQw4w9WgXcQ&lang=es' --header 'Authorization: Bearer YOUR_API_KEY' 


    
请求

Returns the transcript of a YouTube video as a ready-to-save SRT subtitle file (Content-Type: application/x-subrip) — no conversion or post-processing needed. Video metadata (title, channel, duration, view count) is delivered in X-Video-* response headers, keeping the body a clean, valid SRT document you can feed directly into video editors, players, or subtitle pipelines. Pass a video_id and optionally a lang code.

Endpoint ID: 26730
GET https://creators.zylalabs.com/api/13178/youtube+transcript+api/26730/get+transcript+srt+file
输入参数

Get Transcript SRT file — 端点功能

对象 描述
video_id 必需 YouTube video ID — the part after watch?v= in the video URL. Example: dQw4w9WgXcQ
lang 可选 Optional caption language code (en, es, de, fr...). Defaults to the best available track. Example: en

剩余免费测试请求:3 / 3。


输入参数

video_id
lang
API 示例响应
JSON
1
00:00:01,360 --> 00:00:03,040
[♪♪♪]

2
00:00:18,640 --> 00:00:21,880
♪ We're no strangers to love ♪

3
00:00:22,640 --> 00:00:26,960
♪ You know the rules
and so do I ♪

4
00:00:27,040 --> 00:00:31,040
♪ A full commitment's
what I'm thinking of ♪

5
00:00:31,120 --> 00:00:35,080
♪ You wouldn't get this
from any other guy ♪

6
00:00:35,160 --> 00:00:39,520
♪ I just wanna tell you
how I'm feeling ♪

7
00:00:40,520 --> 00:00:42,920
♪ Gotta make you understand ♪

8
00:00:43,000 --> 00:00:45,120
♪ Never gonna give you up ♪

9
00:00:45,200 --> 00:00:47,080
♪ Never gonna let you down ♪

10
00:00:47,320 --> 00:00:51,120
♪ Never gonna run around
and desert you ♪

11
00:00:51,480 --> 00:00:53,480
♪ Never gonna make you cry ♪

12
00:00:53,600 --> 00:00:55,520
♪ Never gonna say goodbye ♪

13
00:00:55,720 --> 00:00:59,360
♪ Never gonna tell a lie
and hurt you ♪

14
00:01:00,800 --> 00:01:04,800
♪ We've known each other
for so long ♪

15
00:01:04,880 --> 00:01:09,040
♪ Your heart's been aching
but you're too shy to say it ♪

16
00:01:09,120 --> 00:01:12,960
♪ Inside we both know
what's been going ♪

17
00:01:13,360 --> 00:01:17,200
♪ We know the game
and we're gonna play it ♪

18
00:01:17,400 --> 00:01:22,040
♪ And if you ask me
how I'm feeling ♪

19
00:01:22,400 --> 00:01:25,240
♪ Don't tell me
you're too blind to see ♪

20
00:01:25,320 --> 00:01:27,280
♪ Never gonna give you up ♪

21
00:01:27,360 --> 00:01:29,320
♪ Never gonna let you down ♪

22
00:01:29,440 --> 00:01:33,720
♪ Never gonna run around
and desert you ♪

23
00:01:33,800 --> 00:01:35,600
♪ Never gonna make you cry ♪

24
00:01:35,760 --> 00:01:38,000
♪ Never gonna say goodbye ♪

25
00:01:38,080 --> 00:01:42,040
♪ Never gonna tell a lie
and hurt you ♪

26
00:01:42,200 --> 00:01:44,120
♪ Never gonna give you up ♪

27
00:01:44,280 --> 00:01:46,360
♪ Never gonna let you down ♪

28
00:01:46,480 --> 00:01:50,080
♪ Never gonna run around
and desert you ♪

29
00:01:50,760 --> 00:01:52,720
♪ Never gonna make you cry ♪

30
00:01:52,800 --> 00:01:54,680
♪ Never gonna say goodbye ♪

31
00:01:54,960 --> 00:01:58,760
♪ Never gonna tell a lie
and hurt you ♪

32
00:01:59,840 --> 00:02:02,960
♪ (Ooh, give you up) ♪

33
00:02:03,720 --> 00:02:07,360
♪ (Ooh, give you up) ♪

34
00:02:08,480 --> 00:02:10,120
♪ Never gonna give,
never gonna give ♪

35
00:02:10,240 --> 00:02:11,560
♪ (Give you up) ♪

36
00:02:12,480 --> 00:02:14,240
♪ Never gonna give,
never gonna give ♪

37
00:02:14,360 --> 00:02:15,920
♪ (Give you up) ♪

38
00:02:16,760 --> 00:02:21,080
♪ We've known each other
for so long ♪

39
00:02:21,200 --> 00:02:25,200
♪ Your heart's been aching
but you're too shy to say it ♪

40
00:02:25,280 --> 00:02:29,120
♪ Inside we both know
what's been going ♪

41
00:02:29,520 --> 00:02:33,200
♪ We know the game
and we're gonna play it ♪

42
00:02:33,360 --> 00:02:38,040
♪ I just wanna tell you
how I'm feeling ♪

43
00:02:38,640 --> 00:02:41,320
♪ Gotta make you understand ♪

44
00:02:41,400 --> 00:02:43,360
♪ Never gonna give you up ♪

45
00:02:43,440 --> 00:02:45,640
♪ Never gonna let you down ♪

46
00:02:45,720 --> 00:02:49,720
♪ Never gonna run around
and desert you ♪

47
00:02:49,800 --> 00:02:51,640
♪ Never gonna make you cry ♪

48
00:02:51,800 --> 00:02:53,960
♪ Never gonna say goodbye ♪

49
00:02:54,040 --> 00:02:57,600
♪ Never gonna tell a lie
and hurt you ♪

50
00:02:58,200 --> 00:03:00,240
♪ Never gonna give you up ♪

51
00:03:00,320 --> 00:03:02,440
♪ Never gonna let you down ♪

52
00:03:02,520 --> 00:03:06,640
♪ Never gonna run around
and desert you ♪

53
00:03:06,720 --> 00:03:08,720
♪ Never gonna make you cry ♪

54
00:03:08,840 --> 00:03:10,720
♪ Never gonna say goodbye ♪

55
00:03:10,840 --> 00:03:15,200
♪ Never gonna tell a lie
and hurt you ♪

56
00:03:15,280 --> 00:03:17,120
♪ Never gonna give you up ♪

57
00:03:17,200 --> 00:03:19,240
♪ Never gonna let you down ♪

58
00:03:19,400 --> 00:03:23,120
♪ Never gonna run around
and desert you ♪

59
00:03:23,360 --> 00:03:25,600
♪ Never gonna make you cry ♪

60
00:03:25,680 --> 00:03:27,840
♪ Never gonna say goodbye ♪

61
00:03:27,920 --> 00:03:31,320
♪ Never gonna tell a lie
and hurt you ♪
Get Transcript SRT file — 代码片段

curl --location --request GET 'https://zylalabs.com/api/13178/youtube+transcript+api/26730/get+transcript+srt+file?video_id=dQw4w9WgXcQ' --header 'Authorization: Bearer YOUR_API_KEY' 


    
请求

Returns the transcript of a YouTube video as a WEBVTT file (Content-Type: text/vtt), ready for HTML5 video players, web captioning, and streaming platforms — no conversion needed. Video metadata (title, channel, duration, view count) is delivered in X-Video-* response headers, keeping the body a clean, valid VTT document. Pass a video_id and optionally a lang code.

Endpoint ID: 26731
GET https://creators.zylalabs.com/api/13178/youtube+transcript+api/26731/get+transcript+vtt+file
输入参数

Get Transcript VTT file — 端点功能

对象 描述
video_id 必需 YouTube video ID — the part after watch?v= in the video URL. Example: dQw4w9WgXcQ
lang 可选 Optional caption language code (en, es, de, fr...). Defaults to the best available track. Example: en

剩余免费测试请求:3 / 3。


输入参数

video_id
lang
API 示例响应
JSON
WEBVTT

00:00:01.360 --> 00:00:03.040
[♪♪♪]

00:00:18.640 --> 00:00:21.880
♪ We're no strangers to love ♪

00:00:22.640 --> 00:00:26.960
♪ You know the rules
and so do I ♪

00:00:27.040 --> 00:00:31.040
♪ A full commitment's
what I'm thinking of ♪

00:00:31.120 --> 00:00:35.080
♪ You wouldn't get this
from any other guy ♪

00:00:35.160 --> 00:00:39.520
♪ I just wanna tell you
how I'm feeling ♪

00:00:40.520 --> 00:00:42.920
♪ Gotta make you understand ♪

00:00:43.000 --> 00:00:45.120
♪ Never gonna give you up ♪

00:00:45.200 --> 00:00:47.080
♪ Never gonna let you down ♪

00:00:47.320 --> 00:00:51.120
♪ Never gonna run around
and desert you ♪

00:00:51.480 --> 00:00:53.480
♪ Never gonna make you cry ♪

00:00:53.600 --> 00:00:55.520
♪ Never gonna say goodbye ♪

00:00:55.720 --> 00:00:59.360
♪ Never gonna tell a lie
and hurt you ♪

00:01:00.800 --> 00:01:04.800
♪ We've known each other
for so long ♪

00:01:04.880 --> 00:01:09.040
♪ Your heart's been aching
but you're too shy to say it ♪

00:01:09.120 --> 00:01:12.960
♪ Inside we both know
what's been going ♪

00:01:13.360 --> 00:01:17.200
♪ We know the game
and we're gonna play it ♪

00:01:17.400 --> 00:01:22.040
♪ And if you ask me
how I'm feeling ♪

00:01:22.400 --> 00:01:25.240
♪ Don't tell me
you're too blind to see ♪

00:01:25.320 --> 00:01:27.280
♪ Never gonna give you up ♪

00:01:27.360 --> 00:01:29.320
♪ Never gonna let you down ♪

00:01:29.440 --> 00:01:33.720
♪ Never gonna run around
and desert you ♪

00:01:33.800 --> 00:01:35.600
♪ Never gonna make you cry ♪

00:01:35.760 --> 00:01:38.000
♪ Never gonna say goodbye ♪

00:01:38.080 --> 00:01:42.040
♪ Never gonna tell a lie
and hurt you ♪

00:01:42.200 --> 00:01:44.120
♪ Never gonna give you up ♪

00:01:44.280 --> 00:01:46.360
♪ Never gonna let you down ♪

00:01:46.480 --> 00:01:50.080
♪ Never gonna run around
and desert you ♪

00:01:50.760 --> 00:01:52.720
♪ Never gonna make you cry ♪

00:01:52.800 --> 00:01:54.680
♪ Never gonna say goodbye ♪

00:01:54.960 --> 00:01:58.760
♪ Never gonna tell a lie
and hurt you ♪

00:01:59.840 --> 00:02:02.960
♪ (Ooh, give you up) ♪

00:02:03.720 --> 00:02:07.360
♪ (Ooh, give you up) ♪

00:02:08.480 --> 00:02:10.120
♪ Never gonna give,
never gonna give ♪

00:02:10.240 --> 00:02:11.560
♪ (Give you up) ♪

00:02:12.480 --> 00:02:14.240
♪ Never gonna give,
never gonna give ♪

00:02:14.360 --> 00:02:15.920
♪ (Give you up) ♪

00:02:16.760 --> 00:02:21.080
♪ We've known each other
for so long ♪

00:02:21.200 --> 00:02:25.200
♪ Your heart's been aching
but you're too shy to say it ♪

00:02:25.280 --> 00:02:29.120
♪ Inside we both know
what's been going ♪

00:02:29.520 --> 00:02:33.200
♪ We know the game
and we're gonna play it ♪

00:02:33.360 --> 00:02:38.040
♪ I just wanna tell you
how I'm feeling ♪

00:02:38.640 --> 00:02:41.320
♪ Gotta make you understand ♪

00:02:41.400 --> 00:02:43.360
♪ Never gonna give you up ♪

00:02:43.440 --> 00:02:45.640
♪ Never gonna let you down ♪

00:02:45.720 --> 00:02:49.720
♪ Never gonna run around
and desert you ♪

00:02:49.800 --> 00:02:51.640
♪ Never gonna make you cry ♪

00:02:51.800 --> 00:02:53.960
♪ Never gonna say goodbye ♪

00:02:54.040 --> 00:02:57.600
♪ Never gonna tell a lie
and hurt you ♪

00:02:58.200 --> 00:03:00.240
♪ Never gonna give you up ♪

00:03:00.320 --> 00:03:02.440
♪ Never gonna let you down ♪

00:03:02.520 --> 00:03:06.640
♪ Never gonna run around
and desert you ♪

00:03:06.720 --> 00:03:08.720
♪ Never gonna make you cry ♪

00:03:08.840 --> 00:03:10.720
♪ Never gonna say goodbye ♪

00:03:10.840 --> 00:03:15.200
♪ Never gonna tell a lie
and hurt you ♪

00:03:15.280 --> 00:03:17.120
♪ Never gonna give you up ♪

00:03:17.200 --> 00:03:19.240
♪ Never gonna let you down ♪

00:03:19.400 --> 00:03:23.120
♪ Never gonna run around
and desert you ♪

00:03:23.360 --> 00:03:25.600
♪ Never gonna make you cry ♪

00:03:25.680 --> 00:03:27.840
♪ Never gonna say goodbye ♪

00:03:27.920 --> 00:03:31.320
♪ Never gonna tell a lie
and hurt you ♪
Get Transcript VTT file — 代码片段

curl --location --request GET 'https://zylalabs.com/api/13178/youtube+transcript+api/26731/get+transcript+vtt+file?video_id=dQw4w9WgXcQ' --header 'Authorization: Bearer YOUR_API_KEY' 


    
请求

列出可用于YouTube视频的所有字幕轨道:语言代码、类型(手动或自动生成)和轨道名称 - 以及完整的视频元数据(标题、频道、频道ID、时长、观看次数)。使用它来发现您可以从转录端点请求哪些语言,然后再提取视频。没有字幕的视频返回一个干净的200响应,带有一个空的轨道数组,因此您的集成无需猜测。传递video_id。

Endpoint ID: 26732
GET https://creators.zylalabs.com/api/13178/youtube+transcript+api/26732/list+caption+languages
输入参数

列出标题语言 — 端点功能

对象 描述
video_id 必需 YouTube video ID — the part after watch?v= in the video URL. Example: dQw4w9WgXcQ

剩余免费测试请求:3 / 3。


输入参数

video_id
API 示例响应
JSON
{"video_id":"dQw4w9WgXcQ","video":{"title":"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","duration_sec":213,"view_count":1791582068},"tracks":[{"lang":"en","kind":"manual","name":"English"},{"lang":"en","kind":"asr","name":"English (auto-generated)"},{"lang":"de-DE","kind":"manual","name":"German (Germany)"},{"lang":"ja","kind":"manual","name":"Japanese"},{"lang":"pt-BR","kind":"manual","name":"Portuguese (Brazil)"},{"lang":"es-419","kind":"manual","name":"Spanish (Latin America)"}]}
列出标题语言 — 代码片段

curl --location --request GET 'https://zylalabs.com/api/13178/youtube+transcript+api/26732/list+caption+languages?video_id=dQw4w9WgXcQ' --header 'Authorization: Bearer YOUR_API_KEY' 


    
请求

Turns any YouTube playlist or channel into a complete list of videos in a single call. Accepts playlist URLs or IDs, channel URLs, handles, and UC channel IDs. Returns every video with its ID, URL, title, channel, and duration in seconds, ready to feed straight into the transcript endpoints for bulk processing. Handles up to 5000 videos per request, and larger sources are flagged as truncated. Ideal for mapping and transcribing entire channels end to end. No equivalent endpoint exists in other transcript APIs on this hub. Note that large channels can take longer to resolve, while playlists respond fast.

Endpoint ID: 26733
GET https://creators.zylalabs.com/api/13178/youtube+transcript+api/26733/resolve+playlist+or+channel+to+video+list
输入参数

Resolve Playlist or Channel to Video List — 端点功能

对象 描述
url 必需 Playlist URL or ID, channel URL, @handle, or UC channel ID. Example: PLBCF2DAC6FFB574DE

剩余免费测试请求:3 / 3。


输入参数

url
API 示例响应
JSON
{
  "source": {
    "type": "playlist",
    "id": "PLBCF2DAC6FFB574DE",
    "url": "https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE"
  },
  "video_count": 10,
  "videos": [
    {
      "video_id": "GvgqDSnpRQM",
      "url": "https://www.youtube.com/watch?v=GvgqDSnpRQM",
      "title": "Andrew Willis, Skatepark Engineer",
      "channel": "Google Search Stories",
      "duration_sec": 90
    },
    {
      "video_id": "V4DDt30Aat4",
      "url": "https://www.youtube.com/watch?v=V4DDt30Aat4",
      "title": "Mark Lesek: A New/Old Prosthetic",
      "channel": "Google Search Stories",
      "duration_sec": 159
    }
  ]
}
Resolve Playlist or Channel to Video List — 代码片段

curl --location --request GET 'https://zylalabs.com/api/13178/youtube+transcript+api/26733/resolve+playlist+or+channel+to+video+list?url=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API 访问密钥和身份验证

注册后,每个开发者都会被分配一个个人 API 访问密钥,这是一个唯一的字母和数字组合,用于访问我们的 API 端点。要使用 YouTube Transcript API 进行身份验证,只需在 Authorization 标头中包含您的 bearer token。

标头
标头 描述
授权 必需 应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。

简单透明的定价

无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。

(年度计费可节省 2 个月 🎉)

🚀 企业版套餐
自定义数量

  • 自定义速率限制
  • 团队与权限管理
  • SLA 保障的稳定性
  • 专业客户支持
  • 实时 API 监控
  • 企业级安全与合规
最低年度合同:10,000 美元

领先企业的信赖之选

概览

The YouTube Transcript API extracts captions and subtitles from any public YouTube video and returns them as structured JSON, ready-to-use SRT files, or WEBVTT — with video metadata (title, channel, duration, view count) included in every response at no extra cost.

WHY THIS API

Five endpoints instead of one. Most transcript APIs return raw caption JSON and stop there. This API also delivers ready-made subtitle files (SRT and VTT with correct Content-Type headers), lists all available caption tracks per video, and — unique on this hub — resolves entire playlists and channels into complete video lists, so you can map a whole channel and transcribe it end to end.

Built for reliability. Runs on dedicated residential proxy infrastructure with automatic retries, response caching, and real-time upstream monitoring. When YouTube changes its backend, most transcript APIs break for days. This one is engineered to detect breakage within minutes and recover fast.

All-inclusive pricing. The price on the tag is the price on the invoice: no separate charges for proxies, bandwidth, or metadata. Every successful call returns full video metadata alongside the transcript.

ENDPOINTS

1. Transcript (JSON) — timed segments plus concatenated plain text, caption kind (manual or auto-generated), and full video metadata in one call.
2. Transcript (SRT) — a ready-to-save .srt subtitle file, no conversion needed.
3. Transcript (VTT) — WEBVTT output for web players and HTML5 video.
4. Languages — every caption track available for a video (language, kind, name), so you always know what you can fetch before you fetch it.
5. Resolve — turn any playlist URL, channel URL, or @handle into a complete list of videos (ID, URL, title, channel, duration). Feed the result straight back into the transcript endpoint to process entire channels.

COMMON USE CASES

AI and NLP pipelines: feed clean transcripts into LLMs for summarization, RAG, classification, or embedding. Content repurposing: turn videos into blog posts, newsletters, and social content. Subtitle workflows: get broadcast-ready SRT/VTT without post-processing. Research and media monitoring: transcribe channels at scale for content analysis. Accessibility: caption files ready for compliance requirements.

ERROR HANDLING

Clean, machine-readable error codes (NO_CAPTIONS, VIDEO_UNAVAILABLE, LANG_NOT_FOUND, and more) so your integration always knows exactly what happened. Only meaningful responses count against your quota.

YouTube Transcript API FAQs

Yes. The API returns both manual and auto-generated captions. Every transcript response includes a kind field (manual or asr) so you always know which type you received. Use the List Caption Languages endpoint to see all available tracks for a video before fetching.

You get a clean, machine-readable NO_CAPTIONS error code instead of an ambiguous empty response. The List Caption Languages endpoint returns a 200 with an empty tracks array for such videos. Other structured error codes include VIDEO_UNAVAILABLE, LANG_NOT_FOUND and GEO_BLOCKED, so your integration always knows exactly what happened.

Yes. Use the Resolve endpoint: pass a channel URL, handle, or playlist URL and receive a complete list of videos (ID, URL, title, channel, duration) up to 5000 items. Feed those video IDs into the transcript endpoints to process the whole channel end to end. No other transcript API on this hub offers this.

JSON returns timed segments plus video metadata for programmatic use (NLP, AI pipelines, analysis). SRT returns a ready-to-save subtitle file for video editors and players. VTT returns WEBVTT for HTML5 video and web captioning. All three cover the same videos and languages, so pick the output your workflow needs and skip the conversion step.

Every caption language available on YouTube, both manual and auto-generated. Pass the lang parameter with a language code (en, es, de, fr, ja and so on). If the requested language is not available, you receive a LANG_NOT_FOUND error or the best available track depending on your settings. Use the List Caption Languages endpoint to discover available tracks first.

Included in every response at no extra cost. Transcript and language responses carry the video title, channel, channel ID, duration and view count. File endpoints (SRT, VTT) deliver metadata in X-Video response headers. The price on the tag is the price on the invoice, with no separate charges for proxies, bandwidth or metadata.

一般常见问题

Zyla API Hub 就像一个大型 API 商店,您可以在一个地方找到数千个 API。我们还为所有 API 提供专门支持和实时监控。注册后,您可以选择要使用的 API。请记住,每个 API 都需要自己的订阅。但如果您订阅多个 API,您将为所有这些 API 使用相同的密钥,使事情变得更简单。
价格以 USD(美元)、EUR(欧元)、CAD(加元)、AUD(澳元)和 GBP(英镑)列出。我们接受所有主要的借记卡和信用卡。我们的支付系统使用最新的安全技术,由 Stripe 提供支持,Stripe 是世界上最可靠的支付公司之一。如果您在使用卡片付款时遇到任何问题,请通过 [email protected]

此外,如果您已经以这些货币中的任何一种(USD、EUR、CAD、AUD、GBP)拥有有效订阅,该货币将保留用于后续订阅。只要您没有任何有效订阅,您可以随时更改货币。
定价页面上显示的本地货币基于您 IP 地址的国家/地区,仅供参考。实际价格以 USD(美元)为单位。当您付款时,即使您在我们的网站上看到以本地货币显示的等值金额,您的卡片对账单上也会以美元显示费用。这意味着您不能直接使用本地货币付款。
有时,银行可能会因其欺诈保护设置而拒绝收费。我们建议您首先联系您的银行,检查他们是否阻止了我们的收费。此外,您可以访问账单门户并更改关联的卡片以进行付款。如果这些方法不起作用并且您需要进一步帮助,请通过 [email protected]
价格由月度或年度订阅决定,具体取决于所选计划。
API 调用根据成功请求从您的计划中扣除。每个计划都包含您每月可以进行的特定数量的调用。只有成功的调用(由状态 200 响应指示)才会计入您的总数。这确保失败或不完整的请求不会影响您的月度配额。
Zyla API Hub 采用月度订阅系统。您的计费周期将从您购买付费计划的那一天开始,并在下个月的同一日期续订。因此,如果您想避免未来的费用,请提前取消订阅。
要升级您当前的订阅计划,只需转到 API 的定价页面并选择您要升级到的计划。升级将立即生效,让您立即享受新计划的功能。请注意,您之前计划中的任何剩余调用都不会转移到新计划,因此在升级时请注意这一点。您将被收取新计划的全部金额。
要检查您本月剩余多少 API 调用,请参考响应标头中的 "X-Zyla-API-Calls-Monthly-Remaining" 字段。例如,如果您的计划允许每月 1,000 个请求,而您已使用 100 个,则响应标头中的此字段将显示 900 个剩余调用。
要查看您的计划允许的最大 API 请求数,请检查 "X-Zyla-RateLimit-Limit" 响应标头。例如,如果您的计划包括每月 1,000 个请求,此标头将显示 1,000。
"X-Zyla-RateLimit-Reset" 标头显示您的速率限制重置之前的秒数。这告诉您何时您的请求计数将重新开始。例如,如果它显示 3,600,则意味着还有 3,600 秒直到限制重置。
是的,您可以随时通过访问您的账户并在账单页面上选择取消选项来取消您的计划。请注意,升级、降级和取消会立即生效。此外,取消后,您将不再有权访问该服务,即使您的配额中还有剩余调用。
为了让您有机会在没有任何承诺的情况下体验我们的 API,我们提供 7 天免费试用,允许您免费进行最多 50 次 API 调用。此试用只能使用一次,因此我们建议将其应用于您最感兴趣的 API。虽然我们的大多数 API 都提供免费试用,但有些可能不提供。试用在 7 天后或您进行了 50 次请求后结束,以先发生者为准。如果您在试用期间达到 50 次请求限制,您需要"开始您的付费计划"以继续发出请求。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。或者,如果您在第 7 天之前不取消订阅,您的免费试用将结束,您的计划将自动计费,授予您访问计划中指定的所有 API 调用的权限。请记住这一点以避免不必要的费用。
7 天后,您将被收取试用期间订阅的计划的全额费用。因此,在试用期结束前取消很重要。因忘记及时取消而提出的退款请求不被接受。
当您订阅 API 免费试用时,您可以进行最多 50 次 API 调用。如果您希望超出此限制进行额外的 API 调用,API 将提示您执行"开始您的付费计划"。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。
付款订单在每月 20 日至 30 日之间处理。如果您在 20 日之前提交请求,您的付款将在此时间范围内处理。
您可以通过我们的聊天渠道联系我们以获得即时帮助。我们始终在线,时间为上午 8 点至下午 5 点(EST)。如果您在该时间之后联系我们,我们将尽快回复您。此外,您可以通过 [email protected]

相关 API


您可能还喜欢