PlayReadyは、Windows、Xbox、およびUWPユニバーサルランタイム環境をサポートするその他のプラットフォームでコンテンツを保護するためにMicrosoftが開発したDRMテクノロジーです。システムはSL150からSL3000までの3層セキュリティモデルSL(Security Level)を使用し、最高レベルではTPMを介したハードウェア暗号化が必要です。Microsoft Docs(2025)によると、PlayReady 4.0は4K HDR暗号化と高度なコンテンツ使用分析をサポートしています。
主要ポイント
PlayReadyは、メディアコンテンツやその他のデジタルアセットを保護するためにMicrosoftが2007年に開発したデジタル著作権管理(DRM)テクノロジーです。これはWMDRM(Windows Media DRM)に代わるもので、Windows Media Center、Xbox Video、Microsoft Silverlightの標準保護方式になりました。
PlayReadyの主な利点は、ビデオ、オーディオ、電子書籍、ゲーム、ドキュメントなど、さまざまなタイプのコンテンツに対応する統一ライセンスシステムです。このテクノロジーは、サブスクリプション(Subscription)、レンタル(Rental)、購入(Purchase)の配布モデルをサポートしており、メディアサービスや教育プラットフォームにとって魅力的です。
PlayReadyのアーキテクチャは、PlayReady Device Porting Kitクライアントランタイム、PlayReady License Server、コンテンツパッケージャの3つの主要コンポーネントで構成されています。PlayReadyランタイムはアプリケーションまたはプレーヤーに組み込まれ、デバイス上のコンテンツ復号を処理します。
ライセンスサーバーは、コンテンツプロバイダーが設定したポリシーに基づいてライセンスキーを生成します。コンテンツパッケージャは、Common Encryption(CENC)標準を使用してメディアファイルを暗号化し、特定のライセンスにリンクするためのメタデータを埋め込みます。
保護プロセスPlayReadyはパッケージング段階から始まります。メディアコンテンツは対称鍵で暗号化され、その後ライセンスサーバーの公開鍵で保護されます。パッケージ化されたコンテンツはCDNに配置され、ダウンロードまたはストリーミングで利用可能になります。
ユーザーが保護されたコンテンツをリクエストすると、プレーヤーはライセンスサーバーにライセンスリクエストを開始します。サーバーはユーザーの資格情報、アクセス権(サブスクリプション、レンタル、購入)を確認し、復号鍵を含むライセンスを発行します。
PlayReadyはSOAPまたはJSONベースの交換プロトコルを使用し、ライセンスリクエストにはコンテンツID(Content ID)、デバイス識別子、アプリケーション署名が含まれます。サーバーは、デバイスの公開鍵で暗号化されたXML形式のライセンスを返します。
ライセンスには、コンテンツ暗号化キー(CEK)がデバイスキーでラップされて含まれ、ポリシーのセットが付属します。ポリシーは、再生時間、ビデオ品質、デバイス数、出力タイプ(HDMI、コンポジット)を制限できます。
var mediaProtectionManager = new MediaProtectionManager();
var properties = new PropertySet();
properties["Windows.Media.Protection.MediaProtectionSystemId"] =
"9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e";
mediaProtectionManager.SetProtectionScheme(
MediaProtectionSystemType.PlayReady,
properties
);
var mediaSource = MediaSource.CreateFromUri(
new Uri(contentUrl)
);
mediaPlayer.Play(mediaSource);
PlayReady 3.0は2014年にリリースされ、TPM 2.0を介したハードウェア暗号化サポートと4Kコンテンツ向けSL3000セキュリティレベルを導入しました。このバージョンでは、デバイスバインディングメカニズムを通じてライセンスを特定のデバイスにバインドする機能が追加され、デバイス間のライセンス転送を防止します。
PlayReady 4.0は2020年に発表され、3つの主要な革新により機能を拡張しました。高度なコンテンツ使用テレメトリのサポート、コンテンツプロバイダー向けの改善された分析、モバイルデバイスでの電力消費の最適化です。
| バージョン | 年 | 主な機能 | 最大SL |
|---|---|---|---|
| PlayReady 2.0 | 2011 | ソフトウェア暗号化、最大1080p | SL2000 |
| PlayReady 3.0 | 2014 | ハードウェア暗号化、4K、デバイスバインディング | SL3000 |
| PlayReady 4.0 | 2020 | テレメトリ、省エネ、HDR | SL3000 |
セキュリティレベルPlayReadyは、暗号化操作の実行方法と最大コンテンツ解像度を決定します。SL150は完全なソフトウェア実装、SL2000は部分的なハードウェアサポートが必要、SL3000はTPMによる完全なハードウェア暗号化です。
SL3000を搭載したデバイスは4K HDRコンテンツを再生でき、復号鍵は保護されたTPM領域から決して出ることはありません。SL2000は1080pに制限され、SL150は720pに制限され、ハードウェア保護のないデスクトップブラウザにのみ適しています。
ライセンスシステムPlayReadyはDRMソリューションの中でも最も柔軟なものの1つです。時間満了付きレンタル、永久アクセス付き購入、定期的なキー更新付きサブスクリプション、期間限定プレビューなど、さまざまな配布モデルをサポートしています。
各ライセンスには、ライセンスサーバーがコンテンツキーに適用するポリシーのセットが含まれています。ポリシーには、最大ビデオ解像度、保護された出力のタイプ(4KにはHDCP必須)、アクティベーション数、時間制限(絶対および相対)を含めることができます。
public async Task AcquireLicenseAsync(MediaProtectionManager manager)
{
var serviceRequest = new PlayReadyLicenseAcquisitionServiceRequest
{
ContentHeader = new PlayReadyContentHeader(
contentKeyId,
contentUrl,
licenseServerUrl,
null
),
DomainServiceId = domainId
};
var result = await serviceRequest.BeginServiceRequest();
if (result == PlayReadyLicenseAcquisitionResult.Success)
{
HandleLicenseAcquired(serviceRequest.GetLicenses());
}
}
PlayReadyはWindows(UWP、Win32)、Xbox、Android(PlayReady Porting Kit経由)、iOS(制限付き)、Smart TV(Samsung Tizen、LG webOS)を含む幅広いプラットフォームでサポートされています。各プラットフォームには独自のランタイムとAPI実装があります。
Windowsでは、統合はMediaProtectionManagerとWindows.Media.Protection.PlayReady名前空間のPlayReady APIを介して行われます。Androidでは、PlayReady Porting Kitが使用され、NDKを介してアプリケーションに組み込まれ、DRMを操作するためのJavaラッパーを提供します。
UWP環境では、アプリケーションはMediaProtectionManagerのインスタンスを作成し、PlayReadyを保護システムとして登録し、ライセンスイベントハンドラーを設定します。MediaPlayerElementプレーヤーは、MediaProtectionManagerが正しく設定されている場合、保護されたストリームを自動的に処理します。
PlayReadyライセンスサーバーは、Azureインフラストラクチャと独自サーバーの両方に展開できます。MicrosoftはAzure Media Servicesの一部として既製のPlayReady License Serverソリューションを提供しており、クラウドプロジェクトの統合を簡素化します。
Androidでは、PlayReadyはNDKライブラリ libplayready.soを介して統合され、JavaクラスでラップされたC++ APIを提供します。ExoPlayerは、PlayReady UUIDを使用した標準のMediaDrm APIを介して、Widevineと同様にPlayReadyをサポートします。
MediaDrmのPlayReady UUIDは — 9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1eです。ExoPlayerをPlayReadyで初期化する場合、設定はWidevineと同様です。ライセンスサーバーのURL、認証ヘッダー、DRMタイプを指定します。
AndroidでPlayReadyを正しく機能させるには、PlayReadyランタイムがインストールされている必要があります。これは通常、PlayReady Porting Kitを使用するSamsung、LG、その他のブランドのデバイスにプリインストールされています。ランタイムがプリインストールされていないデバイスでは、アプリケーションはAPKにlibplayready.soライブラリを含める必要があります。
PlayReadyは、Samsung TizenやLG webOSを含むSmart TVプラットフォームで支配的なDRMです。これらのプラットフォームでは、組み込みランタイム PlayReadyがTVチップセットレベルでハードウェア保護を提供し、追加設定なしで4K HDRコンテンツの再生を可能にします。
Smart TVでの統合は、特定のSoC(MediaTek、Realtek、Amlogic)向けのPlayReady Device Porting Kitを介して行われます。TVメーカーはファームウェア段階でPlayReadyランタイムをプリインストールし、アプリケーションはWebプレーヤーまたはネイティブアプリケーションの標準EME APIを介してそれを実行します。
コンテンツプロバイダーにとって、すべてのSmart TVが最高のSL3000レベルをサポートしているわけではないことに注意することが重要です — 古いモデルはSL2000と1080p品質に制限される場合があります。HDMI経由の4Kコンテンツ出力にはHDCP互換性も必須です。
PlayReady 4.0は、コンテンツプロバイダーがコンテンツ使用状況に関する詳細情報(視聴時間、不正アクセス試行、デバイスタイプ、ランタイムバージョン)を取得できる高度なテレメトリを導入しました。テレメトリデータは安全なチャネルを介して収集され、改ざんを防ぐためにデジタル署名されます。
PlayReady 4.0の失効メカニズムにより、コンテンツプロバイダーは侵害されたデバイスやランタイムバージョンをリアルタイムでブロックできます。失効リストはライセンスサーバーを介して配布され、ライセンスリクエストのたびに自動的に更新されるため、脆弱性への迅速な対応が保証されます。
よくある質問
PlayReadyはデジタルコンテンツを保護するためのMicrosoftのDRMソリューションです。このテクノロジーはハードウェアおよびソフトウェア暗号化、柔軟なライセンスポリシーをサポートし、Windows、Xbox、Android、Smart TVで動作します。
PlayReadyの主なバージョン:3.0(2014年)ハードウェア暗号化と4Kサポート、4.0(2020年)テレメトリと省エネ。新しいバージョンは以前のバージョン用にパッケージ化されたコンテンツと互換性があります。
SL150 — ソフトウェア暗号化(720p)、SL2000 — 部分的なハードウェア(1080p)、SL3000 — TPMを介した完全なハードウェア暗号化(4K HDR)。セキュリティレベルは最大品質とキー保存方法を決定します。
はい、PlayReadyはiOSでサポートされていますが、制限付きです — iOS用PlayReady Porting Kitを介して。ただし、Appleデバイスでは、FairPlayがSecure Enclaveハードウェアアーキテクチャに完全に統合されているため、推奨されるDRMであり続けています。
MicrosoftのPlayReadyはWindowsとXboxをサポートし、ハードウェア暗号化にTPMを使用し、高度なテレメトリを提供します。GoogleのWidevineはAndroidとChrome向けで、TEEを使用し、開発者に有料ライセンスは必要ありません。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。