PodcastsToText
Transcriptions

Show notes, chapters, translation

The three AI generators that run on a finished transcript, what each caches, and how many languages a plan allows.

Three generators run on a completed transcript: show notes, chapters and translation. All need the ai:write scope and a paid plan, and all are POST even when the answer is cached: a GET that bills is one a proxy or a prefetch can bill you for.

These are the same generators MCP exposes as generate_show_notes, generate_chapters and translate_transcript. Use whichever surface your client already speaks.

Show notes

POST/api/v1/transcriptions/{id}/show-notesscope: ai:write

A summary plus bullet points, cached on the transcript: the second call costs nothing and returns cached: true. Send {"force": true} to regenerate.

200 OK
{
  "id": "9f3c8e21-4b7a-4c19-9f2e-1d8a6c3b5e07",
  "show_notes": "A conversation about …\n\n- …",
  "cached": false,
  "message": "Generated and cached on the transcript. Asking again is free."
}

Chapters

POST/api/v1/transcriptions/{id}/chaptersscope: ai:write

Timestamped sections: a title and a start in seconds each, cached the same way. Chapters need a transcript with word timings; one made without them returns 400 naming the reason, not a 403, because changing plan does not change the transcript.

200 OK
{
  "id": "9f3c8e21-4b7a-4c19-9f2e-1d8a6c3b5e07",
  "chapters": [
    { "title": "Cold open", "start": 0 },
    { "title": "Why the model got smaller", "start": 412.5 }
  ],
  "cached": true
}

Translation

POST/api/v1/transcriptions/{id}/translatescope: ai:write

Translate into one language, cached per language: a language the transcript already holds returns cached: true, spends nothing, and does not count against the limit below.

FieldTypeRequiredDescription
languagestringYesTarget language in words: Spanish, Brazilian Portuguese. Matched case-insensitively.
forcebooleanNoRe-translate a stored language, replacing it. Bills again; never blocked by the language limit.

Each transcript may hold a limited number of distinct languages per transcript, not per month. Going past it returns 403 translation_limit_reached.

PlanLanguages per transcript
FreeNone: translation is a paid feature
Creator1
Pro5
StudioUnlimited
PodmaxxingUnlimited

Checking before you spend

GET/api/v1/transcriptions/{id}/translatescope: transcriptions:read

Free, and the reason it exists: without it the only way to discover the cap is to hit it.

200 OK
{
  "id": "9f3c8e21-4b7a-4c19-9f2e-1d8a6c3b5e07",
  "languages": ["Spanish", "German"],
  "languages_used": 2,
  "languages_limit": 3,
  "languages_remaining": 1
}