diff --git a/resources/language/resource.language.en_au/strings.po b/resources/language/resource.language.en_au/strings.po index 38e4ff71..8af8a95e 100644 --- a/resources/language/resource.language.en_au/strings.po +++ b/resources/language/resource.language.en_au/strings.po @@ -1238,3 +1238,11 @@ msgstr "" msgctxt "#30737" msgid "Use alternate client details" msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index f7a4dbad..617dd240 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -1246,3 +1246,11 @@ msgstr "" msgctxt "#30737" msgid "Use alternate client details" msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" diff --git a/resources/language/resource.language.en_nz/strings.po b/resources/language/resource.language.en_nz/strings.po index efc4d969..4bc6dd25 100644 --- a/resources/language/resource.language.en_nz/strings.po +++ b/resources/language/resource.language.en_nz/strings.po @@ -1238,3 +1238,11 @@ msgstr "" msgctxt "#30737" msgid "Use alternate client details" msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" diff --git a/resources/language/resource.language.en_us/strings.po b/resources/language/resource.language.en_us/strings.po index 7d4d0558..1cee8f6f 100644 --- a/resources/language/resource.language.en_us/strings.po +++ b/resources/language/resource.language.en_us/strings.po @@ -1239,3 +1239,11 @@ msgstr "" msgctxt "#30737" msgid "Use alternate client details" msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" diff --git a/resources/lib/youtube_plugin/kodion/constants/const_settings.py b/resources/lib/youtube_plugin/kodion/constants/const_settings.py index 269f5416..ead2715e 100644 --- a/resources/lib/youtube_plugin/kodion/constants/const_settings.py +++ b/resources/lib/youtube_plugin/kodion/constants/const_settings.py @@ -47,4 +47,4 @@ HTTPD_WHITELIST = 'kodion.http.ip.whitelist' # (string) API_CONFIG_PAGE = 'youtube.api.config.page' # (bool) -ALTERNATIVE_CLIENT = 'youtube.client.alternative' # (bool) +CLIENT_SELECTION = 'youtube.client.selection' # (int) diff --git a/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py b/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py index 8122900c..6a2e2887 100644 --- a/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py +++ b/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py @@ -250,5 +250,5 @@ class AbstractSettings(object): def hide_short_videos(self): return self.get_bool(constants.setting.HIDE_SHORT_VIDEOS, False) - def use_alternative_client(self): - return self.get_bool(constants.setting.ALTERNATIVE_CLIENT, False) + def client_selection(self): + return self.get_int(constants.setting.CLIENT_SELECTION, 0) diff --git a/resources/lib/youtube_plugin/youtube/helper/video_info.py b/resources/lib/youtube_plugin/youtube/helper/video_info.py index 891eeaaf..45f651ce 100644 --- a/resources/lib/youtube_plugin/youtube/helper/video_info.py +++ b/resources/lib/youtube_plugin/youtube/helper/video_info.py @@ -579,10 +579,12 @@ class VideoInfo(object): PRIORITISED_CLIENTS = None def __init__(self, context, access_token='', api_key='', language='en-US'): + settings = context.get_settings() + self.video_id = None self._context = context self._data_cache = self._context.get_data_cache() - self._verify = context.get_settings().verify_ssl() + self._verify = settings.verify_ssl() self._language = language.replace('-', '_') self._access_token = access_token self._api_key = api_key @@ -590,17 +592,25 @@ class VideoInfo(object): self._calculate_n = True self._cipher = None - if self._context.get_settings().use_alternative_client(): - self.PRIORITISED_CLIENTS = (self.CLIENTS['android_embedded'], + client_selection = settings.client_selection() + # Alternate #1 + if client_selection == 1: + self.PRIORITISED_CLIENTS = (self.CLIENTS['android'], self.CLIENTS['android_testsuite'], self.CLIENTS['web']) + # Alternate #1 + elif client_selection == 2: + self.PRIORITISED_CLIENTS = (self.CLIENTS['android_embedded'], + self.CLIENTS['tv'], + self.CLIENTS['web']) + # Default else: self.PRIORITISED_CLIENTS = (self.CLIENTS['android_testsuite'], self.CLIENTS['android_embedded'], self.CLIENTS['web']) - self.CLIENTS['_common']['hl'] = context.get_settings().get_string('youtube.language', 'en_US').replace('-', '_') - self.CLIENTS['_common']['gl'] = context.get_settings().get_string('youtube.region', 'US') + self.CLIENTS['_common']['hl'] = settings.get_string('youtube.language', 'en_US').replace('-', '_') + self.CLIENTS['_common']['gl'] = settings.get_string('youtube.region', 'US') @staticmethod def generate_cpn(): diff --git a/resources/settings.xml b/resources/settings.xml index 2a688a35..14bfc452 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -564,10 +564,17 @@ - + 0 - false - + 0 + + + + + + + + 0