23 lines
710 B
Python
23 lines
710 B
Python
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)]
|