- Supported Serve API:
v1.4.3
or newer
Added
- Support for big-int Key IDs in
PSSH
. All integer values are converted to a UUID and are loaded big-endian. - Import path shortcuts in the
__init__.py
package constructor to all the user classes.- Now you can do e.g.,
from pywidevine import PSSH
instead offrom pywidevine.pssh import PSSH
. - You can still do it the full direct way if you want.
- Now you can do e.g.,
- Parsing check to the raw DrmCertificate in
Cdm.set_service_certificate()
.
Changed
- Service Certificates are now stored in the session as a
SignedDrmCertificate
.- This is to keep the signature with the Certificate, without wrapping it in a SignedMessage unnecessarily.
- Reduced the maximum concurrent Cdm sessions from 50 to 16 as it seems to be a more common limit on more up-to-date
devices and versions of OEMCrypto. This also helps encourage people to close their sessions when they are no longer
required.
Fixed
- Acquisition of the Certificate's provider_id in
Cdm.set_service_certificate()
in some edge cases, but also when you
try to remove the certificate by setting it toNone
. - When exporting a PSSH object it will now do so in the same version it was initially loaded or created in. Previously
it would always dump as a v1 PSSH box due to a cascading check in pymp4. It now also honors the currently set version
in the case it gets overridden. - Improved reliability of computing License Signatures by verifying the signature against the original raw License
message instead of the re-serialized version of the message.- Some license messages when parsed would be slightly different when re-serialized against my protobuf, therefore the
computed signature would have always mismatched.
- Some license messages when parsed would be slightly different when re-serialized against my protobuf, therefore the