From 0d2d3353a900d27331a4de613c4149af385caaf4 Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 7 May 2023 09:47:03 +0700 Subject: [PATCH] add extractor lang, #316 --- tubearchivist/home/config.json | 1 + tubearchivist/home/src/frontend/forms.py | 1 + tubearchivist/home/src/index/generic.py | 8 +++++++- tubearchivist/home/templates/home/settings.html | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tubearchivist/home/config.json b/tubearchivist/home/config.json index 5c91fd15..2a30cedb 100644 --- a/tubearchivist/home/config.json +++ b/tubearchivist/home/config.json @@ -33,6 +33,7 @@ "comment_sort": "top", "cookie_import": false, "throttledratelimit": false, + "extractor_lang": false, "integrate_ryd": false, "integrate_sponsorblock": false }, diff --git a/tubearchivist/home/src/frontend/forms.py b/tubearchivist/home/src/frontend/forms.py index 19b30581..edde00ce 100644 --- a/tubearchivist/home/src/frontend/forms.py +++ b/tubearchivist/home/src/frontend/forms.py @@ -122,6 +122,7 @@ class ApplicationSettingsForm(forms.Form): downloads_autodelete_days = forms.IntegerField(required=False) downloads_format = forms.CharField(required=False) downloads_format_sort = forms.CharField(required=False) + downloads_extractor_lang = forms.CharField(required=False) downloads_add_metadata = forms.ChoiceField( widget=forms.Select, choices=METADATA_CHOICES, required=False ) diff --git a/tubearchivist/home/src/index/generic.py b/tubearchivist/home/src/index/generic.py index 921eb10f..6e82e545 100644 --- a/tubearchivist/home/src/index/generic.py +++ b/tubearchivist/home/src/index/generic.py @@ -37,8 +37,14 @@ class YouTubeItem: def get_from_youtube(self): """use yt-dlp to get meta data from youtube""" print(f"{self.youtube_id}: get metadata from youtube") + obs_request = self.yt_obs.copy() + if self.config["downloads"]["extractor_lang"]: + langs = self.config["downloads"]["extractor_lang"] + langs_list = [i.strip() for i in langs.split(",")] + obs_request["extractor_args"] = {"youtube": {"lang": langs_list}} + url = self.build_yt_url() - self.youtube_meta = YtWrap(self.yt_obs, self.config).extract(url) + self.youtube_meta = YtWrap(obs_request, self.config).extract(url) def get_from_es(self): """get indexed data from elastic search""" diff --git a/tubearchivist/home/templates/home/settings.html b/tubearchivist/home/templates/home/settings.html index e739fde1..25228dd4 100644 --- a/tubearchivist/home/templates/home/settings.html +++ b/tubearchivist/home/templates/home/settings.html @@ -108,6 +108,11 @@ {{ app_form.downloads_format_sort }}
+
+

Prefer translated metadata language: {{ config.downloads.extractor_lang }}

+ This will change the language this video gets indexed as. That will only be available if the uploader provides translations. Add as two letter ISO language code, check the documentation which languages are available.
+ {{ app_form.downloads_extractor_lang}} +

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

Metadata is not embedded into the downloaded files by default.