Generate lip sync from URLs
client.Lipsync.Generate(ctx, body) (*LipsyncGenerate, error)
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
package main
import (
"context"
"fmt"
"github.com/chamelaion/chamelaion-go"
"github.com/chamelaion/chamelaion-go/option"
)
func main() {
client := chamelaion.NewClient(
option.WithAPIKey("My API Key"),
)
lipsyncGenerate, err := client.Lipsync.Generate(context.TODO(), chamelaion.LipsyncGenerateParams{
Inputs: []chamelaion.LipsyncGenerateParamsInput{chamelaion.LipsyncGenerateParamsInput{
Type: "video",
URL: "https://cdn.example.com/episodes/42.mp4",
}, chamelaion.LipsyncGenerateParamsInput{
Type: "audio",
URL: "https://cdn.example.com/dubs/42-japanese.wav",
}},
ReferenceID: chamelaion.String("dub-episode-42"),
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", lipsyncGenerate.RequestID)
}
{
"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"
}