diff --git a/vinetrimmer/objects/tracks.py b/vinetrimmer/objects/tracks.py index bbc2f14..97d59d0 100644 --- a/vinetrimmer/objects/tracks.py +++ b/vinetrimmer/objects/tracks.py @@ -175,10 +175,10 @@ class Track: # if an m3u, try get from playlist master = m3u8.loads(session.get(as_list(self.url)[0]).text, uri=self.url) for x in master.session_keys: - if x and x.keyformat.lower() == "com.microsoft.playready": + if x and x.keyformat.lower == "com.microsoft.playready": self.psshPR = x.uri.split(",")[-1] break - elif x and x.keyformat.lower() == f"urn:uuid:{uuid.UUID('edef8ba979d64acea3c827dcd51d21ed')}": + elif x and x.keyformat.lower == f"urn:uuid:{uuid.UUID('edef8ba979d64acea3c827dcd51d21ed')}": self.psshWV = x.uri.split(",")[-1] break for x in master.keys: @@ -195,12 +195,12 @@ class Track: xml_str = xml_str[xml_str.index("<"):] xml = load_xml(xml_str).find("DATA") # root: WRMHEADER - kid = xml.findtext("KID") # v4.0.0.0 - if not kid: # v4.1.0.0 - kid = next(iter(xml.xpath("PROTECTINFO/KID/@VALUE")), None) - if not kid: # v4.3.0.0 - kid = next(iter(xml.xpath("PROTECTINFO/KIDS/KID/@VALUE")), None) # can be multiple? - self.kid = uuid.UUID(base64.b64decode(kid).hex()).bytes_le.hex() + self.kid = xml.findtext("KID") # v4.0.0.0 + if not self.kid: # v4.1.0.0 + self.kid = next(iter(xml.xpath("PROTECTINFO/KID/@VALUE")), None) + if not self.kid: # v4.3.0.0 + self.kid = next(iter(xml.xpath("PROTECTINFO/KIDS/KID/@VALUE")), None) # can be multiple? + self.kid = uuid.UUID(base64.b64decode(self.kid).hex()).bytes_le.hex() #if not track.psshWV: # self.psshWV = Box.parse(Box.build(dict( # type=b"pssh",