# DRM Check

> 這個分頁測 Widevine 是 L1、L2 還是 L3，並列出 getStatusForPolicy 標成 usable 的 HDCP。L3 加上沒有 HDCP 2.2，就是 Netflix 只有 480p 的原因。不會上傳。

- URL: https://bytescope.dev/zh-Hant/drm-check/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/drm-check.md) · [ja](https://bytescope.dev/ja/drm-check.md)
- Runs: 不會上傳。只在這個分頁問 Encrypted Media Extensions，不會連授權伺服器。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

這一頁要答的，是大家真的會打的那句：為什麼我的 Netflix 只有 480p？不會上傳，也不會送授權請求。按下探測之後，它會呼叫 `navigator.requestMediaKeySystemAccess()` 問 Widevine、PlayReady、FairPlay、ClearKey，再把 Widevine 的 `robustness` 一級一級試過，最後用 `getStatusForPolicy({ minHdcpVersion })` 問 HDCP 1.0 到 2.3。常見答案就是 L3，再加上沒有 HDCP 2.2。外面能找到的多半是給工程師看的 demo；這一頁是寫給人看的。

### Key system 不是布林

`requestMediaKeySystemAccess` 在 key system 或設定不存在時會 reject。reject 是正常的「不行」，不是錯誤。每一筆各自 try/catch，一筆失敗不會讓整張表炸掉。ClearKey 是對照組：幾乎每個瀏覽器都有 `org.w3.clearkey`，它掛了就代表 Encrypted Media Extensions 本身沒接上。Widevine 是 `com.widevine.alpha`。PlayReady 是 Windows 上的 Edge。FairPlay 是 Safari（`com.apple.fps` / `com.apple.fps.1_0`）。

### L1 和 L3

Widevine 不會在網頁上給你一個 `securityLevel` 欄位。這一頁會依序問 `""`、`SW_SECURE_CRYPTO`、`SW_SECURE_DECODE`、`HW_SECURE_CRYPTO`、`HW_SECURE_DECODE`、`HW_SECURE_ALL` 這些影像 robustness，每一級的結果都列出來。`HW_SECURE_ALL` 或 `HW_SECURE_DECODE` 通過就是 L1（金鑰和解碼都在 TEE 裡）。只有 `SW_SECURE_*` 通過就是 L3（軟體 CDM，串流服務通常限制到 SD）。只有 `HW_SECURE_CRYPTO` 通過是 Widevine L2，這一頁不會把它說成 L1 或 L3。逾時就標 `unknown`，不會把不知道講成沒有。

### HDCP 2.2

`MediaKeys.getStatusForPolicy` 是頁面問「目前輸出能不能開某個 HDCP 版本」的方法。Safari 沒實作——那一區顯示 `unsupported`，不是 `false`。回傳值是 `MediaKeyStatus`（`usable`、`output-restricted`、`output-downscaled`……），照實印。4K HDR 串流通常要 HDCP 2.2 是 `usable`。那一級不是 `usable`，就是畫質被砍的常見原因。

### 先看證據，再看一句話

robustness 表和 HDCP 表才是證據。上面那句話是從表推的：L3、缺 HDCP 2.2、兩個都有、兩個都沒有，或「判斷不出來」。不會壓成一顆紅綠燈。

### 你這個瀏覽器有什麼

功能偵測等頁面掛上去才跑。說明和 FAQ 在所有瀏覽器都會出現，包括沒有 EME 的。桌機 Chrome 的 Widevine 多半是 L3。有 TEE 的 Android Chrome 常常是 L1。Safari 走 FairPlay，不是 Widevine。請以上面的實測為準，不要只看常見支援表。

## Limits

Does not unlock higher streaming quality or bypass DRM; it reports which key systems and security levels this browser exposes.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"drm-check"`; `result` is what EME reported — no streaming-capability inference.

- `emeAvailable` (boolean | null) — `null` = not probed yet; `false` = probed, EME missing; `true` = `requestMediaKeySystemAccess` exists.
- `keySystems` (array of objects) — Fixed key-system list. Each item is `{ id, present }`; `present` is `null` = not asked / timed out, `false` = asked, not present, `true` = present.
- `widevineLevel` (string) — `"L1"` | `"L2"` | `"L3"` | `"unknown"`. `"unknown"` = not judged (not asked, timed out, or budget spent).
- `widevineRobustness` (array of objects) — Video then audio robustness ladder. Each item is `{ robustness, kind, outcome }`; `kind` is `"video"` | `"audio"`; `outcome` is `"supported"` | `"unsupported"` | `"unknown"` (`"unknown"` = not asked / timed out).
- `hdcpApi` (string) — `"ok"` | `"unsupported"` | `"unknown"`. `"unknown"` = HDCP policy API not queried.
- `hdcpRungs` (array of objects) — Fixed HDCP version list. Each item is `{ version, outcome, status }`; `outcome` is `"status"` | `"unsupported"` | `"unknown"`; `status` is a MediaKeyStatus string when `outcome` is `"status"`, otherwise `null`.

## FAQ

### 為什麼我的 Netflix 只有 480p？

在 Chrome、Edge、Firefox，常見組合是 Widevine L3，再加上 HDCP 做不到 2.2。L3 是軟體 CDM，Netflix 這類 App 通常不給 HD。4K HDR 的授權會要求 HDCP 2.2。這一頁兩個都列。若兩個看起來都沒問題，上限多半在方案、App，或這個分頁看不到的顯示路徑。

### Widevine L1 和 L3 差在哪？

L1 把金鑰和解碼放在硬體 Trusted Execution Environment 裡。L2 金鑰在 TEE，解碼在軟體——多數串流服務還是用跟 L3 一樣的上限。L3 全程都是軟體。網頁 API 不會回這些字母；這一頁是看 `requestMediaKeySystemAccess` 接受哪些 `robustness`。`HW_SECURE_ALL` / `HW_SECURE_DECODE` → L1。最高通過的是 `HW_SECURE_CRYPTO` → L2。只有 `SW_SECURE_*` → L3。逾時就維持不明。

### HDCP 2.2 跟 480p 有什麼關係？

4K HDR 授權通常要求輸出有 HDCP 2.2 Type 1。`getStatusForPolicy({ minHdcpVersion: "2.2" })` 若不是 `usable`，就是瀏覽器在說這條政策達不到。那是畫質上限，不是在診斷線材壞了。Safari 不提供這個 API，這一頁不會假裝測過。

### 會送授權請求或上傳東西嗎？

不會。沒有授權伺服器、沒有 `generateRequest`、沒有 session。掃描只在這個分頁問能力。ClearKey 通過不代表電影播得了，只代表 EME 有接上。

### Safari 顯示沒有 Widevine、HDCP 是 unsupported，是失敗嗎？

不是。Safari 用 FairPlay（`com.apple.fps`），不是 Widevine，也沒有 `getStatusForPolicy`。沒有的就標沒有。Safari 上的 Netflix 走 FairPlay，這一頁不會把它說成 Widevine L3 的故事。

### ClearKey 通過了。DRM 能用嗎？

ClearKey 是 W3C 的測試用 CDM。通過代表 Encrypted Media Extensions 有接上，不代表 Netflix、Disney+、Prime 會發給你授權。商用 CDM 請看 Widevine / PlayReady / FairPlay 那幾列。

## Related tools

- [Codec Check](https://bytescope.dev/zh-Hant/codec-check.md) — 這個瀏覽器解不解得了 HEVC、AV1、VP9——「為什麼播不了」的另一半。
- [HDR Test](https://bytescope.dev/zh-Hant/hdr-test.md) — 這個視窗是不是真 HDR。dynamic-range、P3、亮度階梯。
- [Video Info Inspector](https://bytescope.dev/zh-Hant/video-info.md) — 丟一個檔進來：編碼、位元率、HDR，以及為什麼播不了。
