Сделал скелет того, как примерно будет реализован сервис
This commit is contained in:
@@ -15,7 +15,7 @@ class ChunkUploadBackend(ABC):
|
||||
"""Загрузка очередного чанка"""
|
||||
|
||||
@abstractmethod
|
||||
def finish(self) -> any:
|
||||
def finish(self) -> str:
|
||||
"""Завершение загрузки"""
|
||||
|
||||
@abstractmethod
|
||||
@@ -109,7 +109,7 @@ class S3ChunkUploadBackend(ChunkUploadBackend):
|
||||
)
|
||||
# Сбрасываем части
|
||||
self.parts = []
|
||||
return response
|
||||
return response["Location"]
|
||||
|
||||
def abort(self) -> None:
|
||||
if self.upload_id:
|
||||
|
||||
@@ -5,6 +5,9 @@ from dataclasses import dataclass
|
||||
from app.utils.uploader import ChunkUploadBackend
|
||||
|
||||
|
||||
RESOLUTIONS = [240, 360, 480, 720, 1080, 1440, 2160]
|
||||
|
||||
|
||||
@dataclass
|
||||
class MediaContent:
|
||||
url: str
|
||||
@@ -36,7 +39,9 @@ class YtDlpManager:
|
||||
"""Возвращает title видео"""
|
||||
return self.info.get("title", "unknown")
|
||||
|
||||
def download_video(self, size: Literal[240, 360, 480, 720, 1080, 1440, 2160]):
|
||||
def download_video(self, size: int):
|
||||
if size not in RESOLUTIONS:
|
||||
raise RuntimeError("Unsupported quality")
|
||||
command = [
|
||||
"yt-dlp",
|
||||
"-f",
|
||||
|
||||
Reference in New Issue
Block a user