A TypeScript implementation for fetching YouTube video transcripts.
bun add fast-xml-parser undiciimport { YouTubeTranscriptApi } from "./src/index";
const api = new YouTubeTranscriptApi();
// fetch transcript - accepts any YouTube URL format or video ID
const transcript = await api.fetch("https://www.youtube.com/watch?v=cIyiDDts0lo");
// or
const transcript = await api.fetch("cIyiDDts0lo");
console.log(transcript.snippets); // array of transcript snippets
console.log(transcript.language); // "English (auto-generated)"
console.log(transcript.languageCode); // "en"
// list available transcripts
const list = await api.list("cIyiDDts0lo");
const englishTranscript = list.findTranscript(["en"]);
// translate transcript
const spanishTranscript = englishTranscript.translate("es");
const spanishSnippets = await spanishTranscript.fetch();Fetches transcript for a video. Accepts any YouTube URL format or video ID.
input: YouTube URL or video IDoptions.languages: Array of language codes (default:["en"])options.preserveFormatting: Preserve HTML formatting (default:false)
Returns: TranscriptData with snippets, videoId, language, languageCode, isGenerated
Lists all available transcripts for a video.
Returns: TranscriptList with methods to find transcripts by language.
Gets metadata about all available transcripts.
Returns: Array of transcript metadata objects.