๐Ÿ“ YouTube Transcript Scraper - Captions to Text avatar

๐Ÿ“ YouTube Transcript Scraper - Captions to Text

Pricing

from $3.00 / 1,000 results

Go to Apify Store
๐Ÿ“ YouTube Transcript Scraper - Captions to Text

๐Ÿ“ YouTube Transcript Scraper - Captions to Text

Extract transcripts from any YouTube video with captions. Supports 100+ languages, auto-generated captions, and translation. Output as plain text, SRT, VTT, or JSON with timestamps. Includes video metadata (title, channel, views). Perfect for content repurposing and AI training.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

ben

ben

Maintained by Community

Actor stats

0

Bookmarked

142

Total users

5

Monthly active users

13 days ago

Last modified

Share

๐Ÿ“ YouTube Transcript Scraper โ€” Captions & Subtitles as Clean Text

Extract transcripts, captions and subtitles from any YouTube video as clean, structured data โ€” full text plus timestamped segments, the detected language, and basic video info. It pulls both manually-uploaded and YouTube's auto-generated captions, in 100+ languages, with no API key and no headless browser. Feed the text straight into an LLM, a blog post, a search index or a notes app. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

๐Ÿ“บ What is the YouTube Transcript Scraper?

It turns any YouTube video into a usable transcript. Give it one or many video URLs (or raw video IDs) and it returns the full spoken text, every caption segment with its start time and duration, the language, and whether the captions were auto-generated โ€” so creators, researchers and AI builders can get readable, machine-friendly text without watching the video or wrestling with YouTube's caption API.

What data does it extract?

  • full_text โ€” the complete transcript as one continuous string
  • segments โ€” every caption line as { text, start, duration } for timestamping
  • segment_count and word_count โ€” quick size metrics
  • language โ€” the detected transcript language code (e.g. en, es, de)
  • is_generated โ€” true when using YouTube's auto-generated captions
  • title โ€” the video title (fetched via the lightweight oEmbed endpoint)
  • video_id and video_url โ€” normalized identifiers for each video
  • transcript_available โ€” false (with an error) when a video has no captions

โฌ‡๏ธ Input

Pass a list of videos and (optionally) your preferred languages:

FieldDescription
videoUrlsList of YouTube video URLs or 11-char video IDs (required)
preferredLanguagesLanguage codes in order of preference, e.g. ["en", "es"] โ€” the first available is used
includeAutoGeneratedFall back to YouTube's auto-generated captions when no manual captions exist (default true)
outputFormattext, timestamped, srt, vtt or json
includeVideoMetadataFetch the video title alongside the transcript (default true)
translateToTranslate the transcript to this language code (leave empty for original)
maxVideosCap how many videos to process (0 = unlimited)

Accepted URL formats: https://www.youtube.com/watch?v=ID, https://youtu.be/ID, https://www.youtube.com/embed/ID, https://www.youtube.com/shorts/ID, or a bare 11-character ID.

Example input

{
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://youtu.be/jNQXAC9IVRw",
"dQw4w9WgXcQ"
],
"preferredLanguages": ["en", "en-US"],
"includeAutoGenerated": true,
"outputFormat": "text",
"maxVideos": 0
}

โฌ†๏ธ Output

Every video is one clean row (view as a table, or export JSON / CSV / Excel):

{
"video_id": "dQw4w9WgXcQ",
"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"language": "en",
"is_generated": false,
"transcript_available": true,
"segments": [
{ "text": "We're no strangers to love", "start": 18.64, "duration": 3.12 },
{ "text": "You know the rules and so do I", "start": 21.76, "duration": 3.0 }
],
"segment_count": 87,
"full_text": "We're no strangers to love You know the rules and so do I...",
"word_count": 423,
"scraped_at": "2026-06-26T15:30:00.000000+00:00"
}

When a video has no captions, the row sets "transcript_available": false and includes a short error message instead of crashing the run.

๐Ÿ’ก Use cases

  • โœ๏ธ Content repurposing: turn videos into blog posts, newsletters, threads and show notes.
  • ๐Ÿค– AI & RAG pipelines: build clean text datasets to summarize, embed or fine-tune on.
  • ๐Ÿ” Search & SEO: index spoken content so videos are findable by what's actually said.
  • โ™ฟ Accessibility & notes: generate readable captions and quick study notes from lectures.

โ“ FAQ

How do I get the transcript of a YouTube video? Paste one or more video URLs (or IDs) into videoUrls and Run. You get the full text, timestamped segments, the language and basic video info for each one.

Do I need an API key or login? No. It reads publicly available captions โ€” just provide the video URLs.

Does it work with auto-generated captions? Yes. If a video has no manually-uploaded captions, it falls back to YouTube's auto-generated ones (is_generated tells you which was used). Set includeAutoGenerated to control this.

What languages are supported? 100+ โ€” anything YouTube has captions for. Use preferredLanguages to set the order you want (e.g. ["en", "es", "fr"]); the first available transcript is returned.

Can I get timestamps or SRT/VTT subtitles? Yes. Every row includes a segments array with start and duration per line, and you can request srt, vtt, timestamped or json via outputFormat.

Can I scrape transcripts in bulk? Yes โ€” pass as many URLs as you like in one run and use maxVideos to cap the batch. Failed videos are recorded, not skipped silently.

What happens if a video has no captions? The video is still returned with transcript_available: false and an error note, so one bad video never breaks the run.

Does it work with Shorts and youtu.be links? Yes โ€” watch, youtu.be, embed, shorts and bare 11-character IDs are all accepted.

Can I run it on a schedule or via API? Yes โ€” schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.

Is scraping YouTube transcripts legal? It extracts publicly available caption data. Use it responsibly for research, accessibility and content work, and follow applicable laws and YouTube's terms.

๐Ÿ”— You might also like


Keywords: YouTube transcript scraper, YouTube captions scraper, YouTube subtitles, get YouTube transcript, video to text, YouTube subtitle downloader, SRT VTT export, auto-generated captions, transcript API, YouTube transcript API, video transcription, AI training data, content repurposing, YouTube Shorts transcript, multilingual transcripts.