EME (Encrypted Media Extensions) is the W3C browser API that wires a web player to a DRM system for protected playback. It is the standardized bridge between JavaScript and the browser's Content Decryption Module (CDM) — the component (Widevine in Chrome, PlayReady in Edge, FairPlay in Safari) that holds keys and decrypts media inside a protected boundary the page cannot peer into.
EME does not do encryption or define a DRM; it standardizes the handshake. The player detects that media is encrypted, EME asks the CDM for a license challenge, the player ships that challenge to the license server and returns the response to the CDM, and the CDM decrypts. This lets one player codebase support different DRMs across browsers through a common API.
EME works hand-in-hand with MSE (Media Source Extensions): MSE feeds the media segments for adaptive streaming, EME handles their decryption. Together they are what make DRM-protected adaptive playback possible in a browser without plugins.


The handbook · 7 volumes
Fora Soft Video Engineering Handbook
EME is the browser bridge between your web player and the Content Decryption Module, and differences between Chrome, Edge, and Safari surface here. We wrote seven volumes covering the video stack; for EME start with Volume 3 on DRM, players, and web playback, then Volume 2 on CMAF and segment packaging, with encoding in Volume 1. Written by Nikolay Sapunov, CEO at Fora Soft.
Getting protected playback working in every browser through EME?
We will review your web player and license flow and send an EME plan covering each browser and its CDM. 250+ video products shipped since 2005.