tencent cloud

Media Processing Service

動向とお知らせ
Release Notes
お知らせ
製品の説明
製品概要
製品の機能
製品の優位性
ユースケース
購入ガイド
課金説明
購入ガイドライン
支払い更新の説明
支払い延滞の説明
返金説明
クイックスタート
コンソールガイド
概要
タスクの作成
タスク管理
編成管理
テンプレート管理
リソースパック管理
動画評価
AIGCコンテンツの生成
ターミナルSDK
字幕編集ツール
使用量統計
CAM例
導入ガイド
音声・動画トランスコードの導入
1 音声・動画エンハンスメントの導入
Audio Separation Integration
電子透かしと可視透かしの導入
メディアAI 導入ガイド
メディア品質検査の導入
クライアントサイドSDKの導入
ライブストリームの録画機能の導入
DRMの導入
その他の導入ガイド
シナリオ実践チュートリアル
画質向上シナリオ
音声・動画コスト最適化シナリオ
ショートドラマの海外展開シナリオ
コンテンツ生成シナリオ
オンライン教育シナリオ
よくある質問
製品の基本情報について
アカウントへの権限付与について
タスク設定について
タスク開始について
タスク結果の確認について
Related Agreement
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約

DRMの導入

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-11-05 14:18:59

機能紹介

デジタル著作権管理(DRM、Digital Rights Management)は、暗号化やライセンス認証などの技術的手段を用いて、デジタルコンテンツの著作権を保護するシステムです。その主な機能は以下の通りです。
コンテンツの暗号化:音声・動画などのデジタルコンテンツを暗号化し、不正な配信を防ぎます。
権限制御:ライセンス管理を通じて、再生回数やデバイスのバインドなど、きめ細かな権限制御を実現します。
セキュアな伝送:コンテンツ配信プロセスにおけるデータの完全性を保証します。
Media Processing Service(MPS)は、Widevine、Fairplay、PlayReadyなどのDRM暗号化プロトコルに基づいたビデオオンデマンドの暗号化サービスを提供します。標準化された暗号化技術と、サードパーティのキー管理システム(例:SDMC、DRMtodayなど)との緊密な連携により、コンテンツの暗号化とキー管理を分離し、ユーザーのコンテンツセキュリティを全面的に保護します。MPSが提供するDRM暗号化サービスは、コンテンツのセキュアな処理に特化しており、キーの生成、保存、配信、およびライセンス管理などは、サードパーティのDRMサービスプロバイダーが提供します。
このドキュメントでは、DRMtodayを例に、メディア処理DRM暗号化サービスの導入フローを紹介します。

導入フロー

事前準備

まず、サードパーティのDRMサービスプロバイダーを有効化し、設定する必要があります。ここではDRMtodayを例に説明します。

ステップ1:サービスの登録

1. DRMtodayの公式サイトにアクセスします。DRMtodayは無料トライアルの登録をサポートしており、公式サイトの説明を参考に有料の商用サービスを購入することも可能です。
2. ここでは無料トライアルを例に、ページ内のGet your FREE trial todayをクリックして登録に進みます。

3. 企業のメールアドレスで登録します。登録成功後、組織を作成する必要があります。組織の作成が完了すると、コンソールは以下の画面に変わります。


ステップ2:サービスの設定

(1)APIアカウントの設定
1. 左側のメニューバーでMembers/Usersを選択します。

2. 次にAdd API accountをクリックし、必要に応じてオプションにチェックを入れ、確認後Add memberをクリックします。
注意:
保存が成功するとパスワード情報が表示されます。このパスワードは後で使用するため、大切に保管してください。

(2)Fairplay証明書の設定
左側のメニューバーでDRM settingsを選択し、Fairplayの証明書情報を対応する入力欄に記入してから、Save Settingsをクリックします。

(3)キーシードの設定
1. 左側のメニューバーでKey seedsを選択します。

2. Add seedをクリックし、Randomをクリックしてランダムなシードを生成します。注意:キー(Key)シードとIVシードの2つを生成する必要があります。

(4)CPIXの設定
説明:
MPSのバックエンドは、CPIXプロトコルを通じてDRMプロバイダーと通信し、キー情報を取得するため、ここでCPIXの設定が必要です。
1. 左側のメニューバーでIngest settingsを選択します。

2. Add CPIX configをクリックします。ここでのKey seedとInitialization vector (IV) seedは、上記(3)で設定した情報です。Stream type mappingと下部の4つのオプションは、ビジネス要件に応じて適切なキー生成ルールを選択してください。

(5)ライセンス認証の設定
左側のメニューバーでLicense delivery authorizationを選択し、ビジネス要件に応じて適切なライセンス認証方式を選択します。


ステップ3:キーリクエストURLの生成

MPSのバックエンドがキー情報を取得できるよう、キーリクエストURLを設定する必要があります。MPSのバックエンドはCPIXリクエストをDRMサービスに送信し、DRMサービスがリクエストを認証した後、対応するキー情報をMPSのバックエンドに返します。返されるキー情報もCPIX形式であり、MPSのバックエンドはそれを解析してキー情報を抽出し、メディアソースを暗号化します。キーリクエストURLの具体的な生成方法については、DRMtodayの公式ドキュメントをご参照ください。URLを生成するためのスクリプト実装例は以下の通りです。
#!/bin/bash

# First request to get ticket
TICKET_RESPONSE=$(curl 'https://auth.drmtoday.com/cas/v1/tickets' \\
-d "username=<API account>&password=<API account password>" \\
-s -D -)

# Extract location header if status is 201
if echo "$TICKET_RESPONSE" | grep -q "HTTP.*201"; then
TICKET_URL=$(echo "$TICKET_RESPONSE" | grep -i "Location:" | cut -d' ' -f2 | tr -d '\\r')
# Second request using the ticket URL
TICKET=$(curl "$TICKET_URL" \\
-d 'service=https://fe.drmtoday.com/frontend/cpix/v1/<Organization UUID>/ingest/<CPIX ID>')
else
echo "Failed to get ticket. Status code was not 201"
echo "$TICKET_RESPONSE"
exit 1
fi

# Concatenate the service URL with the ticket
SERVICE_URL="https://fe.drmtoday.com/frontend/cpix/v1/<Organization UUID>/ingest/<CPIX ID>?ticket=$TICKET"

echo $SERVICE_URL
(1)API account
左側のメニューバーでMembers/Usersを選択します。スクリプト内のAPI accountは、ステップ2で設定したAPIアカウント、API account passwordはそのパスワードです。

(2)Organization UUID
左側のメニューバーでAPI endpointsを選択します。ページ右上に表示されるのがOrganization UUIDです。

(3)CPIX ID
左側のメニューバーでIngest settingsを選択すると、ステップ2で作成したCPIX情報が表示されます。そのCPIX configのIDが、スクリプトで必要なCPIX IDです。

上記のスクリプト情報を正確に設定した後、リクエストを送信すると、必要なキーリクエストURLが取得できます。
注意:
キーリクエストURLには有効期限があり、期限が切れた場合は再生成が必要です。

APIによる暗号化タスクの開始

ビデオURLまたはCOS内のメディアファイルに対して処理タスクを開始します。APIドキュメントメディア処理をご参照ください。
POST / HTTP/1.1
Host: mps.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ProcessMedia
{
"InputInfo": {
"Type": "URL",
"UrlInputInfo": {
"Url": "https://test-<appid>.cos.ap-nanjing.myqcloud.com/mps_input/test.mp4"
}
},
"OutputStorage": {
"Type": "COS",
"CosOutputStorage": {
"Region": "ap-nanjing",
"Bucket": "test-<appid>"
}
},
"OutputDir": "/mps_output/drm/",
"MediaProcessTask": {
"AdaptiveDynamicStreamingTaskSet": [
{
"Definition": <definition id>,
"DrmInfo": {
"Type": "widevine",
"SpekeDrm": {
"ResourceId": "test123",
"KeyServerUrl": "<DRM key server url>",
"Vector": "<IV>",
"EncryptionMethod": "cbcs",
"EncryptionPreset": "preset0"
}
}
}
]
},
"TaskNotifyConfig": {
"NotifyType": "URL",
"NotifyUrl": "<notify url>"
}
}
レスポンス例:
{
"Response": {
"TaskId": "24000035-WorkflowTask-cf405e365e75efb2a7bfdef514cc17dbtt195964",
"RequestId": "a7ba06b6-6810-4343-b55d-3afcc3dac64c"
}
}
サンプル説明:TaskIdはタスクを一意に識別するIDで、タスクの照会や管理に使用できます。

Type

暗号化タイプ。指定可能な値は以下の通りです。
simpleaes:AES-128暗号化
widevine
fairplay:HLSのみサポート。DASHはFairplay暗号化をサポートしていません。
playready

SpekeDrm

(1)ResourceId
リソースID。1~128文字の数字、英字、アンダースコア(_)、ハイフン(-)をサポートします。ResourceIdは、複数の異なるメディアストリームの暗号化に使用できる、一連のキー情報のIDと理解できます。DRMtodayのコンソールで、作成したすべてのResourceIdを確認できます。

(2)KeyServerUrl
キーリクエストURL。これは「事前準備」のステップ3で作成したものです。
注意:
DRMプロバイダーごとにサブストリーム数の制限は異なります。例えば、PallyConは5ストリーム以下、DRMtodayは最大9ストリームまでの暗号化をサポートしています。
(3)Vector
暗号化の初期化ベクトル(32バイトの文字列)。
(4)EncryptionMethod
暗号化方式。FairPlayのデフォルトはcbcs、PlayReadyとWidevineのデフォルトはcencです。
DRM規格ごとにサポートされる暗号化方式は異なります。
cbcs:PlayReady、Widevine、FairPlayがサポート。
cenc:PlayReady、Widevineがサポート。
(5)EncryptionPreset
サブストリームの暗号化ルール。デフォルトはpreset0。
preset0:すべてのサブストリームを同じキーで暗号化します。
preset1:各サブストリームを異なるキーで暗号化します。

再生検証

再生についてはDRMtodayのプレイヤー公式ドキュメントをご参照ください。以下ではDRMtoday公式プレイヤーを例に、暗号化されたストリームの再生方法を説明します。
1. アクセス後、Try your streamをクリックします。

2. 関連する設定情報を入力します。
2.1 まず、Content URL欄に再生したいストリームのURLを入力します。HLSストリームの場合はTypeをHLSに、DASHストリームの場合はMPEG-DASHを選択します。

2.2 次に、クライアント認証情報を設定します。DRM EnvironmentはDRMtoday PRODUCTION、MerchantはAPI endpointsのOrganization UUID、User IDはMembers/UsersのMembers ID、Session IDは任意の値、Asset IDは暗号化タスク開始時に指定したResourceIdです。プレイヤーの設定完了後、Loadをクリックすると、暗号化されたストリームが正常に再生されます。



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック