FrameFetch
For agents → Try it free
YouTube · Shorts · TikTok · Instagram · Pinterest · Reddit

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 — and priced so a single call costs a fraction of a cent.

Live — no signup standby

Metadata only, 3 calls/day per visitor. Frames, transcript, and on-screen text need a free API key — see the docs.

One response, four kinds of data
Metadata
Title, author, duration, date
Always included. Sub-cent, no download required.
Transcript
Captions, or Whisper when there are none
Works on TikTok and Reddit too, not just YouTube.
Frames
Every / every-Nth / 1-per-sec / a time range
Any size, jpg/png/webp, up to 1000 per call.
Text overlay new
On-screen text via OCR, per frame
Burned-in captions, price tags, signage — with confidence + position.
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
Batch
Up to 10 URLs in one POST /v1/batch
One result per URL, per-item billing — a single bad URL never fails the batch.
Digest
A short LLM gist + topics from the transcript
Ask for fields: ["digest"] instead of parsing the full transcript.
Video delta
View / like / comment velocity vs your last fetch
fields: ["delta"] — plus title & thumbnail-change flags.
Markdown
Add ?format=md for clean Markdown
On any extract call. JSON stays the default.
Channel monitor
Webhook on every new upload — POST /v1/watch
Subscribe to a creator; we POST you a new_video event. No polling.
Video pages
A shareable /v/<id> SEO page per video
Opt in with publish: true — public metadata + a fair-use excerpt.

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
For people

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.

  • Free credit on signup, top up by card or USDC
  • Every response includes an exact cost breakdown
  • Guided examples for common use cases
For agents

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 /mcpframefetch_extract, framefetch_platform_capabilities, framefetch_account
  • POST /v1/batch · POST /v1/watch — batch extract + channel webhooks on new videos
  • GET /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
WhatUnitPrice
Metadata + insightsper call$0.00015
Transcriptper audio-minute$0.0015
Framesper frame$0.00012
Text overlay (OCR)per frame$0.000225

No subscription. $0.002 minimum per call. Free credit on signup. 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 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. Free credit on signup. 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 and framefetch_platform_capabilities.