Encrypted Media Extensions API

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The Encrypted Media Extensions API provides interfaces for controlling the playback of content which is subject to a digital restrictions management scheme.

Access to this API is provided through Navigator.requestMediaKeySystemAccess().



Represents a specific encrypted event thrown when a HTMLMediaElement encounters some initialization data.


Contains the content and related data when the content decryption module (CDM) generates a message for the session.


Represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.


Represents a context for message exchange with a content decryption module (CDM).


A read-only map of media key statuses by key IDs.


Provides access to a key system for decryption and/or a content protection provider.

Extensions to other interfaces

The Encrypted Media Extensions API extends the following APIs, adding the listed features.


HTMLMediaElement.mediaKeys Read only

Provides a MediaKeys object that represents the set of keys that the element can use for decryption of media data during playback.


Sets the MediaKeys that will be used to decrypt media during playback.

encrypted event

Event that is fired on a HTMLMediaElement when initialization data is encountered in the media, indicating that it is encrypted.

Returns a Promise that fulfils to a MediaKeySystemAccess object that can be used to access a particular media key system, which can in turn be used to create keys for decrypting a media stream.


Encrypted Media Extensions
# navigator-extension-requestmediakeysystemaccess

Browser compatibility

BCD tables only load in the browser