DMMで購入した動画をダウンロードする方法
DMM/Fanzaで動画を購入後、MP4形式でローカルにダウンロードする方法は?公式が提供する再生チャネルにはこのオプションが含まれていません。

いわゆるダウンロードも、暗号化されたdcvファイルをダウンロードするだけで、専用のプレイヤーと組み合わせて初めて再生が可能です。

では、暗号化されていない動画ファイルをダウンロードするにはどうすればよいでしょうか?やはりオンライン再生が突破口になります。パソコンで再生できれば、必ずダウンロードする方法があります。cat-catchを通じて、ページが以下のリソースを読み込んでいることがわかります:

しかし、直接ダウンロードしようとすると、取得したファイルは開くことができません:

なぜなら、DASH (Dynamic Adaptive Streaming over HTTP) 技術を使用しているからです。これは完全なMP4ファイルを直接提供するのではなく、MPD (Media Presentation Description) ファイルをインデックスとして使用し、動画と音声を無数の.m4sまたは.tsの小さなセグメントに分割して転送します。したがって、核心はMPDリンクを取得することです。
.png)
しかし、DASHは単なる転送プロトコルであり、暗号化は担当していません。そのため、さらに調査して、その暗号化方式が何であるかを確認する必要があります。F12でコンソールを開き、「license」関連のリクエスト(https://mlic.dmm.co.jp/drm/clearkey/license)を発見します:

これは ClearKey の標準フォーマットです: JWK (JSON Web Key)。これは非常に直感的で、鍵 ID (kid) と鍵 (k) を直接配列内に配置しています:
kidは鍵のIDで、この鍵がどのストリームに対応するかを識別するために使用されます。このbase64をhexに変換します:GcbW7lIkNvGzbMd1M5GmfQ->19c6d6ee522436f1b36cc7753391a67dk文字列は非常に長いです(約250文字以上)。標準的なClearKeyでは、鍵は通常16バイト(32桁のHex)です。したがって、このように長いk値は、通常、DMMが応答内で実際の鍵を暗号化しているか、またはこれがラップされたトークンであることを示しています。しかし、DMMのような大規模なプラットフォームでは、通常、この長い文字列を処理して元の32桁のHex鍵を取得するために、特定の復号スクリプトやツール(専用のブラウザ拡張機能/スクリプトなど)が必要です。したがって、鍵を手動で解読することは非常に困難であり、最善の方法はやはり「メモリ取得」です。
ClearKey メカニズム:その名の通り、「平文鍵」です。送信中にk値が複雑にラップされている可能性がありますが(上記の超長文字列)、W3C標準は定めています:ブラウザは、このデータを標準的なAES-128鍵に戻し、ブラウザのコンテンツ復号モジュール(CDM)に渡さなければなりません。
したがって、突破口は次の点にあります:ClearKeyの復号ロジックは、通常、ブラウザのユーザーモードプロセス内で完了します。復号エンジンを動作させるために、システムはメモリ内の特定の時点で、完全に解かれた16バイトの元の鍵を保持している必要があります。
ブラウザ拡張機能 EME Logger をインストールし、サイトをリフレッシュすると、対応するログが取得できます:

ローカルファイルとして保存し、開いてMediaKeySession.updateを検索します。
.png)
これらの0x7b、0x22などの16進数値は、実際にはコンピュータ内の文字のASCIIコードです。変換を通じて、このデータブロックが実際にはJSON文字列であることを発見しました。
0x7b={0x22="0x6b, 0x65, 0x79, 0x73=keys
データブロック全体を変換すると、標準的なJWK (JSON Web Key) 構造が得られます:
{
"keys": [
{
"kty": "oct",
"k": "t55KG1DxXXXXXXXXXXXXXX",
"kid": "GcbW7lIkNvGzbMd1M5XXXX"
}
]
}再度、Base64URLからHexへの変換を行います:
KID: GcbW7lIkNvGzbMd1M5GmfQ 19c6d6ee522436f1b36cc7753391a67d
Key: t55KG1DxXXXXXXXXXXXXXX b79e4a1b50f15d75d75d75d75d75d75d
これで、N_m3u8DL-REを使用してファイルをダウンロードできます:

ダウンロードが完了すると、動画と音声が自動的に結合され、最終ファイルが得られます:

最後に、私はこの一連の流れをすべてまとめて、Chrome拡張機能にしました:プロジェクトリンク。詳細な紹介とダウンロードリンクが含まれています。お役に立てたなら、ぜひ無料のStarをください。デモ動画は以下の通りです: