Skip to main content
Glama

transcribe a video for edit dialogue

dialogue-transcriptions_create
Destructive

Starts a timed-word transcription for editing dialogue in a saved single-speaker video: correct or remove spoken words while preserving the original speaker voice.

Instructions

Start the unbilled timed-word transcription that begins Edit Dialogue: correcting or removing spoken words in a saved single-speaker video while keeping the original speaker voice. Not for general transcription or speaker analysis (transcriptions_create, when available), translation (dubbing_create, when available), or a new full script or different voice (explain the limit; use lipsync_create with a script only if the user asks for a new voice).

Returns: the job's id, status, and once COMPLETED the transcript and speakerCount. Unless it is already COMPLETED, poll dialogue-transcriptions_get with the id; then, if speakerCount is 1, send the user's word edits to dialogue-previews_create.

Effects: despite the destructive hint it overwrites nothing. It adds at most one transcription job, and none when it reuses one: for an identical source video in the organization the API returns its existing COMPLETED job, or one still running that started within the last hour. Only the copy fallback below adds an asset. It never changes the source, replaces dialogue or generates a video.

Limits: the tool sets a 600-second ceiling, checked for a video after audio extraction, so a new job for a longer video still comes back and then ends FAILED with error.code SOURCE_TOO_LONG. HTTP 429 comes from the per-caller rate limit (10 a minute), the concurrency limit (2 at once per caller) or the organization's daily transcription cap; HTTP 402 means the account is on a payment or fraud hold.

Copy fallback: if the API rejects the video as not hosted in sync. storage, the tool copies it to a new VIDEO asset in the project, retries, and adds the copy's id to the result as videoAssetId, which every later dialogue call must use. If that retry fails, the error names the saved copy to retry with; do not copy again.

Project: projectIntent=explicit is required with projectId, and only for the project just created for this request or one the user explicitly asked for or selected in the interface; a matching name, workflow or open editor is never permission. Default new work to a new project.

Input Schema

NameRequiredDescriptionDefault
projectIdYesProject for this Edit Dialogue work: the id projects_create returned for this request (defaultWorkflow edit_dialogue) or a project the user explicitly chose; pass projectIntent=explicit with either. The tool reads it first to confirm access, and the copy fallback saves into it. Keep it for every later dialogue call.
videoAssetIdYesSaved VIDEO asset to transcribe that the account can read, from assets_create, assets_list or dialogue_upload-source. If the result returns videoAssetId, that sync.-hosted copy replaces this id for every later dialogue call.
projectIntentNoRequired with projectId. Set only for an explicit user project selection/update, or the new project just created for this request. Never infer intent from a matching project name, workflow name or active editor.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.4
    • changedInput schema / properties / projectId / description
      Previous value: -"Project the Edit Dialogue work belongs to, from projects_create."New value: +"Project for this Edit Dialogue work: the id projects_create returned for this request (defaultWorkflow edit_dialogue) or a project the user explicitly chose; pass projectIntent=explicit with either. The tool reads it first to confirm access, and the copy fallback saves into it. Keep it for every later dialogue call."
    • changedInput schema / properties / videoAssetId / description
      Previous value: -"Saved VIDEO asset being edited. Use the videoAssetId dialogue-transcriptions_create returned when it made a copy."New value: +"Saved VIDEO asset to transcribe that the account can read, from assets_create, assets_list or dialogue_upload-source. If the result returns videoAssetId, that sync.-hosted copy replaces this id for every later dialogue call."
  2. Changed2 schema fields changed
    • addedInput schema / properties / projectId / description
      Added value: +"Project the Edit Dialogue work belongs to, from projects_create."
    • addedInput schema / properties / videoAssetId / description
      Added value: +"Saved VIDEO asset being edited. Use the videoAssetId dialogue-transcriptions_create returned when it made a copy."
  3. Addedv0.1.5

TDQS

A4.2/5.0
Behavior3/5

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

Rich behavioral disclosure well beyond the annotations: it explains that destructiveHint is conservative ("overwrites nothing"), describes reuse/dedup semantics (returns an existing COMPLETED job or one running within the last hour), the 600-second SOURCE_TOO_LONG ceiling checked post-extraction, and HTTP 429/402 failure modes with rate-limit numbers. The copy-fallback path and its videoAssetId propagation are also spelled out, so an agent knows exactly what side effects can occur.

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

Conciseness4/5

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

Front-loaded and organized under clear labels (Returns, Effects, Limits, Copy fallback, Project), with no filler sentences. The opening sentence is packed with stacked clauses and the paragraph is very dense, but for a tool with this many fail modes and fallbacks the length is largely earned.

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?

No output schema exists, yet the description documents the return shape (id, status, transcript, speakerCount once COMPLETED) and the async polling path. For a complex mutation with dedup, a copy fallback, a hard duration cap and project-permission rules, nothing an agent needs to call it 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 coverage is 100% and the schema descriptions already carry the projectIntent=explicit rule and the videoAssetId copy-replacement rule, so the description largely restates structured data. It adds marginal value by reinforcing the "default new work to a new project" policy and never treating a matching name/workflow/editor as permission, but no new format or syntax detail.

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?

Opens with a specific verb and resource ("Start the unbilled timed-word transcription") and scopes it precisely to Edit Dialogue: correcting/removing spoken words in a saved single-speaker video while preserving the voice. It explicitly names the siblings it is not (transcriptions_create, dubbing_create, lipsync_create), so an agent can differentiate 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?

Gives explicit when-not conditions ("Not for general transcription or speaker analysis... translation... a new full script or different voice") with the correct alternative tool for each. It also supplies the follow-on routing: poll dialogue-transcriptions_get with the id, then send edits to dialogue-previews_create when speakerCount is 1.

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