import os from app.core.config import settings from app.core.uploader import uploader_backend from app.utils.youtube import YtDlpManager from app.schemas import DownloadRequest, DownloadResponse class YouTubeService: @staticmethod def download(data: DownloadRequest): manager = YtDlpManager(str(data.url), uploader_backend) uploader_backend.key_prefix = f"{manager.id}@{data.quality}@" video_url = manager.download_video(data.quality) audio_url = manager.download_audio() return DownloadResponse(video=video_url, audio=audio_url) class Files: @staticmethod def list(): return [f for f in os.listdir(settings.MEDIA_DIR) if os.path.isfile(f)]