How-to: video data via API

Short, copy-paste tutorials for transcripts, frames, metadata, and agent (MCP) usage. Works on YouTube, Shorts, TikTok, Instagram, Pinterest, and Reddit. Get a free key first — it's one call.

Get a free API key

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

How to get a video transcript via API

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.

How to extract video frames via API

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=...",
    "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.

How to 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=..." }'
# -> title, uploader, durationSec, uploadDate, views, likes, commentCount

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

How to use it from an AI agent (MCP) — and pay with x402

Add the MCP server; the agent gets framefetch_extract 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.

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

Can an AI agent pay without an account?

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

Try it freeFull docs