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

The MediaKeySession interface of the EncryptedMediaExtensions API represents a context for message exchange with a content decryption module (CDM).


MediaKeySession.closed Read only
Returns a Promise signaling when a MediaKeySession closes. This promise can only be fulfilled and is never rejected. Closing a session means that licenses and keys associated with it are no longer valid for decrypting media data. 
MediaKeySession.expiration Read only
The time after which the keys in the current session can no longer be used to decrypt media data, or NaN if no such time exists. This value is determined by the CDM and measured in milliseconds since January 1, 1970, UTC. This value may change during a session lifetime, such as when an action triggers the start of a window.
MediaKeySession.keyStatuses Read only
Contains a reference to a read-only MediaKeyStatusMap of the current session's keys and their statuses.
MediaKeySession.sessionId Read only
Contains a unique string generated by the CDM for the current media object and its associated keys or licenses.

Event handlers

Sets the EventHandler called when there has been a change in the keys in a session or their statuses.
Sets the EventHandler called when the content decryption module has generated a message for the session.



Returns a Promise after notifying the current media session is no longer needed and that the CDM should release any resources associated with this object and close it.

Returns a Promise after generating a media request based on initialization data.
Returns a Promise that resolves to a boolean value after loading data for a specified session object. 
Returns a Promise after removing any session data associated with the current object.
Returns a Promise after loading messages and licenses to the CDM.


// TBD


Specification Status Comment
Encrypted Media Extensions
The definition of 'MediaKeySession' in that specification.
Recommendation Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support42 Yes ? ? Yes ?
closed42 Yes ? ? Yes ?
expiration42 Yes ? ? Yes ?
keyStatuses42 Yes ? ? Yes ?
sessionId42 Yes ? ? Yes ?
onkeystatuseschange55 ? ? ?42 ?
onmessage55 ? ? ?42 ?
close42 Yes ? ? Yes ?
generateRequest42 Yes ? ? Yes ?
load42 Yes ? ? Yes ?
remove42 Yes ? ? Yes ?
update42 Yes ? ? Yes ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4342 Yes ? Yes ? ?
closed4342 Yes ? Yes ? ?
expiration4342 Yes ? Yes ? ?
keyStatuses4342 Yes ? Yes ? ?
sessionId4342 Yes ? Yes ? ?
onkeystatuseschange4355 Yes ?42 ? ?
onmessage4355 Yes ?42 ? ?
close4342 Yes ? Yes ? ?
generateRequest4342 Yes ? Yes ? ?
load4342 Yes ? Yes ? ?
remove4342 Yes ? Yes ? ?
update4342 Yes ? Yes ? ?

Document Tags and Contributors

 Contributors to this page: fscholz, Sheppy, libbymc, jpmedley, Sebastianz, kscarfone
 Last updated by: fscholz,