YouTube Transcript Scraper
Timestamped captions to JSON — no API key, no login
What it does
Fetch timestamped YouTube transcripts and captions as clean JSON without any API key or Google login. Supports any URL form: watch links, youtu.be, Shorts, and bare video IDs. Returns segments with start time and duration, a fullText string for RAG ingestion, and character count. Works as an MCP server in Claude, ChatGPT and any AI agent.
Built in
- ✓ No API key or login required
- ✓ Timestamped segments with start + duration
- ✓ fullText field ready for RAG and LLMs
- ✓ Prefers manual captions, falls back to auto-generated
- ✓ Works with any YouTube URL format including Shorts
Common questions
How does it get transcripts without the YouTube API? +
YouTube embeds caption track metadata in the watch page HTML inside the ytInitialPlayerResponse object. The actor extracts the timedtext endpoint URL from that response and fetches the caption XML directly — no API key or quota needed.
What happens if a video has no captions? +
The actor returns status "no-captions" for that video. You are not charged for videos without captions — only for transcripts actually delivered.
Does it work with auto-generated (ASR) captions? +
Yes. When no manual transcript is available it falls back to the auto-generated track. The isAutoGenerated field in the output tells you which was used.
What language is returned? +
The actor picks the track that best matches your preferred language. It tries an exact match first, then a language-prefix match (e.g. "en" matches "en-US"), then the video's default audio language, then the first available track.
Try it on Apify.
Pay only for results delivered. No credit card required to sign up.