YouTube Transcript Scraper — Captions + AI ASR Fallback
Pricing
from $1.50 / 1,000 successful transcripts
YouTube Transcript Scraper — Captions + AI ASR Fallback
Extract transcripts from any YouTube video, Shorts, or playlist as LLM-ready JSON with timestamps, language info, and title. Get plain text plus SRT/VTT subtitles. Caption-less videos are transcribed with GPU AI instead of failing. Pay only for delivered transcripts.
Pricing
from $1.50 / 1,000 successful transcripts
Rating
0.0
(0)
Developer
lexiie
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
YouTube Transcript API — Captions + AI ASR Fallback
Give the Actor a YouTube video or playlist and get machine-readable transcripts back: plain text, timestamped segments, and SRT/VTT subtitles. When a video has no captions, the Actor falls back to GPU AI transcription instead of failing — so you never get an empty result.
What can it do?
| 📦 What you get | ⚙️ Features |
|---|---|
| 📝 Plain-text transcript of any public video | 🎬 Video + playlist inputs (playlist expands to per-video items) |
⏱️ Timestamped segments (text/start/duration) | 🌍 Language selection + fallback chain (en → id → ja → any) |
| 📄 SRT + WebVTT subtitle contents | 🌐 Auto-translate via YouTube (free, optional targetLanguage) |
| 🤖 AI transcripts for caption-less videos | 🛡️ Partial failure — one bad video never kills the run |
| 📊 Structured JSON ready for LLMs & RAG | 🔁 Retry + proxy rotation with machine-readable error codes |
Typical uses: RAG pipelines, research, content analysis, dataset generation, search indexing, and repurposing video into articles or shorts scripts.
What data do I get per video?
One dataset item per video. Successful items carry the transcript in 4 formats at once; failed videos carry a structured error and cost nothing.
Success sample
{"status": "success","videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","language": "en","requestedLanguage": "en","transcriptType": "MANUAL","text": "We're no strangers to love...","segments": [{ "text": "We're no strangers to love", "start": 18.64, "duration": 3.24 }],"srt": "1\n00:00:18,640 --> 00:00:21,880\nWe're no strangers to love\n","vtt": "WEBVTT\n\n00:00:18.640 --> 00:00:21.880\nWe're no strangers to love\n"}
transcriptType tells you which engine produced it: MANUAL / AUTO_GENERATED
(YouTube captions) or ASR_GENERATED (GPU fallback). error.path on failures
tells you the same: "caption" or "asr".
Failed sample (always free)
{"status": "failed","videoId": "abc123","url": "https://www.youtube.com/watch?v=abc123","error": { "code": "TRANSCRIPT_NOT_AVAILABLE", "message": "...", "path": "asr" }}
How much does it cost?
Pay-per-event — you pay per successful transcript, never for failures, and never per minute of video. A 5-minute video and a 2-hour video cost the same flat AI price, unlike per-minute STT APIs that bill $0.12–$4.00 per audio hour.
| Event | FREE | BRONZE (Starter) | SILVER (Scale) | GOLD (Business) |
|---|---|---|---|---|
successful-transcript (captions) | $0.003 ($3/1K) | $0.0025 ($2.5/1K) | $0.002 ($2/1K) | $0.0015 ($1.5/1K) |
successful-transcript-asr (AI fallback) | $0.10 | $0.09 | $0.08 | $0.07 |
Example: on the Free plan's $5 monthly credits you can extract ≈1,600 caption transcripts; an ASR fallback costs a flat $0.10 whatever the video length (up to 2h). See the Pricing tab for your plan's exact rates.
How do I use it?
- Create a free Apify account.
- Open YouTube Transcript API in Apify Console.
- Paste one or more YouTube URLs (video, Shorts, or playlist).
- Pick
language(e.g.en) and optionalfallbackLanguages(e.g.id). - Click Save & Start.
- Download the dataset as JSON/CSV/Excel, or pull it via API/MCP.
Input
| Paste this URL | What happens |
|---|---|
youtube.com/watch?v=ID | Single video transcript |
youtu.be/ID, .../shorts/ID, .../embed/ID | Single video transcript |
youtube.com/playlist?list=ID | One item per video, with playlistId + videoIndex |
watch?v=ID&list=PLAYLIST | Single video — unless expandWatchPlaylist: true, then the whole playlist |
{"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"language": "en","fallbackLanguages": ["id"],"targetLanguage": "","includeTimestamps": true,"expandWatchPlaylist": false,"enableAsrFallback": false}
targetLanguage(e.g."id"): auto-translate via YouTube, free. If translation fails the original is kept (translationStatus: failed).enableAsrFallback: true: transcribe via GPU AI when captions are missing (slower, billed assuccessful-transcript-asr). Off by default.- Limits: max 100 videos/run, max 2h per video for ASR, max 10 ASR jobs/run.
Output views
The Output tab has 3 views: Overview (one row per video), Segments (timestamped captions), and Subtitles (SRT/VTT contents).
Use-case recipes
- RAG over videos: playlist URL → per-video
text+segments→ chunk by segment timestamps → embed. Re-run weekly for channels; new videos append. - Content repurposing: single video →
text→ LLM article/thread script;srtdoubles as upload-ready subtitles for reposted clips. - Research corpus: 100 URLs/run →
language+transcriptTypecolumns let you filter manual vs auto captions before analysis.
FAQ
What if a video has no captions?
With enableAsrFallback: false (default) you get a structured
TRANSCRIPT_NOT_AVAILABLE failure, free. With true, GPU AI transcribes it
(ASR_GENERATED), flat price regardless of duration.
Am I charged for failed videos? Never — private, removed, caption-less (without fallback), or over-limit videos cost $0.
How long does a run take? Caption transcripts take seconds per video (3 concurrent workers). Each ASR fallback takes minutes (GPU job); caption results stream into the dataset first, ASR results follow.
Does it download video or audio? The caption path downloads nothing but caption text. The ASR fallback processes audio on ephemeral GPU workers; no media is stored.