This library allows you to obtain subtitles for a YouTube video through a link or ID without an API key.
it returns Promise, you need to use await
to get the return value.
PARAMETERS | TYPE | OPTIONAL | DESCRIPTION |
---|---|---|---|
url | YoutubeURLResolvable | N |
Get subtitles for the video based on the URL or video ID. |
options | Object | Y |
You can set the subtitle language or have the timing string return. |
If the video ID or URL is not valid, return an empty array.
const urls = [
"https://www.youtube.com/watch?v=_GBw7lBfMkM",
"https://youtu.be/_GBw7lBfMkM",
"_GBw7lBfMkM",
];
for (const url of urls) {
const sub = await getSubtitles(url);
console.log(sub);
// All return the SAME RESULT.
}
[
{
startMs: 30520,
durationMs: 2920,
subtitle: 'At 2 AM at the train crossing,'
},
{
startMs: 33440,
durationMs: 2600,
subtitle: 'I was carrying a telescope.'
},
...
]
const url = "https://www.youtube.com/watch?v=DoDCr--yMNY";
const sub = await getSubtitles(url, { lang: "ko" });
// Return the Korean caption
}
If a language is not specified, the default value is "en".
[
{
startMs: 600,
durationMs: 2800,
subtitle: '달도 지구도 태양도'
},
{
startMs: 3400,
durationMs: 2100,
subtitle: '빼앗아'
},
...
]
const url = "https://youtu.be/ESx_hy1n7HA";
const sub = await getSubtitles(url, { timingString: true });
}
[
...
{
startMs: 125708,
durationMs: 2953,
startTiming: '00:02:25.708',
endTiming: '00:02:28.661',
subtitle: 'Challenging your god'
},
{
startMs: 128661,
durationMs: 2563,
startTiming: '00:02:28.661',
endTiming: '00:02:31.224',
subtitle: 'You have made some'
},
...
]
const url = "DoDCr--yMNY";
const sub = await getSubtitles(url, { lang: "ko", timingString: true });
}
[
{
startMs: 600,
startTiming: '00:00:00.600',
endTiming: '00:00:03.400',
durationMs: 2800,
subtitle: '달도 지구도 태양도'
},
{
startMs: 3400,
startTiming: '00:00:03.400',
endTiming: '00:00:05.500',
durationMs: 2100,
subtitle: '빼앗아'
},
...
]