github devine-dl/pywidevine v1.1.0

latest releases: v1.8.0, v1.7.0, v1.6.0...
2 years ago

Added

  • WVD (Widevine Device file) Version 2 bringing reduced file sizes by up to 30%~.
  • New CLI command create-device to create .wvd files (Widevine Device files) from RSA PEM/DER Private Keys and
    Client ID blobs. You can also provide VMP (FileHashes) data which will be merged into the Client ID blob.
  • New CLI command migrate that uses Device.migrate() and dump() to migrate older v1 Widevine Device files to v2.
  • New Device method migrate() to load an older Widevine Device file format. It is recommended to then use the
    dumps() method to save it as a new v2 Widevine Device file, which can then be loaded normally.
  • Support SignedDrmCertificate and DrmCertificate messages in Cdm.set_service_certificate(). Services can provide
    the certificate as a SignedMessage, SignedDrmCertificate, or a DrmCertificate. Only SignedMessage and
    SignedDrmCertificate are signed.
  • Privacy Mode can now be used in the test CLI command with the -p/--privacy flag.

Changed

  • Moved all .wvd Widevine Device file structures from Device to a _Structures class in device.py. The
    _Structures class can be imported and used directly, or via Device.structures.
  • Moved the majority of Widevine Device file migration code from the CLI command migrate to Device.migrate(). The
    CLI command migrate now internally uses Device.migrate().
  • Set Service Certificates are now stored as DrmCertificates instead of a SignedMessage as the signature and other
    data in the message is unused and unneeded.

Removed

  • Unused Widevine Device file flag send_key_control_nonce from v1 and v2 Structures as it was only used before initial
    release, and isn't a necessary nor useful flag.

Fixed

  • Correct the type argument name from type to type_ in Device.dump().

Security

  • Even though support for more kinds of Service Certificate Signatures were added, they are still unverified as the
    signing public key is was Unknown.

Don't miss a new pywidevine release

NewReleases is sending notifications on new releases.