diff --git a/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc index 01837d98..5caae276 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/elai_service.py b/custom_addons/encoach_ai/services/elai_service.py index 2a6c1bfa..8fb55d31 100644 --- a/custom_addons/encoach_ai/services/elai_service.py +++ b/custom_addons/encoach_ai/services/elai_service.py @@ -130,8 +130,22 @@ class ElaiService: ) resp.raise_for_status() data = resp.json() + video_id = data.get("_id", data.get("id")) + + # Step 2: trigger rendering -- ELAI requires a separate render call + try: + render_resp = _requests.post( + f"{ELAI_BASE}/videos/{video_id}/render", + headers=self._headers(), + timeout=30, + ) + render_resp.raise_for_status() + _logger.info("ELAI render triggered for video %s", video_id) + except Exception as render_err: + _logger.warning("ELAI render trigger failed for %s: %s (video created but not rendered)", video_id, render_err) + self._log("create_video", int((time.time() - t0) * 1000)) - return {"video_id": data.get("_id", data.get("id")), "status": data.get("status", "pending")} + return {"video_id": video_id, "status": "rendering"} except _requests.exceptions.HTTPError as exc: body = "" try: @@ -156,9 +170,11 @@ class ElaiService: ) resp.raise_for_status() data = resp.json() + video_url = data.get("url", "") or data.get("video_url", "") return { "video_id": video_id, "status": data.get("status", "unknown"), - "url": data.get("url", ""), + "url": video_url, + "video_url": video_url, "duration": data.get("duration"), }