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.