Skip to main content

How Lip Sync and Video Translation Relate

Both APIs sit on top of one lip sync engine that runs in two modes — Speed and Precision — trading latency for fidelity. What differs is what each API does around that engine:
  • Lip Sync API — the engine on its own. You bring the video and your own audio; the engine redraws the mouth to match. No translation, no audio generation — dialogue replacement only.
  • Video Translation API — translation, optionally followed by the engine. It has two output modes:
    • Audio only (translate_audio_only: true) — transcribe, translate, and generate the translated audio, then stop. No lip sync. The output is just the new audio track (or the original video with swapped audio and an untouched mouth).
    • Video (audio + visual) — the same translation pipeline, then runs the lip sync engine so the mouth matches the translated speech.
The short version:
  • Lip Sync API = engine only — you bring the audio.
  • Video Translation API = translation, optionally followed by the engine. Audio-only mode skips the engine entirely; video mode adds it back.

Quick Example

Request Body

Response

Get Lipsync Details

Quick Example

Path Parameters

Response

Response Fields

List Lipsyncs

  • Endpoint: GET /v3/lipsyncs
  • Purpose: List lipsyncs with cursor-based pagination.

Quick Example

Query Parameters

Response

Update Lipsync

Quick Example

Request Body

Delete Lipsync

Quick Example

Response

CLI Usage

Use --request-schema to see all available request fields without needing auth:

Polling Pattern

Lipsyncs are processed asynchronously. Poll until status reaches "completed" or "failed". Status transitions: pendingrunningcompleted | failed
Or let the CLI handle polling for you:

Asset Inputs

Both video and audio fields accept two input formats: By URL — any publicly accessible HTTPS link:
By asset ID — reference a file previously uploaded via POST /v3/assets (see Upload Assets):