from app.utils.youtube import YtDlpManager from app.utils.uploader import S3ChunkUploadBackend from app.schemas import DownloadRequest, DownloadResponse class YouTubeService: @staticmethod def download(data: DownloadRequest): key_prefix = f"{data.url}@{data.quality}@" s3 = S3ChunkUploadBackend(key_prefix) manager = YtDlpManager(data.url, s3) video_url = manager.download_video(data.quality) audio_url = manager.download_audio() return DownloadResponse(video=video_url, audio=audio_url)