ByteScope

DRM Check

Widevine test and DRM check — L1, L2 or L3, HDCP 2.2, and the Netflix 480p problem, in this tab.

Nothing is uploaded. The scan asks this browser's Encrypted Media Extensions in this tab and never talks to a license server.

This browser

checking

checking

navigator.requestMediaKeySystemAccess
checking
widevineLevel
checking

Why Netflix might stay at 480p

checking

Key systems

key systempresent
Widevinecom.widevine.alphaGoogle's CDM. Chrome, Edge, Firefox, Android. The one Netflix uses on those browsers.checking
PlayReady (recommendation)com.microsoft.playready.recommendationMicrosoft's CDM. Edge on Windows. Same job as Widevine, different vendor.checking
PlayReadycom.microsoft.playreadyMicrosoft's CDM. Edge on Windows. Same job as Widevine, different vendor.checking
FairPlaycom.apple.fpsApple's CDM. Safari and Apple devices. Robustness strings here are Widevine's, not FairPlay's.checking
FairPlay 1.0com.apple.fps.1_0Apple's CDM. Safari and Apple devices. Robustness strings here are Widevine's, not FairPlay's.checking
ClearKeyorg.w3.clearkeyThe W3C test CDM. Almost every browser has it — a control that EME itself is wired up.checking

Widevine robustness

Each rung is a separate requestMediaKeySystemAccess. Reject means this rung is unsupported, not that the table broke.

robustnesstrackpresent

Nothing has been asked yet. Press Probe DRM to query this browser.

HDCP (getStatusForPolicy)

4K HDR streams usually need HDCP 2.2 usable. Each value is a MediaKeyStatus — not a boolean.

minHdcpVersionMediaKeyStatus

highest usable: checking

Typical browser support

Typical picture only. Trust the live rows above. Cells marked ? were not verified on a real device here.

API / CDMChromeEdgeFirefoxSafari
requestMediaKeySystemAccessChrome, Edge, Firefox, Safari. A reject is 'this config is unsupported', not a crash.
com.widevine.alphaChrome, Edge, Firefox. Safari: FairPlay instead.
PlayReadyEdge on Windows. Other Edge builds and other browsers: typically no. macOS Edge untested.
com.apple.fpsSafari. Chromium and Firefox: no.
org.w3.clearkeyThe EME control. Almost every current browser.
MediaKeys.getStatusForPolicyChrome and Edge: yes. Safari: no. Firefox: untested in this environment.?
Widevine L1 (typical)Android Chrome with a TEE often yes. Desktop Chrome is typically L3.

This browser, right now: checking

About this tool

This page answers one question people actually type: why is Netflix only 480p? Nothing is uploaded, and no license request is sent. After you run the probe it calls navigator.requestMediaKeySystemAccess() for Widevine, PlayReady, FairPlay and ClearKey, walks Widevine robustness one rung at a time, then asks getStatusForPolicy({ minHdcpVersion }) for HDCP 1.0 through 2.3. L3 plus a missing HDCP 2.2 is the usual answer. The competing pages are engineering demos; this one is written for a person.

Key systems, not a boolean

requestMediaKeySystemAccess rejects when a key system or config is missing. A reject is the normal 'no', not an error, and each call is try/caught so one miss cannot take the table down. ClearKey is the control: almost every browser has org.w3.clearkey, so if ClearKey fails, Encrypted Media Extensions itself is not wired. Widevine is com.widevine.alpha. PlayReady is Edge-on-Windows. FairPlay is Safari (com.apple.fps / com.apple.fps.1_0).

L1 versus L3

Widevine does not expose a securityLevel field to the web. The page asks for "", SW_SECURE_CRYPTO, SW_SECURE_DECODE, HW_SECURE_CRYPTO, HW_SECURE_DECODE, HW_SECURE_ALL as video robustness and lists every result. HW_SECURE_ALL or HW_SECURE_DECODE passing is L1 (keys and decode in a TEE). Only SW_SECURE_* passing is L3 (software CDM — streamers typically cap at SD). HW_SECURE_CRYPTO alone is Widevine L2; this page will not collapse that into L1 or L3. A timeout is unknown, never a guessed 'no'.

HDCP 2.2

MediaKeys.getStatusForPolicy is how a page asks whether the current output can enable a given HDCP version. Safari does not implement it — that region is unsupported, not false. Each return is a MediaKeyStatus (usable, output-restricted, output-downscaled, …), printed in full. 4K HDR streams usually need HDCP 2.2 usable. If that rung is not usable, that is a common reason quality is cut.

Evidence, then a sentence

The robustness table and the HDCP table are the evidence. The sentence at the top is derived from them: L3, missing HDCP 2.2, both, neither, or 'we could not tell'. It will not flatten those into a single traffic-light.

What this browser has

Feature detection runs after mount. About and FAQ render in every browser, including ones with no EME. Desktop Chrome is typically Widevine L3. Android Chrome with a TEE is often L1. Safari is FairPlay, not Widevine. Trust the live rows, not the typical-support matrix.

Frequently asked questions

Why is my Netflix only 480p?

On Chrome, Edge and Firefox the usual pair is Widevine L3 plus HDCP that cannot do 2.2. L3 is a software CDM; Netflix (and similar apps) typically refuse HD on it. HDCP 2.2 is what 4K HDR licenses ask for. This page prints both. If both look fine, the cap is probably the plan, the app, or a display path this tab cannot see.

What is Widevine L1 versus L3?

L1 keeps keys and decode inside a hardware Trusted Execution Environment. L2 keeps keys in the TEE but decodes in software — most streamers still cap it the way they cap L3. L3 is software throughout. The web API does not return those letters; the page infers them from which robustness strings requestMediaKeySystemAccess accepts. HW_SECURE_ALL / HW_SECURE_DECODE → L1. HW_SECURE_CRYPTO as the ceiling → L2. Only SW_SECURE_* → L3. A timeout stays unknown.

What does HDCP 2.2 have to do with 480p?

A 4K HDR license usually requires HDCP 2.2 Type 1 on the output. getStatusForPolicy({ minHdcpVersion: "2.2" }) returning anything other than usable is the browser saying that policy cannot be met. That is a quality cap, not a broken cable diagnostic. Safari does not expose the API, so this page will not pretend it ran the check.

Do you send a license request or upload anything?

No. There is no license server, no generateRequest, no session. The scan is capability queries in this tab. ClearKey passing does not mean a movie will play; it means EME is present.

Safari shows no Widevine and HDCP as unsupported. Is that a fail?

No. Safari uses FairPlay (com.apple.fps), not Widevine, and it does not implement getStatusForPolicy. Those rows are honest absences. Netflix on Safari is a FairPlay path; this page will not map it onto a Widevine L3 story.

ClearKey passed. Does DRM work?

ClearKey is the W3C test CDM. A pass means Encrypted Media Extensions is wired, not that Netflix, Disney+, or Prime will issue you a license. Read Widevine / PlayReady / FairPlay for the commercial CDMs.