From ed616e4f66200976dc674c7ef01d950a2bd4c74b Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 26 Feb 2026 14:11:09 +0900 Subject: [PATCH] =?UTF-8?q?video/status=20render=20data=20=EB=B9=84?= =?UTF-8?q?=EB=94=94=EC=98=A4=20id=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/video/api/routers/v1/video.py | 6 +++++- app/video/schemas/video_schema.py | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/video/api/routers/v1/video.py b/app/video/api/routers/v1/video.py index 94e39ff..15a101c 100644 --- a/app/video/api/routers/v1/video.py +++ b/app/video/api/routers/v1/video.py @@ -549,7 +549,8 @@ async def get_video_status( "failed": "영상 생성에 실패했습니다.", } message = status_messages.get(status, f"상태: {status}") - + + video_id = None # succeeded 상태인 경우 백그라운드 태스크 실행 if status == "succeeded" and video_url: # creatomate_render_id로 Video 조회하여 task_id 가져오기 @@ -561,6 +562,8 @@ async def get_video_status( ) video = video_result.scalar_one_or_none() + video_id = video.id + if video and video.status != "completed": # 이미 완료된 경우 백그라운드 작업 중복 실행 방지 # 백그라운드 태스크로 MP4 다운로드 → Blob 업로드 → DB 업데이트 → 임시 파일 삭제 @@ -584,6 +587,7 @@ async def get_video_status( status=status, url=video_url, snapshot_url=result.get("snapshot_url"), + video_id = video_id if video_id else None ) logger.info( diff --git a/app/video/schemas/video_schema.py b/app/video/schemas/video_schema.py index 1b570be..27ecdd8 100644 --- a/app/video/schemas/video_schema.py +++ b/app/video/schemas/video_schema.py @@ -49,6 +49,7 @@ class VideoRenderData(BaseModel): status: Optional[str] = Field(None, description="렌더 상태") url: Optional[str] = Field(None, description="영상 URL") snapshot_url: Optional[str] = Field(None, description="스냅샷 URL") + video_id: Optional[int] = Field(None, description="Video id(DB)") class PollingVideoResponse(BaseModel):