最終更新日:2024-01-02 11:10:15
このドキュメントは、 Media Acceleration Live Broadcast APIを使用して、指定されたストリームのDRM暗号化を実行する方法のガイドを目的としています。
以下のタスクを完了してください。
次のcurlスクリプトを実行して、ストリームhttps://drmtest-pull.cdnetworks.com/live/drmtest.mpdを暗号化します。
curl -i --url 'http://ca.haplat.net/wslive/drm/register.action?n=accountId&r=random&k=token' \
-X 'POST' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://drmtest-pull.cdnetworks.com/live/drmtest.mpd",
"encryptType": "drm",
"action": "add",
"expire": "1682819355"
}'
上記のリクエストは、名前「drmtest」、アプリケーション名「live」のストリームを暗号化しています。暗号化された後、このDASHストリームはWidevineとPlayReadyの両方によって保護されます。
ストリームが暗号化されているかどうかを確認するために、HLSまたはDASHのマニフェストファイルを確認することができます。この例では、DASH .mpd ファイルを確認します。マニフェスト ファイルには、ライセンス チャレンジを生成するために必要なオブジェクトを含む ContentProtection というヘッダーが含まれます。サンプル(切り捨て)を以下に示します。
</ContentProtection>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
<cenc:pssh>AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAnnEHpafEPZng9h+r1lDBZI49yVmwY=</cenc:pssh>
</ContentProtection>
リクエストには、次のヘッダーとパラメータが必要です。
アイテム | タイプ | 必須 | 説明 |
---|---|---|---|
Content-Type | Header | はい | アプリケーション/json |
n | Param | はい | あなたのアカウント名。 |
k | Param | はい | 最大長が 13 の一意のランダムな文字列。タイムスタンプを使用することをお勧めします。 |
r | Param | はい | MD5認証値。 k = md5 (r + apikey) 、つまり、「k」の値を取得したい場合、文字列「r」の最後に文字列 apikey を追加し、結果の文字列のMD5計算を行います。 注: apikey は、カスタマー サービスから取得できます。 例えば、 1.リクエストして取得 apikey=012f37a3f2952 2.文字列r=1409284800をランダムに生成する 3. apikey を「r」の最後に追加し、文字列「1409284800012f37a3f2952」を生成します。 4.新しい文字列のMD5ハッシュを計算して「k」の値を取得し、それが「b9fed80be752551834eec3e52fa94115」です。 |
リクエストボディに以下の項目を含めます。
アイテム | タイプ | 必須 | 説明 |
---|---|---|---|
URL | String | はい | このフィールドは、暗号化するストリームのURLを表します、例えば: https://poctest-push.8686c.com/live/dashdrm.mpd 以下の点に注意してください:1。 DRMを使用する前に、HTTPSを有効にする必要があります。 HTTPベースのURLを暗号化に使用することはできますが、DRMシステムはHTTPSを必要とするため、再生に失敗する可能性があります。2.元のストリームが暗号化されると、各解像度が自動的に暗号化されるため、ストリームの解像度をすべて暗号化する必要はありません。 |
encryptType | String | はい | 「encryptType」フィールドは常に「drm」に設定する必要があります。 |
action | String | いいえ | 「action」フィールドは、次の値のいずれかを持つことができます:「add」、「del」、または「update」:- add: 新しいストリームのDRMを設定します。- del: 無効にします。既存のストリームのDRM。- 更新:既存のストリームの暗号化情報を更新します。 |
expire | String | いいえ | DRMの有効期限は、Linuxタイムスタンプ形式で提供する必要があります。このフィールドを指定しない場合、このストリームの DRM が期限切れになることはありません。 |
{
"msg": true,
"code": 200,
"callTime": "2022-12-07 21:50:16"
}
エラーコード | メッセージ | 詳細 |
---|---|---|
400 | 認証パラメータがありません。 | 認証パラメータ「n」、「k」、または「r」がありません。 |
400 | 暗号化の種類が正しくありません。 | 「encryptType」パラメータが「drm」として指定されていません。 |
400 | 対処方法のエラーです。 | サポートされていない操作タイプです。 ‘add’、‘del’、または ‘update’ のみがサポートされます。 |
400 | コンテンツはすでにシステムに追加されています。 | コンテンツはすでに暗号化されているため、再暗号化することはできません。 |
400 | ストリームはレコードに存在しないため、削除に失敗しました。 | 削除したいストリームのDRM情報は見つかりませんでした。 |
403 | 認証に失敗しました。 | 認証パラメータにエラーがあるか、APIリクエストの権限がありません。 |
404 | 404 見つかりません。 | APIリクエストURLが正しくありません。 |
405 | リクエスト方法エラー。 | POSTリクエストではありません。 |
500 | 内部サーバーエラー。 | サービスの例外。 |