Generate lip sync from URLs
lipsync.generate(LipsyncGenerateParams**kwargs) -> LipsyncGenerate
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
import os
from chamelaion import Chamelaion
client = Chamelaion(
api_key=os.environ.get("CHAMELAION_API_KEY"), # This is the default and can be omitted
)
lipsync_generate = client.lipsync.generate(
inputs=[{
"type": "video",
"url": "https://cdn.example.com/episodes/42.mp4",
}, {
"type": "audio",
"url": "https://cdn.example.com/dubs/42-japanese.wav",
}],
disable_active_speaker_detection=False,
reference_id="dub-episode-42",
)
print(lipsync_generate.request_id){
"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"
}