Skip to main content
Glama

Transcribe a video or podcast

transcribe

Convert a video or podcast URL into a text transcript. Charges by recording length, and long jobs return a job id to fetch the finished result.

Instructions

Transcribes a recording and returns the transcript. This charges the user's account, by the length of the recording.

Waits for the result and returns it if the job finishes in time. For a long recording it returns a job id instead; call get_transcript with it shortly afterwards.

Refuses anything costing more than 30m of minutes unless confirm_spend is true. When it refuses, tell the user the cost and ask before retrying with confirm_spend.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesA YouTube, Vimeo, Twitch, podcast or direct media URL. A playlist or channel URL is rejected; this tool handles one recording.
modelNoDefaults to auto.
featuresNodiarization labels the speakers, cleanup removes fillers, summary gives an abstract and key points, chapters gives timestamps (free alongside summary), translation needs translate_to, word_timestamps is free and improves subtitle timing.
languageNoBCP-47 code of the spoken language. Detected when omitted. Set it if you know it: detection reads the opening of the recording, so a video starting with music can be misdetected, and that produces a confidently wrong transcript rather than an error.
vocabularyNoNames, products and jargon the model would otherwise mishear. Free, and the largest accuracy improvement available on specialised audio.
translate_toNoBCP-47 target. Adds the translation feature automatically.
confirm_spendNoSet true only after the user has been told the cost and agreed to it.
speaker_countNoHow many speakers there are, if known. More reliable than letting the clusterer guess; for an interview, this is 2.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and openWorldHint=true; the description adds the material traits: the call charges the user's account by recording length, it blocks waiting for the result, it may return a job id instead of a transcript, and it has a spend guardrail at 30 minutes of audio. That is exactly the cost/permission context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and the cost warning in bold, then the return-shape caveat, then the spend guardrail. Every sentence carries a distinct, actionable fact with no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still covers both return shapes (inline transcript vs job id for follow-up) and the cost/consent flow. Combined with a fully documented 8-parameter schema, nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, model, features, language, vocabulary, translate_to, speaker_count and confirm_spend in detail. The description only adds meaning to one parameter — the 30-minute threshold and user-consent requirement behind `confirm_spend` — so it sits at the baseline rather than adding much beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (transcribes a recording, returns the transcript) and immediately differentiates itself from list/search siblings by describing the async job-id path through get_transcript. An agent can tell it apart from get_transcript, list_transcripts and search_transcript without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit conditionals: long recordings return a job id and require a follow-up call to `get_transcript`; jobs over 30 minutes of audio are refused unless `confirm_spend` is true, and the refusal path tells the agent to surface cost and ask the user first. The main gap is that `estimate` (a sibling) is never named as a pre-flight cost check, but the when/when-not guidance present is unusually complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.