- Supported Serve API:
v1.4.3
or newer
Added
- New utility
load_xml()
to parse XML data with lxml ignoring Namespaces. - PSSH class now have
__str__
and__repr__
methods to print the object in more Human-friendly ways.str(pssh)
is now identical topssh.dumps()
.repr(pssh)
or justpssh
in some cases will result in a nice overview of the PSSHs contents.
- New
to_playready()
method to convert Widevine PSSH Data to PlayReady PSSH Data. Please note that the
Checksums for AES-CTR and COCKTAIL KIDs cannot be calculated as the Content Encryption Key would be needed.
Changed
- The System ID must now be explicitly specified when creating a new PSSH box in
PSSH.new()
.- This allows you to now create PlayReady PSSH boxes.
- The
playready_to_widevine()
method has been renamed to justto_widevine()
.
Fixed
- Correct capitalization of the
key_IDs
field when making the new box inPSSH.new()
. - Correct the value type of
key_IDs
value when creating a new box inPSSH.new()
. - Ensure Key IDs are list of UUIDs instead of bytes in
PSSH.new()
. - Create v0 PSSH boxes by only setting the
key_IDs
field when the version is set to1
inPSSH.new()
. - Fix loading of PlayReadyHeaders (and PlayReadyObjects) as PSSH boxes. It would previously load it under the
Widevine SystemID breaking all PlayReady-specific code after construction. - Parse Key IDs within PlayReadyHeaders by using the new
load_xml()
utility to ignore namespaces so thatxpath
can
correctly locate any and all KID tags. - Support parsing PlayReadyObjects with more than one PlayReadyHeader (more than one record).