diff --git a/backend/app/services/whisper_service.py b/backend/app/services/whisper_service.py index 418a6d5..017b08d 100644 --- a/backend/app/services/whisper_service.py +++ b/backend/app/services/whisper_service.py @@ -241,8 +241,21 @@ class WhisperService: refined["original_pause_point"] = original # Preserve for debugging if warning: - warnings.append(f"Cue {placement['ad_cue_index']}: {warning}") - logger.warning(f"Pause point refinement warning for cue {placement['ad_cue_index']}: {warning}") + # Special handling for first AD cue: if no sentence break found, + # insert at the very beginning of the video to avoid mid-sentence insertion + if placement["ad_cue_index"] == 0: + refined["pause_point"] = 0.0 + warnings.append( + f"Cue 0: No sentence break found within search window of {original:.2f}s, " + "inserting AD at video start (0.0s)" + ) + logger.info( + f"First AD cue: No sentence break found near {original:.2f}s, " + "using video start (0.0s) to avoid mid-sentence insertion" + ) + else: + warnings.append(f"Cue {placement['ad_cue_index']}: {warning}") + logger.warning(f"Pause point refinement warning for cue {placement['ad_cue_index']}: {warning}") elif abs(snapped - original) > 0.1: logger.info( f"Refined pause point for cue {placement['ad_cue_index']}: "