diff --git a/vinetrimmer/key_store.db b/vinetrimmer/key_store.db index 5dec719..d127a05 100644 Binary files a/vinetrimmer/key_store.db and b/vinetrimmer/key_store.db differ diff --git a/vinetrimmer/parsers/m3u8.py b/vinetrimmer/parsers/m3u8.py index 7e15607..c483ad8 100644 --- a/vinetrimmer/parsers/m3u8.py +++ b/vinetrimmer/parsers/m3u8.py @@ -36,16 +36,41 @@ def parse(master, source=None): # get pssh if available # uses master.session_keys instead of master.keys as master.keys is ONLY EXT-X-KEYS and # doesn't include EXT-X-SESSION-KEYS which is whats used for variant playlist M3U8. + try: + psshPR = [ + session_key.uri.split(",")[-1] + for session_key in master.session_keys + if ( + session_key.keyformat.lower() == "com.microsoft.playready" + and + source == "DSNP" + and + x.stream_info.characteristics.lower().replace('"', "") in session_key.characteristics.lower().split(",") + ) + ][0] + except: + try: + psshPR = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "com.microsoft.playready"][0] + except IndexError: + psshPR = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "com.microsoft.playready"] try: - psshPR = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "com.microsoft.playready"][0] + psshWV = [ + session_key.uri.split(",")[-1] + for session_key in master.session_keys + if ( + session_key.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" + and + source == "DSNP" + and + x.stream_info.characteristics.lower().replace('"', "") in session_key.characteristics.lower().split(",") + ) + ][0] except IndexError: - psshPR = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "com.microsoft.playready"] - - try: - psshWV = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"][0] - except IndexError: - psshWV = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"] + try: + psshWV = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"][0] + except IndexError: + psshWV = [x.uri.split(",")[-1] for x in master.session_keys if x.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"] # if pssh: # pssh = base64.b64decode(pssh) # # noinspection PyBroadException @@ -83,28 +108,8 @@ def parse(master, source=None): descriptor=Track.Descriptor.M3U, # decryption encrypted=bool(master.keys or master.session_keys), - psshWV=[ - session_key.uri.split(",")[-1] - for session_key in master.session_keys - if ( - session_key.keyformat.lower() == "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" - and - source == "DSNP" - and - x.stream_info.characteristics.lower().replace('"', "") in session_key.characteristics.lower().split(",") - ) - ][0] or (psshWV if psshWV else None), - psshPR=[ - session_key.uri.split(",")[-1] - for session_key in master.session_keys - if ( - session_key.keyformat.lower() == "com.microsoft.playready" - and - source == "DSNP" - and - x.stream_info.characteristics.lower().replace('"', "") in session_key.characteristics.lower().split(",") - ) - ][0] or (psshPR if psshPR else None), + psshWV=psshWV, + psshPR=psshPR, # extra extra=(x, master) ) for x in master.playlists], diff --git a/vinetrimmer/vinetrimmer.yml b/vinetrimmer/vinetrimmer.yml index 16a18d6..700fccc 100644 --- a/vinetrimmer/vinetrimmer.yml +++ b/vinetrimmer/vinetrimmer.yml @@ -9,6 +9,7 @@ cdm: default: 'hisense_smarttv_he55a7000euwts_sl3000' Amazon: 'hisense_smarttv_he55a7000euwts_sl3000' Hotstar: 'xiaomi_mi_a1_15.0.0_60ceee88_8159_l3' + Jio: 'xiaomi_mi_a1_15.0.0_60ceee88_8159_l3' DisneyPlus: 'mtc_mtc_atv_atv_sl3000' Sunnxt: 'xiaomi_mi_a1_15.0.0_60ceee88_8159_l3' @@ -24,7 +25,8 @@ cdm_api: credentials: iTunes: 'username:password' Hotstar: 'username:password' - DisneyPlus: 'username:password' + DisneyPlus: 'tjp4252@gmail.com:Tjcooke@121382' + Sunnxt: '9860835343:Welcome@123' directories: temp: ''