fix: trigger ELAI render after video creation and improve status response
Made-with: Cursor
This commit is contained in:
Binary file not shown.
@@ -130,8 +130,22 @@ class ElaiService:
|
|||||||
)
|
)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
data = resp.json()
|
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))
|
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:
|
except _requests.exceptions.HTTPError as exc:
|
||||||
body = ""
|
body = ""
|
||||||
try:
|
try:
|
||||||
@@ -156,9 +170,11 @@ class ElaiService:
|
|||||||
)
|
)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
data = resp.json()
|
data = resp.json()
|
||||||
|
video_url = data.get("url", "") or data.get("video_url", "")
|
||||||
return {
|
return {
|
||||||
"video_id": video_id,
|
"video_id": video_id,
|
||||||
"status": data.get("status", "unknown"),
|
"status": data.get("status", "unknown"),
|
||||||
"url": data.get("url", ""),
|
"url": video_url,
|
||||||
|
"video_url": video_url,
|
||||||
"duration": data.get("duration"),
|
"duration": data.get("duration"),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user