diff --git a/addon.xml b/addon.xml index 202e7c9..0df2110 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ diff --git a/resources/lib/parsemanifest.py b/resources/lib/parsemanifest.py index a35ea26..06fbbb5 100644 --- a/resources/lib/parsemanifest.py +++ b/resources/lib/parsemanifest.py @@ -44,7 +44,8 @@ def extract_tracks(manifest): t['filename'] = m.group(1) t['start_number'] = m.group(2) if t['contentType'] in ['text', 'audio']: - new_lang = t['lang'][:2] + #new_lang = t['lang'][:2] + new_lang = re.sub(r'-[A-Z]{2}', '', t['lang']) if t['value'] == 'caption': new_lang += '-[CC]' if t['value'] == 'forced-subtitle': new_lang += '-[Forced]' t['new_lang'] = new_lang diff --git a/resources/lib/plugin.py b/resources/lib/plugin.py index 6d617b2..ab80113 100644 --- a/resources/lib/plugin.py +++ b/resources/lib/plugin.py @@ -54,9 +54,11 @@ def play(params): preferred_server = addon.getSetting('preferred_server') enable_uhd = addon.getSettingBool('uhd') + dolbyvision = addon.getSettingBool('dolbyvision') + hdr10 = addon.getSettingBool('hdr10') enable_hdcp = bool(addon.getSettingBool('hdcp_enabled')) if slug: - data = sky.get_playback_info(info['content_id'], info['provider_variant_id'], preferred_server, uhd=enable_uhd, hdcpEnabled=enable_hdcp) + data = sky.get_playback_info(info['content_id'], info['provider_variant_id'], preferred_server, uhd=enable_uhd, hdcpEnabled=enable_hdcp, dolbyvision=dolbyvision, hdr10=hdr10) else: if params.get('content_id') and params.get('provider_variant_id'): data = sky.get_playback_info(params['content_id'], params['provider_variant_id'], preferred_server, hdcpEnabled=enable_hdcp) diff --git a/resources/lib/sky.py b/resources/lib/sky.py index c46eb4c..6c19813 100644 --- a/resources/lib/sky.py +++ b/resources/lib/sky.py @@ -621,7 +621,7 @@ def request_playback_tokens(self, url, post_data, content_type, preferred_server res['license_token'] = data['protection']['licenceToken'] return res - def get_playback_info(self, content_id, provider_variant_id, preferred_server='', uhd=False, hdcpEnabled=False): + def get_playback_info(self, content_id, provider_variant_id, preferred_server='', uhd=False, hdcpEnabled=False, hdr10=False, dolbyvision=False): url = self.endpoints['playouts'] post_data = { "device": { @@ -662,7 +662,14 @@ def get_playback_info(self, content_id, provider_variant_id, preferred_server='' {"protection": "WIDEVINE", "container": "ISOBMFF", "transport": "DASH","acodec": "AAC", "vcodec": "H265"} ) post_data['device']['maxVideoFormat'] = 'UHD' - post_data['device']['supportedColourSpaces'] = ["DolbyVision", "HDR10", "SDR"] + + # Order is important + post_data['device']['supportedColourSpaces'] = [] + if dolbyvision: + post_data['device']['supportedColourSpaces'].append('DolbyVision') + if hdr10: + post_data['device']['supportedColourSpaces'].append('HDR10') + post_data['device']['supportedColourSpaces'].append('SDR') #print_json(post_data) return self.request_playback_tokens(url, post_data, 'application/vnd.playvod.v1+json', preferred_server) diff --git a/resources/settings.xml b/resources/settings.xml index c9170d6..cb37072 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -4,6 +4,8 @@ + +