From ce398ae1d4586bbcd6a20ebda7c2b9c43de7ead4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 13 Feb 2026 00:15:07 -0500 Subject: [PATCH] fix: Update moviepy import for v2.x compatibility (closes #6) moviepy 2.x removed the moviepy.editor submodule. Import AudioFileClip directly from moviepy with a fallback for moviepy 1.x users. Also close the audio clip after writing to prevent resource leaks. Co-authored-by: Cursor --- utils/audio_processing.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/utils/audio_processing.py b/utils/audio_processing.py index 8256589..307ab9f 100644 --- a/utils/audio_processing.py +++ b/utils/audio_processing.py @@ -1,12 +1,19 @@ -from moviepy.editor import AudioFileClip from pathlib import Path +# moviepy 2.x removed moviepy.editor; import directly from moviepy +try: + from moviepy import AudioFileClip +except ImportError: + # Fallback for moviepy 1.x + from moviepy.editor import AudioFileClip + def extract_audio(video_path: Path): """Extract audio from a video file.""" try: audio = AudioFileClip(str(video_path)) audio_path = video_path.parent / f"{video_path.stem}_audio.wav" audio.write_audiofile(str(audio_path), verbose=False, logger=None) + audio.close() return audio_path except Exception as e: raise RuntimeError(f"Audio extraction failed: {e}")