From cbab0c2149aea67819a8667d76b7b52eb1dc3dd3 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Wed, 4 Feb 2026 22:24:09 -0600 Subject: [PATCH] fix(blocks): validate transition_duration against shortest clip in concat Prevents confusing MoviePy errors when transition_duration exceeds the duration of any input clip. Co-Authored-By: Claude Opus 4.5 --- .../backend/backend/blocks/video/concat.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/autogpt_platform/backend/backend/blocks/video/concat.py b/autogpt_platform/backend/backend/blocks/video/concat.py index 5f77bf0cb6..b49854fb40 100644 --- a/autogpt_platform/backend/backend/blocks/video/concat.py +++ b/autogpt_platform/backend/backend/blocks/video/concat.py @@ -112,6 +112,19 @@ class VideoConcatBlock(Block): strip_chapters_inplace(v) clips.append(VideoFileClip(v)) + # Validate transition_duration against shortest clip + if transition in {"crossfade", "fade_black"} and transition_duration > 0: + min_duration = min(c.duration for c in clips) + if transition_duration >= min_duration: + raise BlockExecutionError( + message=( + f"transition_duration ({transition_duration}s) must be " + f"shorter than the shortest clip ({min_duration:.2f}s)" + ), + block_name=self.name, + block_id=str(self.id), + ) + if transition == "crossfade": for i, clip in enumerate(clips): effects = []