無料で試す
← ブログに戻る

DRMの仕組み:なぜストリーミング動画をダウンロードできないのか(技術解説)

こんな経験、あなたにもあるはずです。NetflixやYouTube Premium、その他のストリーミングプラットフォームで素晴らしい動画を見つけて保存しようとしたら、何も機能しなかった。yt-dlpはエラーを返す。画面録画ソフトは真っ黒な画面しか取得できない。オンラインのダウンロードツールは再生できないファイルを渡してくる。

これはバグではありません。意図した通りに動いているのです。

その裏にある技術はDRM——デジタル著作権管理と呼ばれます。実際の仕組みを理解することで、なぜ多くのダウンロードツールが失敗するのか、なぜ画面録画が真っ黒になるのか、そしてこのようなコンテンツを正しく扱うには何が必要なのかがわかります。

DRMとは何か

DRMとは、デジタルコンテンツへのアクセス、コピー、再生を制御する技術の集合体です。1990年代末からさまざまな形で存在していますが、現在の動画ストリーミングで重要なバージョンはWidevineと呼ばれる規格で、Googleが2010年に買収した会社が開発しました。

WidevineはChrome、Firefox、Edge、そしてほとんどのAndroidデバイスに組み込まれています。Netflixのようなストリーミングサービスがコンテンツを保護したいとき、鍵の必要な箱を渡すわけではありません。仕組みはもっとダイナミックで——はるかに洗練されています。

ストリーミングプラットフォームで再生ボタンを押したときに実際に何が起きるのか、簡略化したバージョンを説明します。

DRM再生フロー、ステップごとに解説

ステップ1:動画をリクエストする

再生を押します。ブラウザがストリーミングサービスのコンテンツサーバーに動画を求めるリクエストを送信します。

ステップ2:ライセンスのリクエスト

動画データが送信される前に、ブラウザはライセンスサーバーへ別のリクエストを送ります——このサーバーはストリーミングプラットフォーム(Netflix、YouTube、Disney+など)が運営しています。リクエストの内容はつまりこういうことです:「この動画を再生したいユーザーがいます。このデバイス、このブラウザ、このバージョンのWidevineを使っています。再生してもいいですか?」

ライセンスサーバーはアカウント、サブスクリプション状況、デバイス数の上限超過、地理的な地域、そして再生環境のセキュリティレベルを確認します。

ステップ3:ライセンスが発行される(または拒否される)

すべてが問題なければ、ライセンスサーバーはコンテンツ復号化キーを返します——ブラウザが動画ストリームを復号化するために使う一時的な暗号化キーです。このキーは:

  • 特定のデバイスとセッションに紐づけられている
  • 時間制限あり(多くの場合、セッション終了時に期限切れ)
  • JavaScriptやページ上で動くコードに直接公開されることは一切ない

ステップ4:暗号化された動画が届く

動画本体は暗号化されたセグメントとしてネットワークを通じて届きます。通常はDASH(HTTP経由の動的アダプティブストリーミング)プロトコル、またはAES-128暗号化を使ったHLSです。受け取るすべての動画チャンクはスクランブルがかかっており——キーがなければ再生できません。

ステップ5:復号化は保護された環境で行われる

ここが重要な部分です。復号化は傍受できる場所では起きません。信頼できる実行環境(TEE)——CPUまたはGPU上のハードウェアレベルのセキュアなエンクレーブで、オペレーティングシステムの他の部分から完全に隔離された場所——の中で行われます。

復号化された動画フレームはこの保護されたメモリ空間に存在し、レンダリングのために直接ディスプレイハードウェアへ渡されます。ソフトウェアが読める通常のシステムメモリを経由することは一切ありません。

なぜほとんどのダウンロードツールが失敗するのか

yt-dlp、ブラウザ拡張機能、またはオンラインダウンロードサイトがストリーミング動画を取得しようとするとき、この連鎖のどこかで動画ストリームを傍受しようとしています。それぞれのアプローチがどこで失敗するか追ってみましょう。

ネットワークストリームの取得

ネットワークトラフィックを監視して動画セグメントを保存するツールは、暗号化されたデータしか取得できません。コンテンツ復号化キーなしでは、これらのセグメントは再生不能です。ファイルのダウンロードは問題なくできますが、どの動画プレーヤーでも開けません。

これが最も一般的な失敗パターンです。ファイルは手に入る——でも何も再生されない。

video要素の傍受

一部のツールはJavaScriptを使ってHTML <video> 要素から動画を取得しようとします。DRMコンテンツではこれは機能しません。メディアソースはMediaKeySessionオブジェクトで——実際の動画バイトはJavaScript環境に公開されることは一切ありません。スクリプトが傍受できるものは何もないのです。

CDMを直接使う

コンテンツ復号化モジュール(CDM)——実際のWidevineソフトウェア——はブラックボックスです。Windowsでは .dll ファイル(widevinecdm.dll)として実装されており、Googleによって暗号化署名されています。改ざんされた環境では動作せず、起動時に自身の整合性を確認し、リバースエンジニアリングへの抵抗を特別に設計されています。

処理するキーは外部ソフトウェアが読める形でメモリに現れることはない——TEEへ直接渡されます。

なぜ画面録画が真っ黒になるのか

これが最も人を混乱させる点です。画面録画ソフトは画面全体を録画しているのに——なぜ動画の部分が黒く表示されるのか?

答えはWidevineセキュリティレベルル L1です。

Widevineは3つのセキュリティレベルを定義しています:

レベル 復号化が行われる場所 画面キャプチャはブロックされるか?
L1 ハードウェアTEE(CPU/GPUセキュアエンクレーブ) はい——出力パスが保護される
L2 暗号化にハードウェアTEE、処理にソフトウェア 部分的
L3 ソフトウェアのみ ハードウェア保護なし

L1システム——Chromeを実行している最新のWindowsパソコンとMacのほとんどが該当——では、復号化された動画フレームは保護された出力パスを通じてディスプレイコントローラーに直接渡されます。OSの画面キャプチャAPI(OBS、Bandicam、Windowsの内蔵レコーダーが使うもの)は合成されたディスプレイバッファを取得しますが、DRM動画はそのバッファに表示されない独立した保護レイヤーにレンダリングされます。

録画に映るもの:動画があった場所には黒い矩形。画面の他の部分は正常に録画されます。

Netflix、Disney+、YouTube PremiumはデスクトップのChromeで明示的にL1再生を要求しています。これが、数年前には機能していたかもしれない画面録画の回避策が、現代のハードウェアでは通常もう機能しない理由です。

(補足:一部の古いハードウェアはWidevineをソフトウェアモードのL3で実行しており、ハードウェア出力パスの保護がありません。古いマシンが淘汰されるにつれ、これはますます少なくなっています。)

VidBrowserがDRMコンテンツを扱う方法

VidBrowserは上述のすべてのツールとは全く異なるアプローチをとります。外部からストリームを傍受しようとするのではなく、DRMプロセスに合法的に参加する完全な認可ブラウザとして機能します。

VidBrowserでYouTube Premiumの動画やNetflixのエピソードを再生すると、ライセンスリクエストサイクル全体が通常通り完了します。アカウントが認証され、ライセンスが発行され、復号化がTEE内で行われます。VidBrowserは暗号化されたストリームを傍受しようとしたり、CDMを破ろうとしたりしません。

コンテンツのキャプチャは、認可された再生パイプラインの段階で行われます——その段階でVidBrowserはブラウザ自身として、レンダリングされた出力への正当なアクセス権を持っています。DRMを回避するのではなく、再生の認可されたエンドポイントであることによって実現しています。

実用的な結果:Netflix、Disney+、Amazon Prime Video、YouTube Premium、OnlyFansなどのプラットフォームのDRM保護されたコンテンツをローカルに保存でき、標準的な動画プレーヤーで再生でき、外部ツール、キー、改ざんされたソフトウェアは一切不要です。

VidBrowserを無料でダウンロードして、他のすべてのツールが失敗したプラットフォームで試してみてください。

DRMが防げないこと

完全を期すために:DRMはコンテンツストリームのデジタルコピーを防ぐために特別に設計されています。防ぐことができないのは:

  • スマートフォンのカメラで画面を撮影すること(明らかに低画質)
  • アナログキャプチャ——HDCP暗号化の前にキャプチャするHDMIキャプチャカード(ただし一部の設定でプラットフォームがこれを検出・ブロックできる)
  • 何を見たか記憶すること(ほとんどの法域でまだ合法)

すべての海賊行為を防ぐこともできません——コストと技術的難易度を大幅に上げますが、ハードウェアアクセス権を持つ決意した攻撃者は常に回避策を見つけます。DRMはカジュアルなコピーを防ぎ、商業規模の侵害を困難にするために設計されています——完璧なセキュリティを提供するためではありません。

よくある質問

すべてのストリーミングサービスはWidevineを使っていますか?

デスクトップではほとんどが使っています。Netflix、YouTube、Disney+、Amazon Prime、HBO Max/Max、HuluはいずれもChromeベースのブラウザでWidevineを使用しています。Appleのプラットフォームは FairPlayと呼ばれる別のシステムを使います。一部のプラットフォームはMicrosoftのPlayReadyを使います。VidBrowserはWidevineベースのプラットフォームをサポートしており、これらがストリーミングコンテンツの大部分を占めます。

VPNはDRMの回避に役立ちますか?

VPNはトラフィックを別の場所経由でルーティングし、地理的なライセンス制限(ある国では利用可能だが別の国では不可)に役立つことがあります。DRM暗号化自体には何の影響もありません——トラフィックがどこから来ているように見えても、コンテンツは引き続き暗号化されています。

動画が画面に表示されているのに、なぜキャプチャできないのですか?

短い答え:Widevine L1は画面キャプチャAPIがアクセスできない保護されたハードウェアレイヤーで動画をレンダリングします。目に見えるのは、ディスプレイハードウェアが直接レンダリングしているからです。同じマシンで動くソフトウェアは通常のシステムインターフェースではそれらのピクセルを読み取れません。

yt-dlpは違法ですか?

yt-dlp自体は合法なオープンソースツールです——法的問題を引き起こすのは使い方です。再配布する権利のない著作権保護されたコンテンツをダウンロードすることは、ツールが存在することとは異なる法的問題です。アクセス権のあるコンテンツの個人使用については、ほとんどの法域で法的リスクは低いとされていますが、これは法的アドバイスではありません。

NetflixはL1かL3のどちらを送るか、どうやって判断するのですか?

ブラウザはライセンスリクエスト時にWidevineセキュリティレベルを含む機能ハンドシェイクを送信します。ライセンスサーバーは最低セキュリティレベルを要求するライセンスを発行するよう選択でき、それを満たさないデバイスでの再生を完全に拒否できます。これが、Netflixの動画品質がFirefox(Widevine L1非対応)では720p上限だが、Chromeでは1080pや4Kで再生できる理由です。

その他のブログ