Skip to main content
Glama

translate audio for preview

translation-previews_create
Destructive

Start a paid job that translates a saved audio asset into a target language, producing reviewable translated audio before a separate lip-sync.

Instructions

Start one paid job that translates a saved audio asset's speech into another language, producing translated audio the user can review before a separate lip-sync. Use it when the user wants to hear the translation first or place the audio on a timeline; for a finished dubbed video in one step use dubbing_create, and for speech from a script use speech-previews_create. Confirm the source audio, target language and the translation-previews_estimate quote with the user first. It needs a project: for new work call projects_create (defaultWorkflow translate_and_dub) and pass that id with projectIntent=explicit; use an existing project only when the user explicitly selected it, never because of a matching name or open editor. Persist one UUID idempotencyKey before calling and, after an uncertain response, resend the identical request with it; a new key bills again. Returns the job (id, status, outputMediaUrl once done, error, recoveryRequired); follow it with translation-previews_get wait: true, or jobs_wait kind translation_preview when available. Never translate again because attaching the output failed or recoveryRequired is true. Lip-syncing the translated audio is a separate, explicitly approved lipsync_create or lipsync_create-timeline call, not dubbing_create.

Input Schema

NameRequiredDescriptionDefault
projectIdYesProject for the job: one just created with projects_create for this request, or one the user explicitly selected; pass projectIntent=explicit with it. Use the same id for translation-previews_get.
sourceLangNoOptional and usually omitted: the source language is detected (sent as auto).
targetLangYesLanguage code to translate into, from dubbing_get-options targetLanguages (for example es or pt-BR).
audioAssetIdYesSaved AUDIO asset to translate, such as one from assets_create (type=AUDIO), assets_list or audio-trims_create; the same asset you quoted with translation-previews_estimate.
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.
idempotencyKeyYesA new UUID saved before the call. Reuse it with identical input only to recover an uncertain response.
organizationIdNoRun only this call in another of the user’s Sync organizations, by id from organizations_list, when the user asks for it (for example “generate this in the Acme org”). The session keeps its organization; reads of the ids this call returns stay in this organization. Omit to use the session’s organization.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.2.4
    • changedInput schema / properties / audioAssetId / description
      Previous value: -"Saved AUDIO asset to translate, such as an audio-trims_create result."New value: +"Saved AUDIO asset to translate, such as one from assets_create (type=AUDIO), assets_list or audio-trims_create; the same asset you quoted with translation-previews_estimate."
    • changedInput schema / properties / projectId / description
      Previous value: -"Project the translation belongs to, from projects_create or projects_list."New value: +"Project for the job: one just created with projects_create for this request, or one the user explicitly selected; pass projectIntent=explicit with it. Use the same id for translation-previews_get."
    • changedInput schema / properties / sourceLang / description
      Previous value: -"Optional; the source language is detected."New value: +"Optional and usually omitted: the source language is detected (sent as auto)."
    • changedInput schema / properties / targetLang / description
      Previous value: -"Target language code from dubbing_get-options."New value: +"Language code to translate into, from dubbing_get-options targetLanguages (for example es or pt-BR)."
  2. Changed4 schema fields changed
    • addedInput schema / properties / audioAssetId / description
      Added value: +"Saved AUDIO asset to translate, such as an audio-trims_create result."
    • addedInput schema / properties / idempotencyKey / description
      Added value: +"A new UUID saved before the call. Reuse it with identical input only to recover an uncertain response."
    • addedInput schema / properties / projectId / description
      Added value: +"Project the translation belongs to, from projects_create or projects_list."
    • addedInput schema / properties / targetLang / description
      Added value: +"Target language code from dubbing_get-options."
  3. Addedv0.1.5

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, but the description adds material context: this is a paid job, a new idempotencyKey bills again, an uncertain response must be retried with the identical key, and translation must not be repeated when attaching the output failed or recoveryRequired is true. That is real cost and recovery disclosure beyond the flags. It stops short of stating rate limits or permissions, hence not a 5.

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?

Purpose and scope are front-loaded in the first sentence, and nearly every subsequent sentence carries an operational constraint rather than filler. It is dense — a single long paragraph mixing routing, project rules, idempotency and recovery — so a slight structural cost, but the length is justified by the tool's cost and complexity.

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?

For a paid, destructive, multi-step job tool the description covers prerequisites, project provenance, idempotency protocol, return shape and recovery paths. It even summarizes the return fields (id, status, outputMediaUrl, error, recoveryRequired) despite an output schema existing, which is redundant but harmless and reinforces the polling handoff.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds workflow-level meaning: idempotencyKey must be persisted before the call and reused only for recovery, and projectIntent=explicit must accompany the project id with a prohibition on inferring intent from matching names or an open editor. Those behavioral constraints go beyond what the property descriptions convey on their own.

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 and resource ('Start one paid job that translates a saved audio asset's speech into another language') plus the output ('translated audio the user can review before a separate lip-sync'). It explicitly names the two siblings it is not — dubbing_create for one-step dubbed video and speech-previews_create for script-based speech — so an agent can route 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-to-use ('user wants to hear the translation first or place the audio on a timeline') and when-not (one-step dubbing), plus prerequisites: confirm source audio, target language and the estimate quote; create a project via projects_create with defaultWorkflow translate_and_dub; use an existing project only on explicit user selection. It also routes follow-up to translation-previews_get wait:true and jobs_wait, and states that lip-syncing is a separate approved call.

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