FrameFetch
For agents → Try it free
No app to install — one Webhooks POST

Video transcript in Zapier

Get a transcript, summary, or grounded answer from any video URL inside a Zap. FrameFetch has no Zapier app to install — and doesn't need one: it's a plain JSON REST API, so you call it from any Zap with the built-in Webhooks by Zapier action. One POST, a video URL in, a transcript out, available to every step that follows.

Get a free key Read the docs

Why Webhooks instead of an app

A dedicated Zapier app would only expose whatever actions its author wired up. Calling the API directly through Webhooks by Zapier gives you the whole thing — transcript, metadata, frames, on-screen text, summary, and question answering — with nothing to install and nothing to wait on. It's one action step you configure once, then reuse across Zaps by changing the body.

Set it up in four fields

In your Zap, add an action, pick Webhooks by Zapier, and choose the POST event. Then fill in:

FieldValue
URLhttps://framefetch.net/v1/extract
Payload Typejson
Dataurl = the video URL (map it from a previous step) · fields = transcript
HeadersAuthorization = Bearer <your-key>

That's the whole setup. The equivalent raw request — useful for sanity-checking outside Zapier — is:

POST https://framefetch.net/v1/extract
Authorization: Bearer <your-key>
Content-Type: application/json

{ "url": "https://www.youtube.com/watch?v=...", "fields": ["transcript"] }
What comes back into your Zap

The response is JSON; Zapier exposes its fields to the following steps. The transcript arrives as flat text plus timestamped segments, with a source telling you whether it came from the video's captions or from Whisper.

{
  "metadata": { "title": "...", "uploader": "...", "durationSec": 175 },
  "transcript": {
    "text": "the full transcript as one string ...",
    "source": "captions",
    "segments": [ { "start": 0, "end": 7, "text": "..." } ]
  },
  "cost": { "totalMicros": 2000 }
}

Map transcript__text into a later step — a Google Sheet row, a Slack message, an email, an OpenAI prompt. On a video without captions source reads whisper instead; the transcript still arrives the same way.

Summarize or ask — same action, different body

Want a summary instead of the raw transcript? Change the Data to fields = digest and you get a gist, topics, and sentiment. Want a direct answer? Add an ask field with your question and get a short answer grounded in the transcript with timestamped quotes. Same Webhooks POST — only the body changes.

// summarize
{ "url": "https://www.youtube.com/watch?v=...", "fields": ["digest"] }

// or ask a question
{ "url": "https://www.youtube.com/watch?v=...", "ask": "What are the three main points?" }
Get started

Grab a free key — no card, 100 calls a month — then paste it into the Zap's Authorization header:

POST https://framefetch.net/v1/keys
{ "email": "you@example.com" }
// -> { "key": "ff_..." }  use as: Authorization: Bearer ff_...

Pricing: metadata $0.00015, transcript $0.0015/min, ask $0.0075/call, $0.002 minimum per call; every response includes an exact cost.totalMicros. See pricing.

Get a free key In n8n In Python