YouTube Transcript Extractor avatar

YouTube Transcript Extractor

Pricing

from $10.00 / 1,000 results

Go to Apify Store
YouTube Transcript Extractor

YouTube Transcript Extractor

🎬 Convert any YouTube video to text. Extract transcripts, subtitles, and captions from videos, Shorts, and live streams. Get timestamped segments or full text in JSON, SRT, or plain text. Auto-captions speech-to-text fallback. 14+ languages. No login needed.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Zero Downtime

Zero Downtime

Maintained by Community

Actor stats

0

Bookmarked

46

Total users

5

Monthly active users

a day ago

Last modified

Share

Extract transcripts from any YouTube video, Short, or live stream. Paste a URL, get back timestamped text -- ready for repurposing, analysis, or translation.

Works with any public video. No login required.

What it does

  1. You provide a YouTube video URL.
  2. The actor extracts the transcript.
  3. You get back structured text with timestamps -- in JSON, plain text, SRT, or VTT.

Key features

  • Multi-language -- supports any language YouTube provides captions for. See supported languages for speech-to-text fallback.
  • 4 output formats -- JSON with timestamps, plain text, SRT subtitles, or WebVTT.
  • Video metadata -- title, duration, detected language, and which operator extracted it.
  • Shorts & live streams -- works with standard videos, Shorts, and completed live streams.
  • Fast on repeat lookups -- recently extracted videos return from cache in milliseconds.
  • No login required.

Supported languages

When captions are available, the actor supports any language YouTube provides. When captions aren't available, the speech-to-text fallback supports:

CodeLanguage
enEnglish
esSpanish
frFrench
deGerman
ptPortuguese
itItalian
nlDutch
jaJapanese
koKorean
zhChinese
arArabic
ruRussian
trTurkish
hiHindi

Input

FieldTypeDefaultDescription
urlstring(required)YouTube video URL
languagestring"en"Preferred language (ISO 639-1)
formatstring"json""json", "text", "srt", or "vtt"

Supported URLs

https://www.youtube.com/watch?v=VIDEO_ID
https://youtu.be/VIDEO_ID
https://www.youtube.com/shorts/VIDEO_ID
https://www.youtube.com/live/VIDEO_ID
https://m.youtube.com/watch?v=VIDEO_ID

Output example

When format is json, the dataset row looks like this:

{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"platform": "youtube",
"video_id": "dQw4w9WgXcQ",
"source": "live",
"metadata": {
"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"duration_sec": 212,
"extracted_via": "youtube_captions"
},
"transcript": {
"language": "en",
"segments": [
{ "start": 0.0, "end": 3.5, "text": "We're no strangers to love" },
{ "start": 3.5, "end": 7.2, "text": "You know the rules and so do I" }
],
"full_text": "We're no strangers to love You know the rules and so do I ..."
}
}

When format is text, srt, or vtt, the formatted transcript is written to the actor's key-value store under the OUTPUT key.

source indicates freshness: live (fresh pipeline run), warm (recent cache hit), cold (older cache rehydrate).

When extraction fails, you get a clear error in the dataset:

{
"error": "NotAvailable",
"message": "No transcript available for this video."
}

Error codes

CodeMeaning
InvalidURLNot a valid YouTube URL
UnsupportedPlatformURL host is not a supported platform
NotAvailableVideo is private, removed, or has no extractable transcript
RateLimitedToo many requests -- retry after a short delay
TIMEOUTExtraction took longer than the actor's poll budget
INTERNAL_ERRORUnexpected error during extraction

Use cases

  • Content repurposing -- turn YouTube videos into blog posts, articles, or social media content.
  • Accessibility -- generate transcripts for hearing-impaired audiences.
  • Research & analysis -- build datasets of video content for market research.
  • SEO -- extract text content from videos for search engine optimization.
  • Translation -- get transcripts as a starting point for multilingual subtitles.
  • Education -- create study materials from lecture videos.

Integrations

Use this actor with the Apify API or connect it to your workflow:

  • Python -- apify_client.actor("your-actor-id").call(run_input={"url": "..."})
  • JavaScript -- await client.actor("your-actor-id").call({url: "..."})
  • Zapier / Make / n8n -- trigger on new videos and get transcripts automatically.
  • Webhooks -- get notified when a transcript is ready.

FAQ

Does this need a YouTube account? No. Works with any public video, no login needed.

What if a video has no subtitles? The actor will still extract a transcript using speech-to-text.

Does it work with YouTube Shorts? Yes. Shorts URLs (youtube.com/shorts/VIDEO_ID) are fully supported.

Does it work with live streams? Yes, for completed live streams with replay available.

Which languages work? Any language YouTube provides captions for. See the supported languages table for speech-to-text fallback.

Can I process multiple videos? Yes. Call the actor via the Apify API or use integrations (Zapier, Make, n8n) to process videos in a loop.

What does it cost? The actor runs on the Apify platform. Cost depends on video length and processing needed.