# YouTube video data API — $0.001 per video

> YouTube video data API: Full metadata per video id — exact views and likes, length. $0.001 per delivered video, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*YouTube video data API*

# YouTube video data API

A YouTube video data API that returns one row per video from the watch page itself: title, channel with its id and URL, the exact view and like counts, length in seconds, publish and upload dates, category, keywords, description, thumbnail, the live flag and which caption languages the video carries. Pass video ids or watch, Shorts or youtu.be URLs — up to twenty at a time.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/youtube-video-data-api/#integration)

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

POST /v1/scraper/collectors/youtube_video/run

```
$ curl $QD/youtube_video/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"videos": ["dQw4w9WgXcQ"], "max_results": 1}'
{ "status": "done", "count": 1,
  "results": [
    {
      "video_id": "…",
      "url": "…",
      "title": "…",
      "channel": "…" } ],
  "cost": 0.001 }
# 1 video × $0.001 · nothing delivered, nothing charged
```

**$0.001 / video**2,000 videos on the free $2 every month

**Semantic input**videos, country, max_results — no URL lists

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

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/youtube-video-data-api/#what) [Output fields](/collectors/youtube-video-data-api/#output) [Inputs](/collectors/youtube-video-data-api/#input) [Pricing](/collectors/youtube-video-data-api/#pricing) [Integration](/collectors/youtube-video-data-api/#integration) [Use cases](/collectors/youtube-video-data-api/#use-cases) [Versus the alternatives](/collectors/youtube-video-data-api/#compare) [FAQ](/collectors/youtube-video-data-api/#faq)

## What a YouTube video data API does

The public watch page shows you "1.2M views"; the number underneath it is exact, and so is the like count. This collector reads the player payload the page ships with and returns those exact integers, along with the channel id, the category, the keyword tags and the list of caption languages — the structured record most people reach for the YouTube Data API to get.

The difference is the quota. The Data API meters every call against a daily unit budget that a few thousand videos will exhaust; this reads the page directly, so there is no key to register and no quota to ration — you size a run by how many videos you pass, not by how many units you have left. Videos that are private or removed come back under `failed` and are never billed.

Input is meaning, not a URL *videos* *country* *max_results*

## 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 | Canonical watch URL. |
| `title` | string | Video title. |
| `channel` | string · nullable | Channel name. |
| `channel_id` | string · nullable | Channel id (UC…). |
| `channel_url` | string · nullable | Channel URL. |
| `views` | integer · nullable | Exact view count. |
| `likes` | integer · nullable | Exact like count (when public). |
| `length_seconds` | integer · nullable | Duration in seconds. |
| `publish_date` | string · nullable | Publish date. |
| `upload_date` | string · nullable | Upload date. |
| `category` | string · nullable | YouTube category. |
| `keywords` | string[] | Video keywords/tags. |
| `description` | string · nullable | Description (first 1500 chars). |
| `thumbnail` | string · nullable | Largest thumbnail URL. |
| `is_live` | boolean | Live content flag. |
| `family_safe` | boolean | Family-safe flag. |
| `captions_available` | boolean | Whether captions exist. |
| `caption_languages` | string[] | Caption language codes. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `videos` | array | yes | Video ids or watch/shorts/youtu.be URLs. |
| `country` | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
| `max_results` | integer | no | How many videos to deliver at most (1–20). You pay only for delivered videos. |

Pricing

## YouTube video data API pricing

$0.001 per delivered video. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 videos before you spend anything.

**$0.001**per delivered video*$0.8 per 1,000 delivered videos*

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

**Zero rows**zero charge*blocks, captchas and retries are on us*

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

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

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

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_video/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/youtube_video/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"videos":["dQw4w9WgXcQ"],"max_results":1}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/youtube_video/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)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/youtube_video/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);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the youtube_video collector with videos=["dQw4w9WgXcQ"] and max_results=1
```

## What people build with the YouTube video data API

Three shapes of work this endpoint was designed around.

### Creator and competitor analytics

Pull exact views and likes for a set of videos on a schedule and you have the real engagement curve, not the rounded figure the page prints, for every title you track.

### Content metadata enrichment

Resolve a list of video ids to title, channel, category, length and keyword tags in one pass, filling the columns a media dataset needs without a per-video visit.

### Caption-language discovery

Read which caption languages each video declares to find what is already subtitled and what is missing, before you commission transcription or localization.

## YouTube video data API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Quota | Daily Data API unit budget | None — pay per video returned |
| View count | Rounded on the page ("1.2M") | Exact integer from the player payload |
| Auth | API key and a Google project | No key, ids or URLs straight in |

## FAQ

Questions we get about the YouTube video data API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### How is this different from the YouTube Data API?

It returns much of the same per-video record — title, channel, exact views and likes, length, category, keywords, captions — but reads it from the watch page's player payload instead of the API. So there is no API key and no daily unit quota to manage; a large batch is a question of how many ids you send, not how much quota is left.

### Are the view and like counts exact?

Yes. The visible page rounds to "1.2M", but the payload behind it carries the precise numbers, and that is what lands in `views` and `likes` — the like count whenever the creator keeps it public.

### Do I get the transcript or just the languages?

Just the caption *languages* the video declares, in `caption_languages`, plus a `captions_available` flag. The collector reports which subtitle tracks exist; it does not return the transcript text itself.

### Can I pass full URLs, or only video ids?

Either. It accepts bare eleven-character ids and watch, Shorts and youtu.be URLs, up to twenty per run, and normalizes them to the canonical watch URL on the way out.

### Is there a free YouTube video data API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered videos on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 20 videos — the maximum for this collector — costs $0.02 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the YouTube video data API 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)

Related: [All 65 collectors](https://quanticdata.io/collectors/) [YouTube scraper API](https://quanticdata.io/collectors/youtube-scraper-api/) [YouTube channel scraper API](https://quanticdata.io/collectors/youtube-channel-scraper-api/) [Video search API](https://quanticdata.io/collectors/search-videos-api/) [GitHub repository search API](https://quanticdata.io/collectors/github-repository-search-api/) [Hacker News API](https://quanticdata.io/collectors/hacker-news-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/youtube-video-data-api/ · Site index for AI: https://quanticdata.io/llms.txt
