Paste a video link.
Get back the data.
One API call turns any social-video URL into metadata, a transcript, sampled frames, and the on-screen text burned into them. Built agent-first — REST, MCP, OpenAPI — a fraction of a cent per call.
Start free — 100 calls/month See pricing
No card · no subscription · EU-hosted · works with Claude (MCP), Cursor, n8n & any HTTP client
Paste any video, or run one of these: a TikTok · 99 s · 3Blue1Brown · 8 min
One free demo per visitor — metadata, insights, a transcript preview & digest. Frames, the full transcript, on-screen text and more need a free API key — get yours in 30 seconds.
One response, four kinds of data
Answers, not dumps new
A raw transcript can run thousands of tokens — expensive to move through an agent's context window, and the agent still has to do the reading. Add a top-level "ask" question to the same call you'd already make for a transcript, and get a short, grounded answer back instead — with timestamped quotes lifted straight from the transcript.
curl -X POST https://framefetch.net/v1/extract \
-H "Authorization: Bearer <your-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"ask": "What animal does the narrator point out?"
}'
// response (trimmed)
{
"ask": {
"answer": "The narrator points out the elephants and their very long trunks.",
"quotes": [ { "t_sec": 4, "text": "they have really really really long trunks" } ],
"confidence": "high",
"based_on": ["transcript"]
},
"cost": { "totalMicros": 7500 }
}Flat $0.0075 per call, charged only when an answer is produced — never served from the cache, so a second question about the same video always gets a genuinely fresh answer. Works over REST and MCP (framefetch_extract's ask argument) on any platform FrameFetch can transcribe. Full docs, pricing & FAQ →
Example response
A frames + text_overlay call against a real video, trimmed for readability:
// POST /v1/extract — fields: ["frames","text_overlay"] { "platform": "youtube", "frames": [ { "index": 12, "url": "https://…/frame_00012.jpg", "tSec": 4 } ], "textOverlay": [ { "index": 12, "text": "INSPIRATIONAL HOLIDAY VIDEO", "lines": [ { "text": "INSPIRATIONAL", "confidence": 0.96, "bbox": [74, 144, 702, 63] }, { "text": "HOLIDAY VIDEO", "confidence": 0.96, "bbox": [73, 226, 710, 64] } ] } ], "cost": { "totalMicros": 4290 } }
Real output, one frame shown — full example in the docs.
More ways to call new
POST /v1/searchurl straight into /v1/extract.POST /v1/batchfields: ["digest"] instead of parsing the full transcript.fields: ["delta"] — plus title & thumbnail-change flags.?format=md for clean MarkdownPOST /v1/watchnew_video event. No polling./v/<id> SEO page per videopublish: true — public metadata + a fair-use excerpt.translate (ISO-639-1) adds transcript_translated; ?format=srt|vtt exports timed subtitles.fields: ["audio_digest"] — combine with translate for a foreign-language briefing.fields: ["structured"] — a vision LLM reads the transcript + sampled keyframes, no file upload.fields: ["comments", "comment_sentiment"] — YouTube, up to comments_cap comments.Full request and response examples in the docs.
Watch it happen
The same call, in real time — metadata, transcript, frames, and on-screen text arriving in one response.
Built for both
Evaluate it in five minutes
Paste a link above and watch the response come back. No signup for a first look, a free key for the full response, transparent per-call pricing with no subscription.
- 100 free calls every month, top up by card or USDC
- Every response includes an exact cost breakdown
- Guided examples for common use cases
Drop it into your stack
REST, MCP over Streamable HTTP, and a full OpenAPI 3.1 spec. Typed errors so a failed call is self-correcting, not a dead end.
POST /mcp—framefetch_extract,framefetch_search,framefetch_platform_capabilities,framefetch_accountPOST /v1/batch·POST /v1/watch— batch extract + channel webhooks on new videosGET /v1/account·GET /v1/usage— balance, spend, and usage history, read-only- Pay per call with x402 (USDC) — no account, no human in the loop
- OpenAPI spec · llms.txt
Pricing
| What | Unit | Price |
|---|---|---|
| Metadata + insights | per call | $0.00015 |
| Transcript | per audio-minute | $0.0015 |
| Frames | per frame | $0.00012 |
| Text overlay (OCR) | per frame | $0.000225 |
| Ask new | per call | $0.0075 |
| Search new | per call | $0.002 |
No subscription. $0.002 minimum per call. 100 free calls every month. Full rate card →
FAQ
What does FrameFetch do?
Send one social-video URL; get metadata, insights, transcript, parametric frames, and on-screen text as a single JSON response. Six platforms, one schema.
What is text_overlay?
OCR on each extracted frame — burned-in captions, price tags, signage — with per-line confidence and a bounding box. Requires the frames field and is billed per frame.
Can I ask a question about a video instead of parsing the transcript?
Yes. Pass a top-level ask param (a 3–500 character question) to /v1/extract or /v1/batch and get back ask: { answer, quotes, confidence, based_on } — a short answer grounded in the transcript, with timestamped quotes. Flat $0.0075 per call, never cached — see Ask docs.
I don't have a video URL yet — can I search by keyword?
Yes. POST /v1/search with { query, limit? } returns up to 25 YouTube results (url, title, uploader, durationSec, thumbnail, views) — no login, no download. uploadDate is in the shape but is null in practice. Flat $0.002 per call regardless of limit. Take a result's url into /v1/extract — see Search docs.
Can I get notified when a channel posts a new video?
Yes. POST /v1/watch with a channel URL and a webhook_url, and FrameFetch POSTs you a new_video event for each new upload — no polling. List with GET /v1/watch, remove with DELETE /v1/watch/:id. Up to 50 subscriptions per account.
Can an AI agent pay without an account?
Yes — via x402, an agent pays per call with USDC, no signup or human needed. Humans can use the free tier, prepaid credits, or a Stripe card.
How much does it cost?
Pay per call: metadata sub-cent, transcript per minute, frames and text overlay per frame. 100 free calls every month on the free tier. See pricing.
Which platforms are supported?
YouTube, YouTube Shorts, TikTok, Instagram Reels, Pinterest, and Reddit.
Is there an MCP server?
Yes, Streamable HTTP at /mcp with framefetch_extract, framefetch_search, framefetch_platform_capabilities, and framefetch_account.