Encrypted Media Extensions API

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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

Interfaces

MediaKeyMessageEvent
Contains the content and related data when the content decryption module (CDM) generates a message for the session.
MediaKeys
Represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.
MediaKeySession
Represents a context for message exchange with a content decryption module (CDM).
MediaKeyStatusMap
Is a read-only map of media key statuses by key IDs. 
MediaKeySystemAccess
Provides access to a Key System for decryption and/or a content protection provider.
MediaKeySystemConfiguration
Provides configuration information about the media key system.

Specifications

Specification Status Comment
Encrypted Media Extensions Recommendation Initial definition

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 42
Notes
Full support 42
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Edge Full support YesFirefox Full support Yes
Notes
Full support Yes
Notes
Notes Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
Notes In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
Notes In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
IE ? Opera Full support 29
Notes
Full support 29
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Opera 45.
Safari ? WebView Android Full support 43
Notes
Full support 43
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until version 58.
Chrome Android Full support 42
Notes
Full support 42
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Edge Mobile Full support YesFirefox Android Full support Yes
Notes
Full support Yes
Notes
Notes Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
Notes In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
Notes In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
Opera Android Full support 29
Notes
Full support 29
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Opera 45.
Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.