2023-11-21 23:39:27 +03:00

50 lines
1.2 KiB
Python

from dataclasses import dataclass
from enum import Enum
from fastapi import Form
from pydantic import BaseModel
'''
vext: Video Extension (mp4 > mov > webm > flv > other). If --prefer-free-formats is used, webm is preferred.
aext: Audio Extension (m4a > aac > mp3 > ogg > opus > webm > other). If --prefer-free-formats is used, the order changes to ogg > opus > webm > mp3 > m4a > aac
'''
class VideoFormatEnum(Enum):
format_3gp = "3gp"
format_flv = "flv"
format_mp4 = "mp4"
format_mov = "mov"
format_webm = "webm"
class AudioFormatEnum(Enum):
format_aac = "aac"
format_m4a = "m4a"
format_mp3 = "mp3"
format_ogg = "ogg"
format_opus = "opus"
format_webm = "webm"
format_wav = "wav"
class MergeOutputFormatEnum(Enum):
format_avi = "avi"
format_flv = "flv"
format_mkv = "mkv"
format_mov = "mov"
format_mp4 = "mp4"
format_webm = "webm"
@dataclass
class SubmitIn:
link: str = Form(...)
video_format: VideoFormatEnum = Form(default=MergeOutputFormatEnum.format_webm)
audio_format: AudioFormatEnum = Form(default=AudioFormatEnum.format_webm)
merge_output_format: MergeOutputFormatEnum = Form(default=MergeOutputFormatEnum.format_mkv)
class CheckIn(BaseModel):
link: str