Githubの公式カスタム レシーバーを使用しており、MPEG-DASH Widevine で保護されたビデオ ストリームを再生しようとしています。レシーバーは Nexus Player 5.1.1 で実行されています。customData とライセンス サーバーの URL を正しく設定しています。問題は、プレーヤー (DRM コンポーネント) が、ライセンス サーバーへの POST 要求に必要なデータを正しく生成していないことです。このデータは、PSSH ボックスからのデータで生成され、DRM クライアントに関する情報などを含む必要があります。以下は、リクエスト本文が 2 バイト (08 04) のみを含む、ほとんど空の POST リクエスト (一部の CORS 固有のヘッダーを省略) です。
POST XYZ HTTP/1.1
Host: XYZ
Connection: keep-alive
Content-Length: 2
Origin: ABC
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; Nexus Player Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.75 Safari/537.36 CrKey/1.13.31432
content-type: text/xml;charset=utf-8
Accept: */*
Referer: http://ABC/ftp-custom/CastMediaPlayerStreamingDRM/mpl.html
Accept-Encoding: gzip, deflate
Accept-Language: en-GB
CAST-DEVICE-CAPABILITIES: {"display_supported":true}
..
正しいリクエスト ボディ (Windows / Chrome の場合) は次のようになります (リクエスト ボディ内の「人間が読めない」コンテンツは省略されています)。
POST XYZ HTTP/1.1
Host: XYZ
Connection: keep-alive
Content-Length: 1763
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: http://shaka-player-demo.appspot.com
Accept: */*
Referer: http://shaka-player-demo.appspot.com/
Accept-Encoding: gzip, deflate
Accept-Language: cs,en;q=0.8
ChromeCDM-Windows-x86
architecture_name x86-32
company_name Google
model_name ChromeCDM
platform_name Windows2
これを正しく機能させる方法をありがとう。