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.

Book cover: Video Streaming, Volume 2 of the Fora Soft Video Engineering HandbookBook cover: Video Streaming, Volume 3 of the Fora Soft Video Engineering HandbookBook cover: Video Encoding, Volume 1 of the Fora Soft Video Engineering Handbook

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.

Browse the handbook on Amazon →7 volumes · 9,000+ pages · Kindle & paperback

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.

Book a 30-min call →WhatsApp →Email us →