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
| Parameter | Required | Description |
|---|---|---|
audio_url | Yes | The voice or music track to use. |
video_url | Yes | The 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.
| Option | Credits per second | ≈ USD |
|---|---|---|
| Standard | 1.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
- 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.
- 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.
- 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.

