diff --git a/src/web/main.py b/src/web/main.py
index 6bef8c0..d5dc204 100644
--- a/src/web/main.py
+++ b/src/web/main.py
@@ -102,7 +102,11 @@ async def get_url_for_download_video(request: Request, data: SubmitIn = Depends(
body = [
{
"link": data.link,
- "format": f"bestvideo[ext={data.video_format.value}]+bestaudio[ext={data.audio_format.value}]/best[ext={data.video_format.value}]/best",
+ "format": f"bv[width={data.resolution.value}][ext={data.video_format.value}]+ba[ext={data.audio_format.value}]/"
+ f"bv[width={data.resolution.value}][ext=mp4]+ba[ext=m4a]/"
+ f"bv[width={data.resolution.value}][ext=webm]+ba[ext=webm]/"
+ f"best[ext={data.video_format.value}]/"
+ f"best[ext!=unknown_video]",
"merge_output_format": data.merge_output_format.value,
"outtmpl": f"downloads/%(extractor_key)s/%(id)s_%(resolution)s.%(ext)s",
}, ]
diff --git a/src/web/schemes/submit.py b/src/web/schemes/submit.py
index 2f5fcb3..629b69f 100644
--- a/src/web/schemes/submit.py
+++ b/src/web/schemes/submit.py
@@ -28,6 +28,16 @@ class AudioFormatEnum(Enum):
format_wav = "wav"
+class ResolutionEnum(Enum):
+ resolution_240 = "240"
+ resolution_360 = "360"
+ resolution_480 = "480"
+ resolution_720 = "720"
+ resolution_1080 = "1080"
+ resolution_2048 = "2048"
+ resolution_3820 = "3840"
+
+
class MergeOutputFormatEnum(Enum):
format_avi = "avi"
format_flv = "flv"
@@ -42,6 +52,7 @@ class SubmitIn:
link: str = Form(...)
video_format: VideoFormatEnum = Form(default=MergeOutputFormatEnum.format_webm)
audio_format: AudioFormatEnum = Form(default=AudioFormatEnum.format_webm)
+ resolution: ResolutionEnum = Form(default=ResolutionEnum.resolution_1080)
merge_output_format: MergeOutputFormatEnum = Form(default=MergeOutputFormatEnum.format_mkv)
diff --git a/src/web/templates/index.html b/src/web/templates/index.html
index 9bd7eb0..16c0f74 100644
--- a/src/web/templates/index.html
+++ b/src/web/templates/index.html
@@ -74,6 +74,7 @@
+