# DRM Check

> このタブで Widevine の L1／L2／L3 と、getStatusForPolicy が usable と返す HDCP を調べます。L3 と HDCP 2.2 不足が Netflix 480p の理由です。何も送りません。

- URL: https://bytescope.dev/ja/drm-check/
- Locale: ja · Also: [en](https://bytescope.dev/en/drm-check.md) · [zh-Hant](https://bytescope.dev/zh-Hant/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 不足です。競合はエンジニア向けデモが多く、ここは人向けに書いてあります。

### キーシステムは真偽ではない

`requestMediaKeySystemAccess` は、キーシステムや設定が無いと reject します。reject は普通の「いいえ」で、エラーではありません。1件ずつ try/catch するので、1件の失敗で表は落ちません。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` を出しません。このページは映像 robustness として `""`、`SW_SECURE_CRYPTO`、`SW_SECURE_DECODE`、`HW_SECURE_CRYPTO`、`HW_SECURE_DECODE`、`HW_SECURE_ALL` を順に尋ね、結果を全部出します。`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 を有効にできるかを聞く API です。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 などは HD を出しません。4K HDR のライセンスは HDCP 2.2 を要求します。このページは両方出します。どちらも問題なければ、料金プランやアプリ、このタブから見えない表示経路のことが多いです。

### Widevine の L1 と L3 は何が違いますか？

L1 は鍵と復号をハードウェアの Trusted Execution Environment に置きます。L2 は鍵だけ TEE、映像の復号は外。配信側の多くは L3 と同じ上限をかけます。L3 は全部ソフトウェアです。ウェブ API は L1／L2／L3 という文字を返しません。どの `robustness` を `requestMediaKeySystemAccess` が受け入れるかから読みます。`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` もセッションもありません。走査はこのタブの能力問い合わせだけです。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/ja/codec-check.md) — HEVC、AV1、VP9 を復号できるか。「再生できない」のもう半分です。
- [HDR Test](https://bytescope.dev/ja/hdr-test.md) — このウィンドウは本当に HDR か。dynamic-range、P3、輝度の階段。
- [Video Info Inspector](https://bytescope.dev/ja/video-info.md) — ファイルを落とすと、コーデック、ビットレート、HDR、再生できない理由。
