Generate lip sync from URLs
POST/v1/lipsync/generate
Starts a lip sync job from exactly one remote video URL and one remote audio URL. The response includes a request identifier to poll later.
Generate lip sync from URLs
curl https://api.chamelaion.com/api/v1/lipsync/generate \
-H 'Content-Type: application/json' \
-H "x-api-key: $CHAMELAION_API_KEY" \
-d '{
"inputs": [
{
"type": "video",
"url": "https://cdn.example.com/episodes/42.mp4"
},
{
"type": "audio",
"url": "https://cdn.example.com/dubs/42-japanese.wav"
}
]
}'{
"status": "success",
"request_id": "6f82a2d8-a6d4-4e8a-a0fa-e8b09823a2d8"
}{
"error": "invalid request body"
}{
"error": "content-type must be application/json"
}{
"error": "expected exactly one video input"
}{
"error": "expected exactly one audio input"
}{
"error": "input type must be \"video\" or \"audio\""
}{
"error": "missing authorization header"
}{
"error": "invalid authorization format"
}{
"error": "missing token"
}{
"error": "invalid token"
}{
"error": "unauthorized"
}{
"error": "token limit reached"
}{
"error": "rate limit exceeded"
}{
"error": "internal error"
}Returns Examples
{
"status": "success",
"request_id": "6f82a2d8-a6d4-4e8a-a0fa-e8b09823a2d8"
}{
"error": "invalid request body"
}{
"error": "content-type must be application/json"
}{
"error": "expected exactly one video input"
}{
"error": "expected exactly one audio input"
}{
"error": "input type must be \"video\" or \"audio\""
}{
"error": "missing authorization header"
}{
"error": "invalid authorization format"
}{
"error": "missing token"
}{
"error": "invalid token"
}{
"error": "unauthorized"
}{
"error": "token limit reached"
}{
"error": "rate limit exceeded"
}{
"error": "internal error"
}