NETFLIX で画面キャプチャできない理由→DRM が機能してたからだった
iPad で Netflix を見ていて、好きなシーンを画面キャプチャをしようとしたら、真っ黒ではありませんか。→ なぜか字幕だけキャプチャできている。。
他にも Amazon Prime も同様に画面キャプチャで真っ黒になったので、Javascript でそんなことできるの?と気になったので、その仕組みを調べることに。。
DRM が原因であることはすぐにわかった
DRM は、Digital Rights Management の略で、動画などのデジタルコンテンツを保護する仕組み。例えば、動画ダウンロードしても見れなかったり、ネット回線に繋がっていないと見れいないのは、この機能が効いているから。
画面キャプチャで真っ黒になるのもこの DRM の せい おかげということはすぐにわかった。でももう少し詳細に仕組みが分からないと納得いかない。。ので調べてみることに。
具体的には、コンテンツプロバイダーとライセンスプロバイダーとのやりとりの話
Netflix はデジタルコンテンツを配信している "コンテンツプロバイダー" と呼ばれます。
そしてそのコンテンツを再生するにはライセンスプロバイダーからライセンスを入手する必要があります。
そのライセンス取得プロセス (= CDM) と ライセンスの利用方法はウェブの標準仕様 (= EME) で定義されています。ここでは詳細な説明を割けますが、この認証プロセスを通らないと、コンテンツは見ることができません。
ということで、画面キャプチャで撮られた画像もこのような認証プロセスを通らないと見ることができないのです。
上は動画を見るブラウザの話でしたが、
画面キャプチャ機能は、OS (Windows や iPadOS) から提供されており、ブラウザの時と同様に OS が認証プロセスを処理しているようです。
→ その処理の結果、ライセンスプロバイダーがその OS からの画面キャプチャを許可していないため、その認証プロセスが通らず、暗号化されたコンテンツを解読できない結果、真っ黒な画面となっていたのでした。
逆に言うと、認証プロセスを使わない別プログラムを使えば、キャプチャは可能になります。
例えば、Windows 標準の Snipping Tool ( OS 標準なのにこれは使えるのね。。) やサードパーティーの画面キャプチャツールを使えば可能になります。
それでも残る疑問
実はブラウザからハードウェアアクセラレーション機能を OFF にすると、画面キャプチャが可能です。。。
どうやらハードウェアアクセラレーション機能を OFF にすると、HDCP (著作権保護技術) が使えず、そのためコンテンツが暗号化されずにモニターまで送られるため、画面キャプチャできているらしい。
→ HDCP 非対応だとそもそもコンテンツ再生しないケースもあるようなので本当かは疑問。。
もう少しオフィシャルなサイトからの情報がほしいところだけど。。。わかり次第追記します。
参考までに、下記を知っていたら、より理解が深まります。
CDM ( Content Decryption Module )
デジタルコンテンツ暗号化を解除するモジュール。
「デジタルコンテンツの保護」とは、そのコンテンツを暗号化し、それを解除しないと見れない仕組みで、その解除にはカギ (=長い文字列) が必要です。
この CDM は、暗号化されているコンテンツとそれを解除するためのカギを渡すことで、デジタルコンテンツが見れるようにしてくれる存在です。
EME ( Encrypted Media Extensions )
プラグインなしでウェブでデジタルコンテンツをみるための W3C 仕様。
(仕様の詳細ページ: https://w3c.github.io/encrypted-media/#introduction )
つまりは、ブラウザが CDM をどのように使えばいいかを細かく決めたルールで、これを実装していないと NETFLIX などの動画コンテンツが見れないので、各種プラウザは対応する必要がでてきました。
Firefox が渋っていたのは、どうやら DRM の仕組みがブラックボックスなのが嫌だったようです。
この記事が気に入ったらサポートをしてみませんか?