From 4b14f5f776a2c6e42ce1f647c6fc7bf893669b65 Mon Sep 17 00:00:00 2001 From: Yamen Ahmad Date: Sun, 12 Apr 2026 02:59:43 +0400 Subject: [PATCH] fix: trigger ELAI render after video creation and improve status response Made-with: Cursor --- .../__pycache__/elai_service.cpython-312.pyc | Bin 7384 -> 8041 bytes .../encoach_ai/services/elai_service.py | 20 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) 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 01837d983a4e3bfad49ac38fe8d386c0c2772fd8..5caae276b254ca2bb034b95ef922029209a77984 100644 GIT binary patch delta 1732 zcmZuxZA?>F7(Vyj-hSTp-qO-9ie8Yf4zwGx0VOJ(u7jX%iSvgEh9S3N3%NC?m(h`1 znwceYUlDQ=(W#;PNQS{g7XI+lxD2-WV`Z4w+z_+<+V+pBOU(SUb9!4eWT)wS-t&Gu z?|Yw|_Y}MTI_S7(w_5>T57)IsDDa)*E=PaCqSL;n<)_>nMcL4d!$YfNt9FTt6bS`j zk=FMthqml{?R6@54M_Dj3@S+S=yy6GNVT{2EHdRFyJ|;oJ9cr3M>hbF^drjTayF=3 z1&IPUcQ>&z%}O0|IA5h&&_jo}nUg}&OV{ZWU=L6NmHY+(>#~j)@M=lsK%>g3j!Iby zoB~o))-mn)?6kg5Qj;LVoC1>+#;QPpWc{|ftt1=JH1Dnw-t=^N(sqO!B_bUG$w?f<|iqgQU{5~oF2*YJ6ntHXiW)M zkX60{_`Jmngz*w^g^E!7@`p|ScF=x7|qCGl(uilqdxF+COgpBVA%aALe1*qDysFtJ5X7=iI&1$)j+D2GKk zrIf+rQs}tG>CT~2Wa3Xut!B|{C*;u(t(i*>(lp@|)?k5talJ$NP=mX>bvHh0rlIi^ zX;L#JWZWeoMl($gLm4B$c5-48vVz9k%_#5oQckqu9*jYmIBa^UAsA1e*R16OCPHK4 znGwx!CMCU}cH%&B=Yn2rh2yBZx}LT$%crXaifTZz=WxzjGnbjoxyCv4ita`k$c4l=iODydyv2-#-kJJuW znKdunA7R!4{x>`5wfz*)J1l*GT{}>+AEL1SBZx+@n^haRWI8F+FijLQu=s8KTRgY!5inT&Nu?kp(I5>kh%|r%? sOwD<6vW&)+qov7$pOZ+4HfzGvEaHMb>N08!W=(@MWqkw&(am7^Kjq@9IRF3v delta 1172 zcmZ8fUuaWT7(eI!X>O8}Mg0I|#rTJ=_Ig7o7!j{1;#rrgko$Zgp|PXc}jyjO^qYP0bdx-|2HKeo|BM zSM)0GqsDTa&g!bB=Te*{)mbdfGB`@jak4is4iz#V*yHVIbY9a9+)WXA8|Y1@S;#SY zvXIMVG2X>IchQ(KO2x_Pf||AXqJdLhGN4Sz7N4D)wuG+>>bFHNyZ?*Q4)f$!CC*j2 z<@bsVX&ZOwGqN7;?tg_wYO%y!=|^cX@IZJZJ(M1|FMF%8{i_3OgU<%n$0ydm%vF!g zylm6fk@oJjFGT#|x95-2x=(xu21W$1B6J>U=U29Ip9}m-B0Q4eR`x-LGtNUU@u`Ew zpE@DKuHhl-tO|%;Se5r5@$t`mBE{325~W1}XrVt7!^Td!^~x4$7Tw0CNC0^dxd$Ox ziw51I+G4A@?mJXztM7N(OH^G8!Wc-o$v@Ga^Jk@WeFeod-bZ`k3^R=_mGp1)!mMub zC492J8B0=2c*@WUdP=~jY$E=Sq3@X)riP{zhU@u544tE<$b=K49}ZGr$+@gi7YMo6 zk!-of2$x6(Maf3T(C*(tv6>R8%*@YRpIZ!9mEEm%k;1uOgdD3xWGIo mon*A3rAv%iBB#32@CS0MD+I5SpSsG9Q4YHP2BT!CJN+*b6%XD3 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"), }