]> jfr.im git - yt-dlp.git/commitdiff
Improve default subtitle language selection (#6240)
authorSiddhartha Sahu <redacted>
Thu, 16 Feb 2023 19:55:01 +0000 (14:55 -0500)
committerGitHub <redacted>
Thu, 16 Feb 2023 19:55:01 +0000 (01:25 +0530)
Authored by: sdht0

yt_dlp/YoutubeDL.py

index 33b4fb3ca915d99c0bc5c9af24b3811da5f7aae1..4e5c40b589444a263dc9657028193b2d520c83f1 100644 (file)
@@ -2810,10 +2810,14 @@ def process_subtitles(self, video_id, normal_subtitles, automatic_captions):
                     self.params.get('subtitleslangs'), {'all': all_sub_langs}, use_regex=True)
             except re.error as e:
                 raise ValueError(f'Wrong regex for subtitlelangs: {e.pattern}')
-        elif normal_sub_langs:
-            requested_langs = ['en'] if 'en' in normal_sub_langs else normal_sub_langs[:1]
         else:
-            requested_langs = ['en'] if 'en' in all_sub_langs else all_sub_langs[:1]
+            requested_langs = LazyList(itertools.chain(
+                ['en'] if 'en' in normal_sub_langs else [],
+                filter(lambda f: f.startswith('en'), normal_sub_langs),
+                ['en'] if 'en' in all_sub_langs else [],
+                filter(lambda f: f.startswith('en'), all_sub_langs),
+                normal_sub_langs, all_sub_langs,
+            ))[:1]
         if requested_langs:
             self.to_screen(f'[info] {video_id}: Downloading subtitles: {", ".join(requested_langs)}')