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 <cursoragent@cursor.com>
This commit is contained in:
Your Name
2026-02-13 00:15:07 -05:00
parent 168bf5f573
commit ce398ae1d4

View File

@ -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}")