Video API: YouTube transcript, chapters and frames in one call
The Video API reads a YouTube video for a model. One POST returns the transcript in the language that is spoken, stamped [m:ss], the chapters the author wrote, and small frames taken where the speaker points at the screen or says a price, interleaved in one Markdown timeline. Three videos of 8 to 19 minutes came back in 1.7 to 7.3 seconds on 20 October 2026, billed only because the reads succeeded.
$2 of free API usage per month · No card required · Failed reads are never billed
$ curl https://api.quanticdata.io/v1/scraper/video \ -d '{ "url": "https://www.youtube.com/watch?v=aircAruvnKk" }' { "video": { "title": "But what is a neural network? | Deep learning chapter 1", "duration_seconds": 1120 }, "transcript": { "source": "captions", "language": "en" }, "chapters": [ { "start": 0, "title": "Introduction example" }, … ], "frames": [ { "n": 3, "at": "2:10", "reason": "cue", "mime": "image/jpeg", "quote": "…you and I are just going to look at the simplest…" }, … ], "content": "## [0:00] Introduction example\n[0:04] This is a 3. It's sloppily written…" } # 12 chapters · 12 frames · 5,780 tokens · 2.6 s · billed once, on success
Pricing
Per read. No subscription.
One price per video read, whatever its length: a window read with start and end costs the same as the whole video, and a transcript-only read (max_frames 0) too. A read costs $0.02 ($20 per 1,000 reads), the price shown in the dashboard and the API reference; the free allowance and the accounts below are the same as for every Data API.
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
What is the Video API?
A video API turns a video URL into text and pictures a language model can reason over. QuanticData answers with the transcript in the original language, because a translated track adds the translator's errors on top of the captioner's, the chapters the author wrote in the description, and up to 30 storyboard frames placed at the moments that matter. The model sees what the words point at without anyone downloading or watching the video.
The frames are the seek-bar tiles the platform already renders, 160×90 on most videos, so no media byte is pulled and a read stays in seconds. They are enough to see the scene and the objects, not to read small text, and the response says so. Everything comes back in one JSON envelope with a Markdown content timeline: the model reads it in order, picture, then the words said over it.
What one call returns
content
The timeline for the model: the description, each chapter as a heading, the transcript merged into 20-second blocks stamped [m:ss], and a [frame N · m:ss · why] marker where every picture belongs.
transcript
source says captions, automatic captions or none; language is the one spoken; available lists every track the video offers; segments adds the raw timed cues on request.
chapters
The author's own structure from the description, start second and title, kept as headings in the timeline so a long lesson reads as a lesson.
frames
Up to 30 small JPEGs, base64, each with its second, its reason (cue, price, chapter, scene, interval) and the quote that earned it. frames: false keeps the list without the image data.
tokens
An estimate of the timeline (chars/4), the full size before any trim, and whether max_tokens cut it, so the next call knows where to resume with start and end.
notes and meta
What to know about this read: automatic captions, no storyboard, text trimmed. meta.via_proxy says the read went through a residential exit; usage carries what it cost.
Frames: what a transcript alone cannot tell you
A transcript says "as you can see"; it does not say what was seen. The Video API fills that gap with the storyboard tiles the platform renders for its seek bar: 160×90 pictures, one every 2 to 10 seconds, picked by five rules and returned as base64 JPEG next to their [frame N] marker.
| Reason | When a frame is taken | In the three measured videos |
|---|---|---|
cue | the speaker points at the screen: "as you can see", "come vedete", "regardez", "wie ihr sehen könnt" and the like, in six languages | 21 of 36 frames |
price | a price is said: "€499", "799 dollars" | 2 |
chapter | three seconds into each chapter the author wrote | 6 |
scene | the picture changes, to cover a stretch nobody points at | 6 |
interval | periodic coverage when nothing else claims the stretch | 1 |
Two thirds of the frame budget go to what the words and the author point at; the rest covers the gaps, so no part of the video goes unseen. Frames are small by design. They show a product, a slide or a chart, not small text, and the response says so in its header.
Why does a transcript library get IP blocked, and what changes here?
The open-source youtube-transcript-api package reads captions from your own machine, and the platform refuses many datacenter addresses. On a laptop the call works. On a cloud server the same call answers a block or a rate limit, and the usual advice is to buy proxies and configure them yourself.
The Video API runs that whole path for you. Each read is attempted directly first. When the platform refuses the address or answers empty captions, the read is repeated through a residential exit inside the same call, with no parameter to set. All three reads measured on 20 October 2026 took that second path and still came back in 1.7 to 7.3 seconds. A read that still fails answers a stable payload.code and is not billed.
What you can build with it
Summaries with quotes
The transcript keeps the original words and their stamps, so a summary can cite [12:30] instead of paraphrasing, and a reader can jump there.
Product reviews to data
A price said out loud gets a frame: the model reads the number and sees the product at the same moment. Prices, verdicts and specs become rows.
Fact checks
Find where a claim is made, read the words around it and look at what was on screen, with a timestamp the reader can verify.
Lessons and tutorials
Chapters, slides and demos become a step-by-step guide an agent can follow or test, as in the tutorial.
Agents that watch
The MCP tool read_video gives Claude, Cursor or any MCP client the same timeline, pictures inline, mid-conversation.
Long videos in windows
start and end read one part at a time; max_tokens keeps each call inside the model's budget. One price per read either way.
Three videos, measured
On 20 October 2026 we sent three public YouTube videos to the production endpoint with the default settings, one call each, and timed the whole round trip from a client outside our network. The transcript came back in the spoken language every time, with twelve frames of 160×90 pixels, and every read was billed once.
| Video | Length | Transcript | Chapters | Frames | Tokens | Time |
|---|---|---|---|---|---|---|
| A product review in Italian | 8:23 | it, automatic captions | 0 | 12 (2 at a price, 6 where the speaker points, 4 scene changes) | 2,342 | 1.7 s |
| A 12-chapter maths lesson | 18:40 | en, captions (31 tracks available) | 12 | 12 (5 chapter starts, 6 where the speaker points, 1 periodic) | 5,780 | 2.6 s |
| A developer tutorial with 25 chapters | 12:22 | en, automatic captions | 25 | 12 (9 where the speaker points, 2 scene changes, 1 chapter start) | 4,270 | 7.3 s |
Each read fetched between 442 KB and 565 KB from the platform: the player payload, the captions and the storyboard sheets, never the media. The review has no chapters, so its frames follow the words: the price said in the first ten seconds and again at 7:40 got a frame each, and "come vedete" earned six more. The lesson has chapters, so five frames land on chapter starts and the rest where the speaker says "let me show you".
Integration
One POST, one timeline
curl https://api.quanticdata.io/v1/scraper/video \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/watch?v=aircAruvnKk",
"max_frames": 8, "max_tokens": 6000 }'
Add start and end (seconds or m:ss) to read a window of a long video, languages to prefer another caption track, segments: true for the raw cues. Every field is in the API reference.
Give it to your agent as a tool
The QuanticData MCP server exposes this API as the read_video tool: the agent passes a URL and receives the timeline with the frames inline as images, so Claude, Cursor or any MCP client can watch a video mid-conversation. From your own loop, the REST call above plus one function that turns [frame N] markers into image blocks is all it takes. The step by step is in Train an agent with the Video API; the rest of the data layer is in the web data API for AI. Agents that read the open Agent Skills format learn the tool from the skills QuanticData publishes: npx skills add https://quanticdata.io.
QuanticData vs a typical transcript API
| QuanticData Video API | Typical transcript API | |
|---|---|---|
| What comes back | transcript, chapters, description and frames, in one timeline | the transcript, sometimes with timestamps |
| Language | as spoken, every available track listed | a default or translated track |
| When the platform blocks the request | retried through a residential exit inside the same call | an "IP blocked" or rate-limit error to handle yourself |
| Billing | per successful read, failures free | per request, errors often counted |
| Free tier | $2 every month, renews forever | a one-time quota |
| AI agent access | native MCP tool read_video, frames as images | a wrapper to write |
The setting to start with
POST /v1/scraper/video with url, max_frames: 8 and max_tokens: 6000: enough frames to see the scene, a timeline that fits a prompt. One price per successful read, failed reads never billed, and $2 of free API usage per month to try it before you pay.
Sources and standards
What this product reads or implements, so you can verify a claim yourself:
What is the Video API?
The Video API is a REST endpoint that reads a YouTube video for a language model. One POST with the URL returns the metadata, the transcript in the language that is spoken with [m:ss] timestamps, the chapters the author wrote and up to 30 small frames taken at the moments that matter, all interleaved in one Markdown timeline. No model runs on our side: you hand the timeline to yours.
Is this a YouTube transcript API?
It includes one. The transcript comes with timestamps from the captions the video carries, manual or automatic, in the spoken language. On top of it you get what a transcript alone cannot give: the chapters, the description, and frames placed where the speaker says "as you can see", where a price is said and at each chapter start, so the model also sees what the words point at.
What happens when a transcript library gets its IP blocked or rate limited?
Nothing on your side. Every read is attempted directly first and, when the platform refuses a datacenter address or answers empty captions, repeated through a residential exit automatically, inside the same call. In our three measured reads of 20 October 2026 all three went through that second path and came back in 1.7 to 7.3 seconds. A read that still fails is reported with a stable code and never billed.
Is there a free YouTube transcript API?
Every account with a permanent email address gets $2 of API usage free each month, with no card required, shared across all QuanticData Data APIs. The allowance renews monthly, so a small pipeline can run on it indefinitely; beyond it you pay per successful read with no subscription.
Does it translate the transcript?
No, by design. A translated caption track adds the translator's errors on top of the captioner's, and the model reading the transcript translates better from the original. The transcript therefore arrives in the spoken language; pass languages to prefer another track the video offers, and transcript.available lists every track.
How are the frames chosen?
From the words first: where the speaker points at the screen ("as you can see", "come vedete", "regardez" and the like in six languages), where a price is said, and at the start of each chapter. Stretches nobody points at get a frame where the picture changes or every so often, so no part of the video goes unseen. The default is 12 frames, the maximum 30, and max_frames: 0 returns the transcript alone.
Can I read only part of a long video?
Yes. start and end accept seconds or m:ss and limit both the transcript and the frames to that window. max_tokens trims the text to a budget and says so in tokens.truncated and in a note, so a second call with start/end reads the rest. Price per read is the same for a window as for the whole video.
What about videos without captions?
The read still succeeds: you get the metadata, the description, the chapters and the frames, and transcript.source says none. Videos that need a signed-in viewer, private or removed videos answer a 403 or 404 with a stable payload.code and are not billed.
Can I call it from Python or JavaScript?
Yes. It is plain HTTPS with a Bearer key and a JSON body, so requests in Python, fetch in Node, curl or any HTTP client works; the code samples on this page and the API reference cover all three. Frames come back as base64 JPEG strings you can pass straight into a model's image input.
Can AI agents use it directly?
Yes. The QuanticData MCP server exposes the same call as the read_video tool: Claude, Cursor, Windsurf, VS Code and any MCP client receive the timeline with the frames inline as images, no glue code. The tutorial on this site shows the MCP setup and the REST loop side by side.
Does it work with LangChain, n8n or CrewAI?
Yes. It is one HTTPS call, so any framework that wraps a function as a tool can use it: the LangChain tab on this page is a ten-line @tool, an n8n HTTP Request node posts the same JSON, and CrewAI or the OpenAI Agents SDK wrap the Python function. MCP clients need no wrapper at all.
How much does the Video API cost?
You pay per successful read: one price for the video, whatever its length, and the same price for a window read with start and end. A read costs $0.02 ($20 per 1,000 reads); reads that fail for any reason are never billed, and $2 of usage is free every month.
Read your first video in a minute
$2 free every month, no card. The transcript, the chapters and the frames from the first call.
Get my free API key