Skip to main content
Glama

Lip Sync with Sync 3

sync3_lip_sync_video

Main SwitchApp lip-sync for your videos. Uses Sync Labs Sync 3 only — never Kling. Call action="create" with video_url plus either sound_file (a base64 audio data URI) or audio_url; then call action="status" with the returned task_id. Sync 3 processes the whole clip in one pass with occlusion-aware lip sync, preserves the supplied audio, and returns a branded SwitchApp view_url when complete. Charges credits on create; failed jobs are refunded. PRICE: One price per lip sync job, charged when the job is created; returned if it fails. Checking status is free. Pass quote_only: true first to get the exact price; nothing is made and nothing is charged. To run it (not for a quote) send action.

Input Schema

NameRequiredDescriptionDefault
actionNoCreate a Sync 3 lip-sync job or check its status.
task_idNostatus: the sync: task_id returned by create.
audio_urlNocreate: the audio: an https link (the audio_url from generate_audio works as is) or the asset_id from upload_reference_asset (kind audio). Use instead of sound_file.
video_urlNocreate: the source video: an https link, the id of one of your Switch videos (from generate_video or list_my_videos), or the asset_id from upload_reference_asset.
quote_onlyNotrue answers the price only: nothing is made and nothing is charged.
sound_fileNocreate: base64 data URI of the audio (for example data:audio/mpeg;base64,...).
speak_spansNocreate, two-voice scenes: the seconds when the person ON CAMERA speaks: the time windows you wrote in front of her lines in generate_audio's text (exact), or from its sentences and words (timestamps: true) when a line was not timed. Switch silences everything else in a copy of the audio so the mouth follows only those lines; the other voice never moves it. Up to 60 spans, in order, no overlap.
keep_backgroundNocreate: keep the clip's own music and room under the new speech (default true). Switch splits the soundtrack into layers and lays the non-voice layers back; only the voice changes. false gives the new speech alone.
scene_audio_urlNocreate: the full scene mix (both voices and the room) to lay onto the synced picture when it is done, usually the same audio_url (an https link or an upload_reference_asset asset_id). With speak_spans this makes one dialogue do both jobs: drive the lips and play underneath. Replaces keep_background.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / quote_only
      Added value: +{
      +  "description": "true answers the price only: nothing is made and nothing is charged.",
      +  "type": "boolean"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "action"
      -]
  2. Changed3 schema fields changed
    • changedInput schema / properties / audio_url / description
      Previous value: -"create: public or Switch-resolvable URL of the audio. Use instead of sound_file."New value: +"create: the audio: an https link (the audio_url from generate_audio works as is) or the asset_id from upload_reference_asset (kind audio). Use instead of sound_file."
    • changedInput schema / properties / scene_audio_url / description
      Previous value: -"create: the full scene mix (both voices and the room) to lay onto the synced picture when it is done, usually the same audio_url. With speak_spans this makes one dialogue do both jobs: drive the lips and play underneath. Replaces keep_background."New value: +"create: the full scene mix (both voices and the room) to lay onto the synced picture when it is done, usually the same audio_url (an https link or an upload_reference_asset asset_id). With speak_spans this makes one dialogue do both jobs: drive the lips and play underneath. Replaces keep_background."
    • changedInput schema / properties / video_url / description
      Previous value: -"create: source video URL."New value: +"create: the source video: an https link, the id of one of your Switch videos (from generate_video or list_my_videos), or the asset_id from upload_reference_asset."
  3. Changed1 schema field changed
    • changedInput schema / properties / speak_spans / description
      Previous value: -"create, two-voice scenes: the seconds when the person ON CAMERA speaks, from generate_audio's sentences (timestamps: true). Switch silences everything else in a copy of the audio so the mouth follows only those lines; the other voice never moves it. Up to 60 spans, in order, no overlap."New value: +"create, two-voice scenes: the seconds when the person ON CAMERA speaks: the time windows you wrote in front of her lines in generate_audio's text (exact), or from its sentences and words (timestamps: true) when a line was not timed. Switch silences everything else in a copy of the audio so the mouth follows only those lines; the other voice never moves it. Up to 60 spans, in order, no overlap."
  4. Changed2 schema fields changed
    • addedInput schema / properties / scene_audio_url
      Added value: +{
      +  "description": "create: the full scene mix (both voices and the room) to lay onto the synced picture when it is done, usually the same audio_url. With speak_spans this makes one dialogue do both jobs: drive the lips and play underneath. Replaces keep_background.",
      +  "type": "string"
      +}
    • addedInput schema / properties / speak_spans
      Added value: +{
      +  "description": "create, two-voice scenes: the seconds when the person ON CAMERA speaks, from generate_audio's sentences (timestamps: true). Switch silences everything else in a copy of the audio so the mouth follows only those lines; the other voice never moves it. Up to 60 spans, in order, no overlap.",
      +  "items": {
      +    "properties": {
      +      "end": {
      +        "type": "number"
      +      },
      +      "start": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "start",
      +      "end"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / keep_background
      Added value: +{
      +  "description": "create: keep the clip's own music and room under the new speech (default true). Switch splits the soundtrack into layers and lays the non-voice layers back; only the voice changes. false gives the new speech alone.",
      +  "type": "boolean"
      +}
  6. Added

TDQS

A4/5.0
Behavior5/5

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

Annotations establish non-read-only/open-world/non-destructive, but the description adds credit charging on create, refunds on failure, free status checks, and the free quote_only probe. It also discloses processing behavior (one-pass, occlusion-aware, audio preservation) and view_url return, which is material beyond annotations.

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

Conciseness3/5

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

Purpose is front-loaded and the workflow is clear, but pricing/refund information is repeated across separate sentences and the closing 'To run it...' sentence is awkwardly truncated. Tightening would improve it.

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

Completeness4/5

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

For a 9-param, two-action job tool with no output schema, the description covers the lifecycle, billing, quote path, and the key return artifact (view_url). It leaves status-response details to inference, but combined with 100% schema coverage it is mostly complete.

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?

All 9 parameters have full schema descriptions (100% coverage), so baseline is 3. The prose reinforces the video_url + sound_file/audio_url and create/status flow but does not explain speak_spans, keep_background, or scene_audio_url in narrative form; the schema carries those.

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

Purpose4/5

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

The first two sentences name the operation (lip-sync), the resource (videos), and the specific engine (Sync Labs Sync 3, explicitly not Kling). It does not explicitly compare with the sibling lip_sync_video, so an agent must infer routing, keeping it at 4.

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

Usage Guidelines4/5

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

It prescribes the create→status sequence and explains when to use quote_only versus a real run. It does not state when to choose this over lip_sync_video or other siblings, so there are no explicit alternatives beyond the 'never Kling' model exclusion.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources