YouTube Transcript Scraper: Captions to Text & JSON
Pricing
from $1.58 / 1,000 transcripts
YouTube Transcript Scraper: Captions to Text & JSON
YouTube transcript scraper for researchers, creators and developers. Get captions as clean text or timestamped JSON from any video link, in your chosen language, with auto vs manual captions flagged. $0.0019 per transcript.
Pricing
from $1.58 / 1,000 transcripts
Rating
0.0
(0)
Developer
Ben Harmon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Share
🎬 YouTube Transcript Scraper: captions to text & JSON
Turn any YouTube video into clean, timestamped text. Paste video links or IDs, get the full transcript plus every caption segment with start times, ready for AI, search, notes or content repurposing.
✅ Last verified working: 2026-10-22 (automated daily test run)
You only pay for transcripts you receive: $0.0019 per transcript. Videos without captions and bad links are free.
✨ What you get
- 📝 Full transcript as one clean block of text
- ⏱️ Timestamped segments (start and duration in seconds) for every caption line
- 🌍 Language choice: pick a language; available caption languages are listed for every video
- 🏷️ Video details: title, channel name, channel ID, duration
- 🤖 Manual vs. auto-generated captions clearly flagged
- 🔗 Any link format:
watch?v=,youtu.be/,/shorts/,/embed/, or a plain 11-character ID - 🛡️ Built-in residential proxies: nothing to configure
- ✅ One row per video, always: problems come back as a readable
error, never a crashed run
Use with AI agents (MCP)
This Actor works with the Apify MCP server, so Claude, ChatGPT, Cursor and other MCP clients can find it with the search-actors tool and run it with call-actor. To load it directly as a tool, connect to https://mcp.apify.com?tools=benuelh/youtube-transcripts.
Smallest working input:
{"videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"language": "en","includeTimestamps": true}
Each result row has: videoId, title, channelName, durationSeconds, language, isAutoGenerated, segmentCount, transcript (plus error, set only when an item could not be processed).
Price: $0.0019 per transcript. One video transcript delivered. Videos without captions, unavailable videos and invalid links are free. Agents using Apify agentic payments can run it without an Apify account.
💡 Popular uses
- AI & RAG pipelines: feed transcripts into LLMs, embeddings and knowledge bases
- Content repurposing: turn videos into blog posts, newsletters, threads and show notes
- Research & analysis: search, quote and analyze what was said across many videos
- Accessibility & SEO: publish text versions of video content
- AI agents: strict input/output schema and limited permissions, so agents can find and run it directly
⚙️ Input
| Field | What it does | Default |
|---|---|---|
videos | YouTube links or video IDs (required) | |
language | Preferred caption language code, e.g. en, es, de | en |
includeTimestamps | Include the timestamped segments array | true |
proxyGroups | Proxy groups used for YouTube requests | RESIDENTIAL |
{"videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw","https://youtu.be/dQw4w9WgXcQ"],"language": "en","includeTimestamps": true}
📦 Output
One item per video:
{"videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","title": "Me at the zoo","channelName": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","durationSeconds": 19,"language": "en","isAutoGenerated": false,"availableLanguages": ["en", "de"],"segmentCount": 6,"transcript": "All right, so here we are, in front of the elephants ...","segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }],"error": null}
Download results as JSON, CSV, Excel or XML, or pull them through the Apify API.
💰 Pricing
$0.0019 per transcript delivered. 1,000 transcripts cost $4. You are never charged for videos without captions, private or unavailable videos, or invalid links.
❓ FAQ
What if my language isn't available?
You get the best available track (manual captions first), and language tells you which one was used. availableLanguages lists every option for that video.
Does it work with auto-generated captions?
Yes. isAutoGenerated tells you whether captions were uploaded by the creator or generated by YouTube.
Why did a video return an error?
The video has no captions, is private, age-restricted, removed, or the link is invalid. The error field says which.
Do I need my own proxies or a YouTube account? No. Residential proxies are included and no login is used. Only publicly available captions are fetched.
Is long-form content supported? Yes, from Shorts to multi-hour podcasts and lectures.