diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-10-02 22:35:24 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-10-04 03:08:26 +0530 |
commit | e919569e6792b59c5e6826bf2e6b4ca874eb011d (patch) | |
tree | c30acd39ad411ba78864e1cd9d0bfa7c7f0a9b55 /yt_dlp/extractor/funimation.py | |
parent | ff1dec819a38addb73c9d52bd47fbac01b10e5d1 (diff) | |
download | hypervideo-pre-e919569e6792b59c5e6826bf2e6b4ca874eb011d.tar.lz hypervideo-pre-e919569e6792b59c5e6826bf2e6b4ca874eb011d.tar.xz hypervideo-pre-e919569e6792b59c5e6826bf2e6b4ca874eb011d.zip |
[funimation] Sort formats according to the relevant extractor-args
Diffstat (limited to 'yt_dlp/extractor/funimation.py')
-rw-r--r-- | yt_dlp/extractor/funimation.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/yt_dlp/extractor/funimation.py b/yt_dlp/extractor/funimation.py index 584688484..ede53b326 100644 --- a/yt_dlp/extractor/funimation.py +++ b/yt_dlp/extractor/funimation.py @@ -13,6 +13,7 @@ from ..utils import ( js_to_json, str_or_none, try_get, + qualities, urlencode_postdata, ExtractorError, ) @@ -180,6 +181,8 @@ class FunimationIE(InfoExtractor): formats, subtitles, thumbnails, duration = [], {}, [], 0 requested_languages, requested_versions = self._configuration_arg('language'), self._configuration_arg('version') + language_preference = qualities((requested_languages or [''])[::-1]) + source_preference = qualities((requested_versions or ['uncut', 'simulcast'])[::-1]) only_initial_experience = 'seperate-video-versions' in self.get_param('compat_opts', []) for lang, version, fmt in self._get_experiences(episode): @@ -227,10 +230,15 @@ class FunimationIE(InfoExtractor): }) for f in current_formats: # TODO: Convert language to code - f.update({'language': lang, 'format_note': version}) + f.update({ + 'language': lang, + 'format_note': version, + 'source_preference': source_preference(version.lower()), + 'language_preference': language_preference(lang.lower()), + }) formats.extend(current_formats) self._remove_duplicate_formats(formats) - self._sort_formats(formats) + self._sort_formats(formats, ('lang', 'source')) return { 'id': initial_experience_id if only_initial_experience else episode_id, |