diff --git a/backend/app/api/v1/routes_jobs.py b/backend/app/api/v1/routes_jobs.py index d068ef7..4acdc32 100644 --- a/backend/app/api/v1/routes_jobs.py +++ b/backend/app/api/v1/routes_jobs.py @@ -1209,6 +1209,14 @@ async def update_job_vtt_content( ) lang_output["ad_vtt_gcs"] = new_ad_uri + # Clear stale pause points — old positions are invalid with new VTT timings. + # Re-render will fall back to VTT cue start_time for placement. + edit_state = lang_output.get("accessible_video_edit_state") + if edit_state: + edit_state["pause_points"] = [] + edit_state["video_segments"] = [] + lang_output["accessible_video_edit_state"] = edit_state + # Update job with new VTT content outputs[target_language] = lang_output diff --git a/backend/app/tasks/rerender_accessible_video.py b/backend/app/tasks/rerender_accessible_video.py index 458bd2d..54fd19d 100644 --- a/backend/app/tasks/rerender_accessible_video.py +++ b/backend/app/tasks/rerender_accessible_video.py @@ -212,6 +212,8 @@ async def _async_rerender_accessible_video( # 4. Build placements with adjusted pause points method = lang_output.get("accessible_video_method", "pause_insert") pause_points = edit_state.get("pause_points", []) + if not pause_points: + logger.info("No pause points in edit state — using VTT cue start times for all placements") placements = _build_placements_with_adjustments( ad_vtt_content, cue_durations, pause_points