media

Analyse a media item's transcript

Ask ONE editorial question of a transcript and get the answer as text: summary (what is actually said, plus the takeaways), chapters (where the subject changes), or highlights (the moments that stand alone as a short). PRECISION: timestamps are ABSOLUTE seconds from the start of the media and every one is verified against the transcript before you see it (a fabricated timestamp fails the call rather than shipping) — but they are LINE-START markers roughly 15s apart, so a boundary can sit up to 15s BEFORE the moment you asked for. Treat every span as APPROXIMATE: use it to LOCATE the moment, then refine the in/out against the word timings from GET /v1/media/{id}/context before you cut. Feeding a raw span straight into a clip trim will start it mid-sentence. Pass window to analyse one slice; omit it for the whole thing. This is a METERED LLM call, not a read: it bills on measured token spend, and a recording too long to analyse in one pass is rejected with 422 transcript_too_long (over ~100k characters, roughly two hours of speech) rather than silently summarising only its first half — narrow it with window. 422 media_no_transcript means the item has no speech on file (or none inside your window); GET /v1/media/{id}/context shows transcript state, and GET /v1/media/{id}/transcript returns the raw words.

post/v1/media/{id}/transcript/analyze

Request

  • Base URL: https://api.cueframe.ai
  • URL: https://api.cueframe.ai/v1/media/{id}/transcript/analyze
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://api.cueframe.ai/api/auth/mcp/authorize, token URL https://api.cueframe.ai/api/auth/mcp/token, scopes: media:write)
    • API key in header PAYMENT-SIGNATURE

Path parameters

idstring required

Request body

task'summary' | 'chapters' | 'highlights' required

What to ask of the transcript. summary — prose: the argument plus the concrete takeaways as bullets. chapters — one line per subject change, [h:mm:ss] Title — description. highlights — up to 8 standalone moments, strongest first, one line each as [h:mm:ss]-[h:mm:ss] Title — why it lands plus the line that carries it. Every timestamp is ABSOLUTE seconds from the start of the media, including when you pass a window, and every one is verified against the transcript before you see it — but they are LINE-START markers about 15s apart, so treat a span as APPROXIMATE (up to 15s early) and refine it against the word timings from GET /v1/media/{id}/context before you cut.

Response

The analysis.

task'summary' | 'chapters' | 'highlights' required

Echo of the requested task — so a batched caller can pair answers to asks.

resultstring required

The answer, as text. summary is prose; chapters and highlights are one record per LINE in the shape documented on the request's task field — split on newlines to parse them. Timestamps are absolute seconds from the start of the media and every one is CHECKED against the transcript before the response is returned (a fabricated timestamp fails the call rather than shipping), but they are line-start markers about 15s apart — a boundary can sit up to 15s BEFORE the moment you want. Use them to locate, not to cut: refine against the word timings in GET /v1/media/{id}/context.

Changes

No recorded changes to this operation across all 1 revision of this API.