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.


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).
Is 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.
Provides configuration information about the media key system.


Specification Status Comment
Encrypted Media Extensions Recommendation Initial definition

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support

35.0 (prefixed old version; ClearKey and Widevine)



38.0 (38.0) (Primetime (Windows-only) and Clear Key; MP4 only)

47.0 (47.0) (Widevine (Windows and Mac); MP4 only)

54 (54) (Widevine and Clear Key in VP9)

11 (Windows 8.1+ only; prefixed old version; PlayReady) 31 (Clear Key and Widevine)

7.0 (prefixed old version of API without matching MSE support; FairPlay Streaming)

8.0 (prefixed and usable with MSE)

Secure contexts only ? ? No support[1] ? ? ?
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support 43.0 (Yes)(PlayReady) ? ? ? ? 42.0
Secure contexts only No support ? ? ? ? ? ? ?

[1] Firefox currently allows Encrypted Media Extensions to be used in insecure contexts, despite this not being allowed in the specification. This will be changed in the near future, and starting in Firefox 55, deprecation warnings are output to the web console when this is done.