Turn any YouTube, TikTok, Instagram, Reddit, or Pinterest video into a summary with one call — a gist paragraph, its topics and sentiment, a spoken audio briefing, or a direct answer to a specific question. FrameFetch fetches or transcribes the video and runs the model server-side; you never touch a transcript, host an LLM, or write a prompt.
Most "summarize a video" needs are one of two shapes, and FrameFetch has a field for each. digest gives an unprompted overview — gist, topics, sentiment — for indexing, previews, or triage at scale. ask answers a specific question with a short grounded answer and timestamped quotes, for when you already know what you're looking for. Request either, or both in the same call.
Send a URL with fields: ["digest"]. Requesting digest automatically pulls the transcript it needs, so a single call is enough. You get a gist, a topic list, and the detected language and sentiment.
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=Bj9BD2D3DzA",
"fields": ["digest"]
}'{
"metadata": { "title": "Tracing the thoughts of a large language model", "uploader": "Anthropic", ... },
"digest": {
"gist": "Researchers at Anthropic are working to understand how large language models think by developing tools to interpret their internal thought processes ...",
"topics": ["ai", "language models", "neuroscience", "machine learning", "anthropic"],
"state": { "language": "en", "sentiment": "positive" }
}
}This is a real, measured response from the live API for that video — the gist, topics, and sentiment above came back from the call shown. Metadata is trimmed here for readability. On a video without captions the transcript is produced by Whisper first, then summarized the same way — your request doesn't change.
When you don't want the whole summary, add a top-level ask — a short answer grounded in the transcript, with the timestamped quotes it's based on, so it's checkable rather than a black box.
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=Bj9BD2D3DzA",
"ask": "What method did the researchers develop?"
}'{
"ask": {
"answer": "The researchers developed methods to observe some of an AI model's internal thought processes, allowing them to see how concepts are connected to form logical circuits and intervene on these circuits.",
"confidence": "high",
"based_on": ["transcript"],
"quotes": [
{ "t_sec": 47.48, "text": "now we've developed ways to observe some of an AI model's internal thought processes" }
]
}
}Real output from the live API. The answer is grounded in the transcript and carries the quote (at 47.48s) it drew from, plus a confidence — never a fabricated claim. ask is a flat $0.0075 per call and is never served from the cache, so a repeated question always gets a fresh answer.
Request audio_digest and the same gist comes back synthesized to speech as an mp3 — a listenable briefing, in one of six voices, optionally combined with translation. Useful for a podcast-style rundown or an accessibility layer over a feed of videos.
-d '{ "url": "https://www.youtube.com/watch?v=...", "fields": ["audio_digest"] }'
// -> a signed mp3 URL of the summary, read aloudThe free tier is 100 calls a month. Prices: metadata $0.00015, transcript $0.0015/min, digest is a small LLM summary on top of the transcript, ask a flat $0.0075/call, with a $0.002 minimum per call. Every response returns an exact cost.totalMicros so you can meter spend. When credit runs out the API returns 402 with a machine-readable body — top up with card or x402 (USDC) and retry. Full breakdown on pricing.