import logging | |
import tempfile | |
import sources | |
from detector import Detector | |
from downloader_manager import download_mp4_and_extract_audio | |
from sorter import SlideSorter | |
def process_video(link): | |
try: | |
video_bytes, audio_bytes = download_mp4_and_extract_audio(link) | |
with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as temp_video: | |
temp_video.write(video_bytes) | |
temp_video_path = temp_video.name | |
detector = Detector(temp_video_path) | |
sorter = SlideSorter(sources.ListSource(detector.detect_slides()), outpath="sorted_slides/") | |
slides = sorter.sort() | |
return slides, audio_bytes | |
except Exception as e: | |
logging.exception("Failed to execute sorter: %s", e) | |