From e3442d27936cf8dbf9c572e4060490d7b2b4a86b Mon Sep 17 00:00:00 2001 From: chu23465 <130033130+chu23465@users.noreply.github.com> Date: Wed, 16 Apr 2025 18:23:59 +0530 Subject: [PATCH] I am Stupid --- scripts/dsnp_kid_fix.py | 10 ++++++++++ vinetrimmer/commands/dl.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 scripts/dsnp_kid_fix.py diff --git a/scripts/dsnp_kid_fix.py b/scripts/dsnp_kid_fix.py new file mode 100644 index 0000000..5105d73 --- /dev/null +++ b/scripts/dsnp_kid_fix.py @@ -0,0 +1,10 @@ +import uuid +import base64 +import xmltodict + +psshPR = """FAMAAAEAAQAKAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgA5ADkAVgBpAFIAdwA3AEsAcgBrAHkAVgBSADEAVQBnAFYAUQBCAG4AVQBRAD0APQAiAD4APAAvAEsASQBEAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAVQBOAEoAVQBHAGgAdwB3AHIAVQBPAEsAZgBYACsAUQBvAG4AVwBGAFcAZwA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEsASQBEAD4AOQA5AFYAaQBSAHcANwBLAHIAawB5AFYAUgAxAFUAZwBWAFEAQgBuAFUAUQA9AD0APAAvAEsASQBEAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=""" + +xml_str = base64.b64decode(psshPR).decode("utf-16-le", "ignore") +xml_str = xml_str[xml_str.index("<"):] +kids = [uuid.UUID(base64.b64decode(kid_xml['@VALUE']).hex()).bytes_le.hex() for kid_xml in xmltodict.parse(xml_str)['WRMHEADER']['DATA']['CUSTOMATTRIBUTES']['KIDS']['KID']] +print(kids) \ No newline at end of file diff --git a/vinetrimmer/commands/dl.py b/vinetrimmer/commands/dl.py index 903d4f1..ede629d 100644 --- a/vinetrimmer/commands/dl.py +++ b/vinetrimmer/commands/dl.py @@ -617,7 +617,7 @@ def result(ctx, service, quality, closest_resolution, range_, wanted, alang, sla f"label=0:key_id={track.kid.lower()}:key={track.key.lower()}", # Apple TV+ needs this as shaka pulls the incorrect KID, idk why f"label=1:key_id=00000000000000000000000000000000:key={track.key.lower()}", - ]) if service_name != "DisneyPlus" else ",".join(["label={index}:key_id={key}:key={content_keys[key]}" for index, key in enumerate(content_keys)]), + ]) if service_name != "DisneyPlus" else ",".join([f"label={index}:key_id={key}:key={content_keys[key]}" for index, key in enumerate(content_keys)]), # This right here is a hack as DSNP has 2 kids and returns 2 keys. FFS. "--temp_dir", directories.temp ], check=True) except subprocess.CalledProcessError: