Lip Sync API

popnow/lip-sync-v1/lip-syncFrom 1.8 credits per second

Re-voice an existing clip: send a video and a new speech track, and the person's mouth is redrawn to match the words while everything else stays as shot.

Call it with the model name popnow/lip-sync-v1/lip-sync on POST /jobs/createTask, from 1.8 credits per second ($0.018). New accounts get 30 free credits to try it in the Playground first.

  • Lip Sync

Introduction

Lip Sync re-voices footage you already have. Send the clip in video_url and the new speech in audio_url, and the mouth area of the person on screen is redrawn to match the words, while the performance, lighting and framing of the clip stay as shot. The result runs as long as the audio and carries it as its sound track.

Key features

Only the mouth is repainted

Expression, head movement, wardrobe and background all come from the original frames, so a take that already works keeps working; what changes is what the person appears to say. Because the rest of the face is left alone, the new line should suit the original delivery: a calm face paired with shouted audio still reads as calm.

The audio decides the length

The result follows the recording, not the clip. When the audio is longer than the video, the video is looped to cover it, and the returned file can run about half a second past the end of the audio. The picture keeps the resolution of the video you send up to about 720p: a 1280×720 test clip came back at 1280×720, while a 1920×1080 clip came back at 1280×720.

Request parameters

ParameterRequiredDescription
audio_urlYesThe voice or music track to use.
video_urlYesThe clip to work on.

Pricing

Prices are in credits, the same credits you use on the website (1 credit = $0.01). The hold is taken when the task is accepted and settled to the actual charge when it finishes; failed tasks are refunded.

OptionCredits per second≈ USD
Standard1.8$0.018

For an exact number before you run, send the same body to POST /jobs/quote.

Use cases

Dubbing without re-shooting

Keep an interview, a testimonial or a presenter take and swap in a translated voice track. The performance stays exactly as it was filmed, and the mouth now follows the new language instead of the one that was recorded on set.

Giving silent generated clips a voice

Most video models return silent footage. Record or generate a line, send it with the clip, and the character on screen actually says it instead of moving their lips at random or staying still.

Prompt guide & pro tips

Pick footage that shows the mouth

One person, face large enough in frame, turned mostly toward the camera. Hard cuts, heavy motion blur, a hand near the mouth and very small faces are where the sync slips. A steady shot also hides the loop point when the audio outlasts the clip.

Prepare the line like a dub

Keep each file between three and sixty seconds and split long scripts at natural pauses.

Plan for the wait

This is the slowest tool in the set: a ten-second line took about four minutes to process. Submit early, poll patiently, and test the pairing on a short line before sending a full script.

API quick start

Call the Lip Sync API in three steps

  1. Create an API key. Sign in to PopNow and create a key in the API console. Keys start with sk-popnow- and use the same credits as the website.
  2. Send the request. POST /jobs/createTask with model popnow/lip-sync-v1/lip-sync and an input object that follows the parameter table. The response returns a task ID straight away.
  3. Get the result. Poll GET /jobs/recordInfo with the task ID, or pass a callBackUrl and we post the result to it. Download the output links when the task succeeds.
# 1. Create the task. Keep the Idempotency-Key if you retry after a network error.
export IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST https://api.popnow.ai/api/v1/jobs/createTask \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -d '{
  "model": "popnow/lip-sync-v1/lip-sync",
  "input": {
    "video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
    "audio_url": "https://media.popnow.ai/shortfilm/voices/Aoede-46e4c427.mp3"
  }
}'

# 2. Copy data.taskId from the response, then poll until state is succeeded, failed, canceled or expired.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Replace the prompt and any links with your own. The API tab has the response, polling and callback reference.

Lip Sync API questions

How much does the Lip Sync API cost?

Lip Sync costs 1.8 credits ($0.018) per second. Credits are the same as on the website (1 credit = $0.01), new accounts get 30 free credits, and failed tasks are refunded.

What is the model name for Lip Sync in the API?

Put popnow/lip-sync-v1/lip-sync for Lip Sync in the model field of POST /jobs/createTask.

What happens to the original sound?

It is replaced: the returned video carries the audio you sent.

Does the video have to be as long as the audio?

No. A shorter video is looped to cover the audio, and the result follows the length of the audio.

What are the limits of the Lip Sync API?

Largest upload: 90 MB. Requests outside these limits are rejected before anything is charged.

Can I try Lip Sync without writing code?

Yes. The Playground runs Lip Sync on your PopNow credits, needs no API key, and shows the matching code for every run.

More about Lip Sync