github devine-dl/pywidevine v1.5.3

latest releases: v1.8.0, v1.7.0, v1.6.0...
21 months ago
  • 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 to pssh.dumps().
    • repr(pssh) or just pssh 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 just to_widevine().

Fixed

  • Correct capitalization of the key_IDs field when making the new box in PSSH.new().
  • Correct the value type of key_IDs value when creating a new box in PSSH.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 to 1 in PSSH.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 that xpath can
    correctly locate any and all KID tags.
  • Support parsing PlayReadyObjects with more than one PlayReadyHeader (more than one record).

Don't miss a new pywidevine release

NewReleases is sending notifications on new releases.