YouTube transcript scraper
$0.002 / video
$2.00 / 1K · pay per delivered video
A YouTube transcript scraper for many videos at once: send up to 50 video ids or URLs and get one row per video with the full transcript as plain text and as timestamped segments, the word count, the caption languages on offer, the chapters, title, channel and length. No YouTube API key or quota, billed per transcript delivered.
$0.002 per delivered video · $2 free every month · Failed runs never billed
What it does
What a YouTube transcript scraper does
Transcripts are how a video becomes text you can search, summarise, quote or embed. The work is rarely one video: it is a channel, a playlist, a list of competitors’ uploads. That is the shape of this collector. Each video comes back as one row, in the language spoken in it, from the creator’s own captions when they exist and from YouTube’s automatic ones otherwise; transcript_source says which. Pass languages to prefer others, in order.
It is the same read as our Video API, measured on 20 October 2026 on three public videos: an 8:23 review in Italian came back from automatic captions, a 12:22 tutorial in English with its 25 chapters, an 18:40 lesson in English with 12 chapters and 31 caption tracks to choose from. The Video API adds frames to one video per call; this collector reads transcripts only, up to 50 videos per run. A video without captions is listed under failed and not billed.
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
videos | string[] | yes | Video ids, or watch, shorts and youtu.be URLs, one per line, up to 50. |
languages | string[] | no | Caption languages to prefer, in order (e.g. en, it). Omit for the spoken language. |
include_without_captions | boolean | no | Deliver (and bill) a row with has_transcript=false for videos that have no captions (default false). |
max_segments | integer | no | Timestamped segments per row (1–5000, default 2000). text always holds the whole transcript. |
max_results | integer | no | How many videos to deliver at most (1–50). You pay only for delivered videos. |
Outputs — 17 fields, one row per video
What one video looks like
Every delivered video carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
video_id | string | 11-char video id. |
url | string | Watch URL. |
title | string | Video title. |
channel | string · nullable | Channel name. |
channel_id | string · nullable | Channel id (UC…). |
duration_seconds | integer · nullable | Length in seconds. |
has_transcript | boolean | True when a transcript was read. |
transcript_source | string · nullable | manual or automatic captions. |
language | string · nullable | Language of the transcript. |
caption_languages | string[] | Caption languages the video offers. |
text | string · nullable | Whole transcript as plain text. |
word_count | integer | Words in text. |
segment_count | integer | Timestamped segments in the transcript. |
segments | object[] | Timestamped segments: start and duration in seconds, text. |
segments_truncated | boolean | True when max_segments cut the segment list (text stays whole). |
chapters | object[] | Author's chapters: start in seconds, title. |
rank | integer | 1-based delivery order. |
Integration
One POST, typed rows
Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/youtube_transcript/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"videos":["dQw4w9WgXcQ"],"max_results":1}'
Example response
$ curl $QD/youtube_transcript/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"videos": ["dQw4w9WgXcQ"], "max_results": 1}'
{ "status": "done", "count": 1,
"results": [
{
"video_id": "…",
"language": "…",
"word_count": "…",
"text": "…" } ],
"cost": 0.002 }
# 1 videos × $0.002 · nothing delivered, nothing charged
Try it
YouTube transcripts, running now
Change the input and run it against the live collector — nothing to install, no sign-up.
Run it from your own code, on your own inputs
Same collector, same rows — $2 of free API credit every month, no card.
Pricing
YouTube Transcript Scraper pricing
$0.002 per delivered video. A run that delivers nothing costs nothing, and the $2 monthly allowance covers about 1,000 videos before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $250 free credit / month
- 1,200 requests / min
- 30% off unit prices
Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.
What people build with the YouTube transcript scraper
Three shapes of work this endpoint was designed around.
Retrieval and RAG
Timestamped segments are ready to chunk and embed, and each one points back to the second of the video it came from, so an answer can cite the moment.
Channel and competitor research
List a channel’s uploads with the YouTube channel scraper API, then pull every transcript in one run: what they talk about, how often, in their own words.
Summaries and repurposing
Plain text plus chapters per video is the input a summary, a blog draft or a newsletter needs, with the word count to size the job before you send it to a model.
YouTube Transcript Scraper versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Access | API key, quota and the owner’s authorisation to download captions | One API key, no YouTube quota |
| Many videos | A loop with retries to write | Up to 50 videos in one run |
| Output | Caption files to convert | Plain text plus timestamped segments and word count |
| Language | Pick a track and hope it exists | Spoken language first, your preference order if you give one |
| Videos without captions | Errors to catch | Listed under failed, never billed |
| Billing | Requests, successful or not | Only delivered transcripts |
Sources and standards
The platform documentation and standards this collector is built against — check any claim on this page against the primary source:
Does it use my YouTube Data API quota?
No. The collector does not call the YouTube Data API, so there is no quota and no Google project to set up, and no authorisation from the video’s owner, which the Data API asks for to download captions. You need only a QuanticData API key.
Can I scrape transcripts in bulk?
Yes. Up to 50 videos go in one run, by id or by watch, shorts or youtu.be URL. To cover a whole channel, list its videos with the YouTube channel scraper API first and pass the ids here.
What if a video has no transcript?
It is listed under failed with the reason and you are not charged for it. If you want a row for those videos anyway, set include_without_captions and each comes back with has_transcript set to false, billed like any other row.
Can I use it from Python or from an AI agent?
From any language that can send an HTTP request: the samples on this page are cURL, Python and Node. It also runs from our MCP server, so an agent in Claude, Cursor or another MCP client can pull transcripts itself.
Is there a free YouTube transcript scraper?
Every account gets $2 of credit every month with no card, which is about 1,000 delivered videos on this endpoint at $0.002 each. It renews monthly, and a run that delivers nothing is never billed.
How much does one run cost?
Multiply the rows you actually receive by $0.002. A run capped at 50 videos — the maximum for this collector — costs $0.1 if every row comes back, and less when the listing has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.
Run the YouTube transcript scraper now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.
