# YouTube Transcript Scraper — $0.002/video

> YouTube transcript scraper for many videos at once: full text and timestamped segments, language and chapters. No YouTube API quota. $0.002 per transcript.

[Home](https://quanticdata.io/) / [Collectors](https://quanticdata.io/collectors/) / YouTube Transcript Scraper

[All collectors](https://quanticdata.io/collectors/)

# YouTube transcript scraper

Social & communities · v1.0.0 · `youtube_transcript`

$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.

By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData · Published Oct 30, 2026

[Get my free API key](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-hero) · [See the request](https://quanticdata.io/collectors/youtube-transcript-scraper/#integration)

$0.002 per delivered video · $2 free every month · Failed runs never billed

On this page:

- [Try it](https://quanticdata.io/collectors/youtube-transcript-scraper/#try)
- [What it is](https://quanticdata.io/collectors/youtube-transcript-scraper/#what)
- [Limits](https://quanticdata.io/collectors/youtube-transcript-scraper/#caps)
- [Output fields](https://quanticdata.io/collectors/youtube-transcript-scraper/#output)
- [Inputs](https://quanticdata.io/collectors/youtube-transcript-scraper/#input)
- [Pricing](https://quanticdata.io/collectors/youtube-transcript-scraper/#pricing)
- [Integration](https://quanticdata.io/collectors/youtube-transcript-scraper/#integration)
- [Use cases](https://quanticdata.io/collectors/youtube-transcript-scraper/#use-cases)
- [Versus the alternatives](https://quanticdata.io/collectors/youtube-transcript-scraper/#compare)
- [FAQ](https://quanticdata.io/collectors/youtube-transcript-scraper/#faq)

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](https://quanticdata.io/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/scraper/collectors/youtube_transcript/run`.

cURL:

```bash
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}'
```

Python:

```python
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/youtube_transcript/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "videos": ["dQw4w9WgXcQ"],
        "max_results": 1
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

Node.js:

```javascript
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/youtube_transcript/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"videos":["dQw4w9WgXcQ"],"max_results":1}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

MCP:

```bash
claude mcp add quanticdata \
  -e QUANTICDATA_API_KEY=qd_live_your_key_here \
  -- npx -y quanticdata-mcp

# then, in the chat:
> run the youtube_transcript collector with videos=["dQw4w9WgXcQ"]
```

Example response

POST /v1/scraper/collectors/youtube_transcript/run

```bash
$ 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
```

Price

## Limits, in plain numbers

Everything that bounds one run of this collector. No hidden throttles.

Max per run

50 videos

Price

$0.002 / video

Per 1,000

$2.00

Failed runs

Free zero rows, zero charge

Free every month

$2 no card

Rate limit

60 req/min on the free tier

Changelog

- `v1.0.0` 2026-10-30 Initial release

  Transcript of each YouTube video as plain text and timestamped segments, with language and chapters.

Every run records the collector version it ran on. Breaking output changes bump the major version.

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.

[Get my free API key](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-closing)

![YouTube transcript scraper: from videos, QuanticData reads the YouTube transcript scraper page and returns one row per video with title, channel and duration_seconds, at $0.002 per delivered video.](https://quanticdata.io/collectors/youtube-transcript-scraper/diagram.webp?v=20261002s)

*You send YouTube videos; each comes back as one row with video id, language and word count, plus the full text and timed segments — 17 fields on every row — and you are billed $0.002 for each transcript actually delivered, nothing for a video without captions.*

**$0.002 / video** · 1,000 videos on the free $2 every month

**Semantic input** · videos, languages, include_without_captions — no URL lists

**Up to 50** videos per run, pagination handled for you

**17 fields** · one row per video

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.

**$0.002** per delivered video · *$2.00 per 1,000 delivered videos*

**1,000 videos** · on the free allowance · *$2 every month, no card*

**Zero rows** · zero charge · *a run that delivers nothing is free*

**−30%** on volume tiers · *the catalog returns your key's price*

- [Pay as you go](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-tier-1): $0/mo · $2 free credit / month · 60 requests / min · List unit prices
- [Starter](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-tier-2): $19/mo · $15 free credit / month · 300 requests / min · 10% off unit prices
- [Growth](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-tier-3): Most popular · $79/mo · $50 free credit / month · 600 requests / min · 20% off unit prices
- [Scale](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-tier-4): $299/mo · $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](https://quanticdata.io/web-data-api-for-ai/). 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](https://quanticdata.io/collectors/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 |

![YouTube transcript scraper: the POST to the youtube_transcript collector, 1 video delivered and the bill, 1 × $0.002 = $0.002 in usage.cost_usd; zero videos would cost $0.](https://quanticdata.io/collectors/youtube-transcript-scraper/diagram2.webp?v=20261002s)

*The same call you would paste into a terminal: a Bearer key, the videos in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many transcripts arrived and usage.cost_usd is $0.002, which is 1 × $0.002. A run that delivers nothing costs nothing.*

## Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

- [YouTube Data API v3: Captions](https://developers.google.com/youtube/v3/docs/captions)
- [YouTube Terms of Service](https://www.youtube.com/t/terms)
- [IETF: RFC 5646, tags for identifying languages](https://www.rfc-editor.org/rfc/rfc5646.html)

## FAQ

Questions we get about the YouTube transcript scraper.

[Something else? Ask us](https://quanticdata.io/collectors/youtube-transcript-scraper/#ask)

### 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`.

[Get my free API key](https://app.quanticdata.io/register?utm_source=collector-page&utm_medium=website&utm_campaign=data-api&utm_content=youtube-transcript-scraper-cta-3)

![Illustration: three coloured zones of the page that is read (YouTube transcript scraper page) turn into clean JSON with the fields title, channel and duration_seconds; 17 fields on every row.](https://quanticdata.io/collectors/youtube-transcript-scraper/hero.webp?v=20261003c1)

Related:

- [All 100+ collectors](https://quanticdata.io/collectors/)
- [YouTube video data API](https://quanticdata.io/collectors/youtube-video-data-api/)
- [YouTube channel scraper API](https://quanticdata.io/collectors/youtube-channel-scraper-api/)
- [YouTube scraper API](https://quanticdata.io/collectors/youtube-scraper-api/)
- [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/youtube-transcript-scraper/ · Site index for AI: https://quanticdata.io/llms.txt
