FrameFetch
For agents → Try it free
Tutorials

How-to: video data via API

Short, copy-paste tutorials for transcripts, frames, on-screen text, metadata, and agent (MCP) usage. Works on YouTube, Shorts, TikTok, Instagram, Pinterest, and Reddit.

Get a key · Transcript · Frames · On-screen text · Metadata · From an AI agent

At a glance

TaskEndpointOne-liner
Get a free API keyPOST /v1/keys{ "email": "you@example.com" }{ "key": "ff_xxx_yyy" }
Get a video transcriptPOST /v1/transcript{ "url": "..." }transcript.text (captions, or Whisper when there are none)
Extract video framesPOST /v1/frames{ "url": "...", "frames": { "mode": "fps", "fps": 1, "width": 480 } }
Read on-screen text (OCR)POST /v1/extractfields: ["frames", "text_overlay"] plus a frames spec
Get video metadataPOST /v1/metadata{ "url": "..." } → title, uploader, durationSec, uploadDate, views, likes, commentCount
Use it from an AI agentPOST /mcpStreamable HTTP MCP — tools framefetch_extract, framefetch_search, framefetch_account, framefetch_platform_capabilities

Get a free API key

In a browser: framefetch.net/signup — instant key, 100 free calls/month, re-viewable anytime in your account. Or by API:

curl -X POST https://framefetch.net/v1/keys -H "Content-Type: application/json" \
  -d '{ "email": "you@example.com" }'
# -> { "key": "ff_xxx_yyy" }   (includes a small free credit)

Send it as Authorization: Bearer ff_xxx_yyy on every call. Or skip keys entirely and pay per call with x402 (see below).

Get a video transcript

Works for YouTube, TikTok, Instagram, Reddit. Uses captions when available, else Whisper.

curl

curl -X POST https://framefetch.net/v1/transcript \
  -H "Authorization: Bearer ff_xxx_yyy" -H "Content-Type: application/json" \
  -d '{ "url": "https://www.tiktok.com/@user/video/123" }'

Python

import requests
r = requests.post("https://framefetch.net/v1/transcript",
    headers={"Authorization": "Bearer ff_xxx_yyy"},
    json={"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw"})
print(r.json()["transcript"]["text"])

Platform guides: YouTube · TikTok · Reddit · Instagram. For the full cross-platform picture — captions-vs-Whisper by platform, batch transcription, accuracy — see the video transcription API guide.

Extract video frames

Sample frames: every frame, every Nth, 1 per second, or a time range — at any width.

curl -X POST https://framefetch.net/v1/frames \
  -H "Authorization: Bearer ff_xxx_yyy" -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    "frames": { "mode": "fps", "fps": 1, "width": 480, "format": "webp" }
  }'

Returns frames[] as time-limited signed image URLs. Lower width = cheaper. Up to 1000 frames/call. Modes: all, every_n (+n), fps (+fps), range (+from,to,fps). See Pinterest too.

Read on-screen text (OCR) new

Runs OCR on each extracted frame — burned-in captions, price tags, signage. Add text_overlay alongside frames on /v1/extract (no scoped shortcut yet, so use the full endpoint):

curl -X POST https://framefetch.net/v1/extract \
  -H "Authorization: Bearer ff_xxx_yyy" -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    "fields": ["frames", "text_overlay"],
    "frames": { "mode": "range", "from": 0, "to": 5, "fps": 2, "width": 640 }
  }'

Returns textOverlay[] — one entry per frame, same index as frames[], with the detected text, per-line confidence, and a bounding box. Keep the frames spec narrow (a short range or low fps): estimated requests over 200 frames skip OCR with a warning instead of running a very long job.

Get video metadata (cheap & fast)

Metadata + insights without downloading the video — sub-cent and quick.

curl -X POST https://framefetch.net/v1/metadata \
  -H "Authorization: Bearer ff_xxx_yyy" -H "Content-Type: application/json" \
  -d '{ "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw" }'
# -> title, uploader, durationSec, uploadDate, views, likes, commentCount

No signup needed to try metadata: paste a URL on the free demo.

Use it from an AI agent (MCP) — and pay with x402

Add the MCP server; the agent gets framefetch_extract, framefetch_search, framefetch_account and framefetch_platform_capabilities.

{
  "mcpServers": {
    "framefetch": {
      "url": "https://framefetch.net/mcp",
      "headers": { "Authorization": "Bearer ff_xxx_yyy" }
    }
  }
}

No account? An agent can pay per call with x402: call POST /v1/topup, get a 402 with USDC payment requirements, pay, retry. Listed in the official MCP registry as io.github.MarvinRey7879/framefetch.

No-code: build this in n8n

Prefer a visual workflow builder over curl or Python? The n8n YouTube transcript workflow guide has a copy-paste, importable workflow JSON — one HTTP Request node for the transcript, a second for ask — plus why n8n's native YouTube node can't do this on its own.

Working in Python? The Python video transcript API guide is the same thing in one requests.post — copy-paste snippets for a transcript, the search→ask two-call pattern, and handling the 402 when credit runs out, with no yt-dlp, ffmpeg, or Whisper to install locally.

On Zapier? The Zapier video transcript guide shows how to call FrameFetch from any Zap with the built-in Webhooks by Zapier action — no app to install, the full API in one POST step. On Make.com it's the same via the HTTP module.

FAQ

How do I get a TikTok or Reddit transcript via API?

POST the URL to /v1/transcript with your Bearer key. TikTok/Instagram/Reddit are transcribed with Whisper (no reliable captions).

How do I summarize a video with an API?

POST to /v1/extract with fields: ["digest"] for a gist, topics, and sentiment — or add a top-level ask for a direct grounded answer. The AI video summary API guide has real request/response examples for both, plus audio_digest for a spoken briefing.

How do I extract frames from a video?

POST to /v1/frames with a frames spec, e.g. { "mode":"fps", "fps":1, "width":480 }. Frames come back as signed image URLs.

How do I read on-screen text from a video?

POST to /v1/extract with fields: ["frames","text_overlay"] and a frames spec. Each frame gets a matching OCR result.

Can an AI agent pay without an account?

Yes — via x402 (USDC on Base): 402 → pay → retry, no signup.

Try it free Full docs