## 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. ### Parameters - `inputs: Iterable[Input]` Exactly one video input and one audio input (order does not matter). - `type: Literal["video", "audio"]` Type of input media. - `"video"` - `"audio"` - `url: str` URL of the media resource. - `disable_active_speaker_detection: Optional[bool]` Disable active speaker detection and use max-face lipsync preprocessing. - `reference_id: Optional[str]` Optional client-provided identifier for later retrieval. ### Returns - `class LipsyncGenerate: …` - `request_id: str` Identifier of the created lip sync request. - `status: Literal["success"]` Current state of the newly created request. - `"success"` ### Example ```python 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) ``` #### Response ```json { "status": "success", "request_id": "6f82a2d8-a6d4-4e8a-a0fa-e8b09823a2d8" } ```