cURL
curl --request POST \
--url https://api.vozo.ai/v1/reusable_lipsync_model_video_generation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>",
"audio_url": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload = {
"model_id": "<string>",
"audio_url": "<string>",
"callback_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>', audio_url: '<string>', callback_url: '<string>'})
};
fetch('https://api.vozo.ai/v1/reusable_lipsync_model_video_generation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model_id' => '<string>',
'audio_url' => '<string>',
'callback_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload := strings.NewReader("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}API Lip Sync réutilisable
Créer un travail vidéo LipSync à l'aide d'un modèle LipSync réutilisable
Create a lipsynced talking video use reusable model
POST
/
v1
/
reusable_lipsync_model_video_generation
cURL
curl --request POST \
--url https://api.vozo.ai/v1/reusable_lipsync_model_video_generation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>",
"audio_url": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload = {
"model_id": "<string>",
"audio_url": "<string>",
"callback_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>', audio_url: '<string>', callback_url: '<string>'})
};
fetch('https://api.vozo.ai/v1/reusable_lipsync_model_video_generation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model_id' => '<string>',
'audio_url' => '<string>',
'callback_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload := strings.NewReader("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}Autorisations
Bearer authentication header of the form Bearer <api_key>, where <api_key> is your API Key. The token in the sample code is referring to this api_key as well.
Corps
application/json
ID of the reusable lipsync model
Url that our server could download the audio file from to drive the reference. Supported audio types: .wav .mp3 .m4a
Url for callback if the job status changes. This URL will receive a request with the schema same as response for query job status API when job status changes.
Réponse
Job ID
ID of the task
Dernière modification le 18 décembre 2025
Cette page vous a-t-elle été utile ?
⌘I