diff --git a/tubearchivist/home/config.json b/tubearchivist/home/config.json index 08f7645..f2fa66e 100644 --- a/tubearchivist/home/config.json +++ b/tubearchivist/home/config.json @@ -24,6 +24,7 @@ "sleep_interval": 3, "autodelete_days": false, "format": false, + "format_sort": false, "add_metadata": false, "add_thumbnail": false, "subtitle": false, diff --git a/tubearchivist/home/src/download/yt_dlp_handler.py b/tubearchivist/home/src/download/yt_dlp_handler.py index 529526f..2a57d03 100644 --- a/tubearchivist/home/src/download/yt_dlp_handler.py +++ b/tubearchivist/home/src/download/yt_dlp_handler.py @@ -312,6 +312,10 @@ class VideoDownloader: """build user customized options""" if self.config["downloads"]["format"]: self.obs["format"] = self.config["downloads"]["format"] + if self.config["downloads"]["format_sort"]: + format_sort = self.config["downloads"]["format_sort"] + format_sort_list = [i.strip() for i in format_sort.split(",")] + self.obs["format_sort"] = format_sort_list if self.config["downloads"]["limit_speed"]: self.obs["ratelimit"] = ( self.config["downloads"]["limit_speed"] * 1024 diff --git a/tubearchivist/home/src/frontend/forms.py b/tubearchivist/home/src/frontend/forms.py index 85c132a..e06fda8 100644 --- a/tubearchivist/home/src/frontend/forms.py +++ b/tubearchivist/home/src/frontend/forms.py @@ -113,6 +113,7 @@ class ApplicationSettingsForm(forms.Form): downloads_sleep_interval = forms.IntegerField(required=False) downloads_autodelete_days = forms.IntegerField(required=False) downloads_format = forms.CharField(required=False) + downloads_format_sort = forms.CharField(required=False) downloads_add_metadata = forms.ChoiceField( widget=forms.Select, choices=METADATA_CHOICES, required=False ) diff --git a/tubearchivist/home/templates/home/settings.html b/tubearchivist/home/templates/home/settings.html index 51012cc..eaccae7 100644 --- a/tubearchivist/home/templates/home/settings.html +++ b/tubearchivist/home/templates/home/settings.html @@ -95,6 +95,19 @@ {{ app_form.downloads_format }}
+
+

Force sort order to have precedence over all yt-dlp fields.
+ Currently: {{ config.downloads.format_sort }} +

+

Example configurations:

+ + Not all codecs are supported by all browsers. The default value ensures best compatibility. Check out the documentation for valid configurations.
+ {{ app_form.downloads_format_sort }} +
+

Current metadata embed setting: {{ config.downloads.add_metadata }}

Metadata is not embedded into the downloaded files by default.