YouTube Transcript Scraper
Pricing
from $8.00 / 1,000 transcripts
YouTube Transcript Scraper
Extract full transcripts from YouTube videos with timestamps: subtitles, auto-captions, any language. Batch multiple videos per run, language preference with smart fallback, plain-text output ready for AI and LLM pipelines. No browser. Pay per result - only successful transcripts are charged.
Pricing
from $8.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
electra bot
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Extract the full transcript of any YouTube video — with timestamps, in your preferred language, as clean plain text ready for AI pipelines — and download the results as JSON, CSV, or Excel.
Paste one video or a whole list. No code required, no browser under the hood.
Pay per result — you're only charged for transcripts actually delivered, never for failed videos or empty runs.
What can I use it for?
- AI & LLM pipelines — the
transcriptfield is one clean plain-text string, ready for RAG, summarization, embeddings, or fine-tuning datasets. - Content research — analyze what competitors or creators say across many videos at once.
- Subtitles & accessibility — timed segments with second-precision start/duration.
- SEO & content repurposing — turn videos into articles, quotes, and show notes.
- Media monitoring — track mentions of brands or topics inside video content.
Input
| Field | Required | Description |
|---|---|---|
| Video URLs | ✅ | One or more videos: watch URLs, youtu.be links, /shorts/, /embed/, /live/, or bare 11-character video IDs. Each video = one result. |
| Preferred language | – | Language code (en, de, es, pt-BR…). Falls back to English, then the first available track. Manually created subtitles are preferred over auto-generated ones. |
| Proxy configuration | – | Automatic by default: starts on a cheap datacenter proxy and escalates to RESIDENTIAL only if YouTube blocks it — you get reliability without paying residential rates for every request. Pin explicit groups to override. |
videoUrl / videoCode single-video fields are also supported (backward compatible).
Output
One dataset record per video. Example (shortened):
{"videoId": "jNQXAC9IVRw","videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw","title": "Me at the zoo","author": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","lengthSeconds": 19,"viewCount": 398776873,"language": "English","languageCode": "en","isAutoGenerated": false,"availableLanguages": ["de", "en"],"transcript": "All right, so here we are, in front of the elephants ...","segmentCount": 6,"segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }]}
| Field | Description |
|---|---|
transcript | Full transcript as one plain-text string — feed it straight to an LLM |
segments | Timed segments: start (s), duration (s), text |
language / languageCode | The transcript's language |
isAutoGenerated | true for auto-generated (ASR) captions, false for human-created subtitles |
availableLanguages | Every caption language the video offers |
title / author / channelId / lengthSeconds / viewCount | Video metadata |
Why this scraper is reliable
- No browser — pure HTTP built on a battle-tested extraction engine that tracks YouTube's changes. Fast cold starts, low cost, fewer moving parts to break.
- Smart language fallback — your preferred language → English → first available; human subtitles beat auto-captions at every step.
- Honest run statuses — a run only says Succeeded when every requested video delivered. Partial results are labeled
PARTIAL:with per-video reasons in theSUMMARY; a run with zero transcripts is marked Failed, never a silent empty dataset. - Batch-safe — transcripts are saved incrementally and runs are checkpointed: an interruption never loses finished work or double-charges you.
- Block-aware with automatic escalation — if YouTube blocks the datacenter proxy, the scraper instantly retries through a residential proxy. If even that is blocked, the run stops, reports honestly, and a resurrected run resumes from the checkpoint without re-charging.
Tips & limits
- Works with public videos that have captions (manual or auto-generated). Private, age-restricted, or caption-less videos are reported per video in the
SUMMARY— they don't fail the whole batch and are never charged. - Live streams get transcripts only after the stream ends and captions are processed.
- Keep the proxy on for reliable results — YouTube blocks direct cloud connections. The default auto-tiering handles it for you.
Use it from code
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("electrabot.info/youtube-transcript-scraper").call(run_input={"videoUrls": ["dQw4w9WgXcQ", "jNQXAC9IVRw"], "language": "en"})docs = [item["transcript"] for item in client.dataset(run["defaultDatasetId"]).iterate_items()]
LangChain / LlamaIndex: both ship Apify loaders — point them at this actor
and map transcript to your document text:
from langchain_community.document_loaders import ApifyDatasetLoaderfrom langchain_core.documents import Documentloader = ApifyDatasetLoader(dataset_id=run["defaultDatasetId"],dataset_mapping_function=lambda item: Document(page_content=item["transcript"],metadata={"title": item["title"], "url": item["videoUrl"]},),)
n8n / Make / Zapier: call the actor via one HTTP node —
POST https://api.apify.com/v2/acts/electrabot.info~youtube-transcript-scraper/run-sync-get-dataset-items?token=...
returns the transcripts directly as the response body.
FAQ
Does it translate transcripts? No — it fetches the original caption tracks. Pick which one via the language preference.
Can it scrape a whole channel or playlist? This actor takes video URLs/IDs. Feed it a list (from any channel-scraper's output) — each video is one result.
Why did a video fail?
Check the run's SUMMARY record — every failed video is listed with a reason (no captions, unavailable, age-restricted…). You are not charged for failed videos.
Is scraping transcripts legal? This actor only accesses publicly available caption data. You are responsible for complying with applicable laws and YouTube's Terms of Service.
Disclaimer
This is an unofficial tool. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to YouTube or Google LLC. "YouTube" and all related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only.
This actor only accesses publicly available information. You are responsible for ensuring your use complies with applicable laws, YouTube's Terms of Service, and any applicable robots and rate-limiting rules. Use it ethically and at your own risk.