tencent cloud

Video on Demand

ドキュメントVideo on Demand

暗号化されたビデオの再生(商用DRM)

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2023-10-26 17:46:07

目的

ここでは主に、サードパーティプレーヤーを使用してVOD暗号化ビデオ(Widevine、FairPlay)を再生する方法についてご説明します。

概要

ビデオの再生情報を取得してからサードパーティプレーヤーを使用するだけで、暗号化されたビデオを復号し再生できます。
再生情報は次のとおりです。
Widevine
DrmToken (再生ライセンスの取得に使用します)
コンテンツURL
再生ライセンスURL (License URL)
FairPlay
DrmToken (再生ライセンスの取得に使用します)
コンテンツURL
再生ライセンスURL (License URL)
証明書URL (Certificate URL)

アーキテクチャフローチャート

商用DRM(Widevine、FairPlay)




再生情報および署名の取得 APP端末での業務認証の成功後、AppサーバーからAPP端末に再生情報および署名(DrmToken)を配布します。
ビデオコンテンツ、証明書のダウンロードおよびLicenseの取得
再生情報を取得後、プレーヤーは再生をトリガーすると同時に、ライセンス(License)取得および証明書取得のリクエストをトリガーします。
復号と再生
Licenseを取得後、プレーヤーはLicenseを使用してビデオを復号し再生します。

DrmTokenの生成方法

DrmTokenは本質的にはJson Web Token (JWT)の変形です。DrmTokenもHeader、PayLoad、Signatureの3つの部分に分けられますが、VODでは「~」を使用してこれらの3つの部分をスプライシングする点が異なります。具体的には次のとおりです。
HeaderはJSON形式であり、JWTで使用されるアルゴリズム情報を表し、その内容は次のとおり固定的 に使用されます:
{
"alg": "HS256",
"typ": "JWT"
}

PayLoad

PayloadはJSON形式であり、次に例示するようにプレーヤーの署名パラメータの内容です。
{
"type": "DrmToken",
"appId": 1500014561,
"fileId": "387702307091793695",
"currentTimeStamp": 1650964374,
"expireTimeStamp": 2147483647,
"random": 4220003655,
"issuer": "client"
}

PayLoadパラメータ説明

パラメータ名
タイプ
入力必須かどうか
説明
type
string
はい
tokenタイプ。DrmTokenと入力します。
appId
int64
はい
AppId。
fileId
string
はい
ファイルId。
issuer
string
はい
発行者。常にclientと入力します。
currentTimeStamp
int64
はい
現在のUnixタイムスタンプ。
expireTimeStamp
int64
いいえ
期限切れとなったUnixタイムスタンプ。空のままは有効期限内であることを表します。
random
int64
いいえ
乱数。

Signatrue

計算方法

Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), pkey)
説明:
HMACSHA256については、RFC - HMACSHA256 をご参照ください。base64UrlEncodeについてはRFC - base64UrlEncodeをご参照ください。
このうち、再生キー(pkey)はコンソールで照会し取得できます。
VODコンソールの左側ナビゲーションバーの配信と再生の設定>デフォルト配信設定をクリックすると、ページ右側に再生キーを見つけることができます。




DrmTokenの生成例

Headerの内容は次のようになります。
{
"alg": "HS256",
"typ": "JWT"
}
base64UrlEncodeはエンコード後、eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9となります。
PayLoadは次のようになります。
{
"type": "DrmToken",
"appId": 1500014561,
"fileId": "387702307091793695",
"currentTimeStamp": 1650964374,
"expireTimeStamp": 2147483647,
"random": 4220003655,
"issuer": "client"
}
base64UrlEncodeはエンコード後、
eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1
MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsImlzc3VlciI6ImNsaWVudCJ9となります。
Signatureを pkey (仮にJduzsUuRvGVPRHvIYwLvとします)で暗号化すると、muHWnxX9dXsUAkCzw4uXGcvwKDoA19BkR-hCJVrXyvYとなります。
この場合、Header、PayLoad、Signatureを~でスプライシングすると、DrmTokenは
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9~eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk
1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsImlzc3VlciI6ImN
saWVudCJ9~NN_EBW7VxGK69v-w9Q7Dw-sm8Uryfe_NdRUe3RZZ4wYとなります。

再生URLの生成方法

DescribeMediaInfosインターフェースを呼び出してコンテンツURLを取得できます。コンテンツURLは返された結果の中のMediaInfoSet.AdaptiveDynamicStreamingInfo.AdaptiveDynamicStreamingSet.Url フィールドです。
Keyリンク不正アクセス防止を有効にしている場合は、Keyリンク不正アクセス防止を参照してリンク不正アクセス防止署名付きのコンテンツURLを生成することができます。

ライセンスURLの生成方法

商用DRMについては、プレーヤーはライセンス(LIcense)を取得しなければビデオの復号と再生を行うことができません。ライセンスURLによってライセンスのリクエストを送信する方法について次に説明します。

リクエスト

リクエストURI:
Widevine: https://widevine.drm.vod-qcloud.com/widevine/getlicense/v2
FairPlay: https://fairplay.drm.vod-qcloud.com/fairplay/getlicense/v2
リクエストメソッド:POST
リクエストパラメータ:
パラメータ名
説明
drmToken
検証証明書。
説明:
リクエストBODYには、DRMクライアントモジュールで生成したライセンスリクエストデータ(License Request Data)を含める必要があります。

レスポンス

成功の場合、Status Codeは200で、かつLicenseのバイナリーデータが返されます。
失敗の場合、Status Codeは200以外となります。

Status Codeリスト

Status Code
説明
200
リクエストに成功しました。
400
パラメータエラーです。
403
認証に失敗しました。
500
内部エラーです。

事例

上記のリクエストルールに基づき、WidevineスキームのライセンスURLは
https://widevine.drm.vod-qcloud.com/widevine/getlicense/v2?drmToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9~eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzk
zNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsImlzc3VlciI6ImNs
aWVudCJ9~NN_EBW7VxGK69v-w9Q7Dw-sm8Uryfe_NdRUe3RZZ4wYとなります。

証明書URLの取得方法

FairPlayスキームを使用した暗号化ビデオを再生したい場合は、まずFairPlay証明書情報を申請および送信する必要があります。Widevineスキームの場合は、証明書URLの取得は不要です。
証明書情報を送信すると、コンソールで証明書URLを確認できます。各サブアプリケーションは同一の証明書URLを共用します。

サードパーティプレーヤーを使用した再生

再生URL、ライセンスURL、証明書URLを取得後、サードパーティプレーヤーを使用してDRM暗号化ビデオを再生できます。

まとめ

これで、サードパーティプレーヤーを使用してVODのDRM暗号化ビデオを再生する方法の説明は完了です。

ヘルプとサポート

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

フィードバック