Skip to content
Emil Pettersson edited this page Sep 10, 2020 · 3 revisions

The Widevine Content Decryption Module (CDM) implements Widevine DRM support as a module to the standardized EME APIs and is required to play back content protected by Widevine DRM. More information is available on the official Widevine homepage.

Migrating from an earlier CDM version

Due to a changes in the key system id used between major and/or certain vulnerable versions of the Widevine CDM, previously persisted licenses cannot be automatically migrated when such a CDM upgrade occurs. The recommended workaround is to listen for the widevine-ready event and then trigger a manual re-fetch of all persisted licenses in case an update was applied, i.e. if lastVersion is not null and not equal to version (or at least verify the loadability of previously persisted licenses). Also, as of this writing, the first request for a new license, temporary or persistent, after such an upgrade will fail with the CDM error Rejected with system code (75) (the same error as when trying to load a session persisted with the previous CDM). This happens because the CDM needs to update the storage to match the new system id. The suggested solution is to simply retry the request in such cases, as all subsequent requests should work as usual.

Secure storage

The more recent Widevine CDMs support a new VMP status, PLATFORM_SECURE_STORAGE_SOFTWARE_VERIFIED, that was not previously available. This status may be required by certain Widevine proxies to allow distribution of persistent licenses, depending on their configuration. To be able to support the new VMP status your applications needs to be signed with persistent licenses in mind. This is supported by our EVS service.

Clone this wiki locally