tencent cloud

フィードバック

プレーヤーの署名

最終更新日:2024-08-26 15:31:18
    プレーヤー署名は、App再生サービスが端末の再生権限を承認するために使用されます。下図の手順6に示すとおり、 App再生サービスが端末での再生を承認すると、有効な署名が配布されます。端末では、署名の有効時間内にビデオコンテンツを再生することができます。
    
    
    
    以下で、プレーヤー署名のパラメータと生成規則について説明します。

    署名パラメータ

    パラメータ名
    記入必須
    タイプ
    説明
    appId
    はい
    Integer
    VODアプリケーションのappId。
    fileId
    はい
    String
    VODファイルID。
    contentInfo
    はい
    Object
    VODファイルIDに対応して再生される具体的なコンテンツ。ContentInfoタイプです。次の3種類のいずれかを再生できます。
    アダプティブビットレートストリーミングへのトランスコードを行った出力オーディオビデオ。暗号化はされていてもいなくてもかまいません。
    トランスコードされた出力オーディオビデオ。
    アップロードされたオリジナルオーディオビデオ。
    currentTimeStamp
    はい
    Integer
    署名配布時点のUnixタイムスタンプ。
    expireTimeStamp
    いいえ
    Integer
    署名配布有効期限のUnixタイムスタンプ。入力しない場合は有効期限がないことを表します。
    urlAccessInfo
    いいえ
    Object
    再生リンクアクセス設定パラメータ。Keyリンク不正アクセス防止設定、再生ドメイン名、プロトコルパラメータが含まれます。UrlAccessInfoタイプです。
    drmLicenseInfo
    いいえ
    Object
    DRM License設定パラメータ。DrmLicenseInfoタイプです。

    ContentInfoタイプ

    パラメータ名
    記入必須
    タイプ
    説明
    audioVideoType
    はい
    String
    再生するオーディオビデオタイプ。オプション値は次のとおりです。
    ProtectedAdaptive:プライベート暗号化またはDRMで保護されたアダプティブビットレートストリーミングへのトランスコード出力。
    Transcode:トランスコード後の出力。
    Original:アップロードされたオリジナルオーディオビデオ。
    rawAdaptiveDefinition
    いいえ
    Integer
    出力が許可される、暗号化されていないABS生成テンプレートのID。audioVideoTypeがRawAdaptiveの場合のみ、このパラメータが入力必須かつ有効になります。
    drmAdaptiveInfo
    いいえ
    Object
    出力が許可される、暗号化によって保護されたABS生成テンプレートのID。audioVideoTypeがProtectedAdaptiveの場合のみ、このパラメータが入力必須かつ有効になります。DRMAdaptiveInfoタイプです。
    transcodeDefinition
    いいえ
    Integer
    出力が許可されるトランスコードテンプレートのID。audioVideoTypeがTranscodeの場合のみ、このパラメータが入力必須かつ有効になります。
    imageSpriteDefinition
    いいえ
    Integer
    プログレスバープレビューに使用するスプライトイメージテンプレートのID。
    resolutionNames
    いいえ
    Array of Object
    プレーヤーの各解像度に対応するサブストリーム表示名。ResolutionNameInfoタイプの配列です。空のままにするか、またはNULL配列を入力するとデフォルト設定を使用します。
    MinEdgeLength:240,Name:240P。
    MinEdgeLength:480,Name:480P。
    MinEdgeLength:720,Name:720P。
    MinEdgeLength:1080,Name:1080P。
    MinEdgeLength:1440,Name:2K。
    MinEdgeLength:2160,Name:4K。
    MinEdgeLength:4320,Name:8K。

    DRMAdaptiveInfoタイプ

    パラメータ名
    記入必須
    タイプ
    説明
    privateEncryptionDefinition
    いいえ
    Integer
    widevineDefinition
    いいえ
    Integer
    fairPlayDefinition
    いいえ
    Integer

    ResolutionNameInfoタイプ

    パラメータ名
    記入必須
    タイプ
    説明
    MinEdgeLength
    はい
    Integer
    ビデオ短辺の長さ。単位:ピクセル。
    Name
    はい
    String
    表示名。

    UrlAccessInfo タイプ

    パラメータ名
    記入必須
    タイプ
    説明
    t
    いいえ
    String
    16進数文字列。リンクの有効期限を表します。
    具体的な意味と値についてはリンク不正アクセス防止パラメータのtパラメータをご参照ください。
    入力しない場合は有効期限がないことを表します。
    exper
    いいえ
    Integer
    プレビュー時間。単位は秒で、10進数で表示されます。
    プレビュー時間を指定したい場合、時間は30秒以上にする必要があります。
    具体的な意味と値についてはリンク不正アクセス防止パラメータのexperパラメータをご参照ください。
    rlimit
    いいえ
    Integer
    再生可能な最大端末IP数。10進数で表示されます。
    具体的な意味と値についてはリンク不正アクセス防止パラメータのrlimitパラメータをご参照ください。
    us
    いいえ
    String
    リンクID。ユーザーのリンクの一意性を強化します。
    具体的な意味と値についてはリンク不正アクセス防止パラメータのusパラメータをご参照ください。
    domain
    いいえ
    String
    再生時に使用するドメイン名。入力しない場合またはDefaultを入力した場合は、デフォルト配信設定のドメイン名を使用することを表します。
    scheme
    いいえ
    String
    再生時に使用するScheme。入力しない場合またはDefaultを入力した場合は、デフォルト配信設定のSchemeを使用することを表します。その他のオプション値は次のとおりです。
    HTTP。
    HTTPS

    DrmLicenseInfo タイプ

    パラメータ名
    記入必須
    タイプ
    説明
    persistent
    いいえ
    String
    端末に商用DRM再生ライセンスの永続的な保存を許可するかどうか。値の範囲:
    ON: 永続的な保存を許可します。
    OFF: 永続的な保存を許可しません。
    デフォルトの値はOFFになっています。
    rentalDuration
    いいえ
    Integer
    persistentがONの場合に、商用DRM再生ライセンスによって許可される永続的な保存時間。単位は秒で、入力しない場合は時間制限がないことを表します。
    forceL1TrackTypes
    いいえ
    Array of String
    Widevineを使用する際に、端末に必ずL1セキュリティレベルを使用して処理するよう要求するTrackタイプ。このうち、未指定のTrackタイプはデフォルトでL3セキュリティレベルを使用して処理します。値の範囲は次のとおりです。
    AUDIO: オーディオサブストリーム。
    SD: 短辺が720未満のサブストリーム。
    HD: 短辺が720以上かつ2160未満のサブストリーム。
    UHD1: 短辺が2160以上かつ4320未満のサブストリーム。
    UHD2: 短辺が4320以上のサブストリーム。
    説明:
    サブアプリケーションを使用する場合、appIdパラメータにはサブアプリケーションAppIdを入力する必要があります。
    署名パラメータのtexperrlimitusの説明と値は、 リンク不正アクセス防止パラメータの同名パラメータと完全に一致します。

    署名計算

    VODプレーヤーの署名には、Header、PayLoad、Key によって計算され組み合わせられたデジタルトークンである JWT(JSON Web Token)を採用します。
    HeaderはJSON形式であり、JWTで使用されるアルゴリズム情報を表し、その内容は次のとおり固定的 に使用されます:
    {
    "alg": "HS256",
    "typ": "JWT"
    }

    PayLoad

    Payload はJSON形式であり、次に例示するようにプレーヤーの署名パラメータのコンテンツです。
    {
    "appId": 1255566655,
    "fileId": "4564972818519602447",
    "contentInfo": {
    "audioVideoType": "RawAdaptive",
    "rawAdaptiveDefinition": 10,
    "imageSpriteDefinition": 10
    },
    "currentTimeStamp": 1663064276,
    "expireTimeStamp": 1663294210,
    "urlAccessInfo": {
    "t": "6323e6b0",
    "rlimit": 3,
    "us": "72d4cd1101"
    }
    }

    Key

    Keyは署名の計算時に使用するキーです。ここではデフォルト配信設定再生キーを使用します。

    計算式

    1. Signatureの計算: Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), Key)
    2. Tokenの計算: Token = base64UrlEncode(Header) + '.' + base64UrlEncode(Payload) + '.' + base64UrlEncode(Signature) 最終的に得られたTokenが、VODプレーヤー署名となります。
    説明:
    HMACSHA256については、RFC - HMACSHA256をご参照ください。base64UrlEncodeについては、RFC - base64UrlEncodeをご参照ください。
    署名の計算および署名の検証を容易にするため、VODコンソールでは署名発行ツールおよび検証ツールを提供しています。

    計算例

    例えばあるユーザーの、appIdが1255566655、fileIdが4564972818519602447のビデオについてプレーヤー署名を生成する場合で、かつ以下のようであったとします。
    再生キーがTxtyhLlgo7J3iOADIron
    プレーヤー署名の配布時間が2022-09-13 18:17:56、対応するUnix時間が1663064276
    プレーヤー署名の有効期限が2022-09-16 10:10:10、対応するUnix時間が1663294210
    リンク不正アクセス防止の有効期限が2022-09-16 11:00:00、対応するUnix時間が6323e6b0
    URLでの再生を最大3つの異なるIPで許可。
    生成されたランダムな文字列が72d4cd1101
    この場合の署名手順は、次のとおりです.
    1. Headerのコンテンツ:
    {
    "alg": "HS256",
    "typ": "JWT"
    }
    base64UrlEncode で処理した後の結果: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
    2. Payloadのコンテンツ:
    {
    "appId": 1255566655,
    "fileId": "4564972818519602447",
    "contentInfo": {
    "audioVideoType": "RawAdaptive",
    "rawAdaptiveDefinition": 10,
    "imageSpriteDefinition": 10
    },
    "currentTimeStamp": 1663064276,
    "expireTimeStamp": 1663294210,
    "urlAccessInfo": {
    "t": "6323e6b0",
    "rlimit": 3,
    "us": "72d4cd1101"
    }
    }
    base64UrlEncode で処理した後の結果: eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0
    aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4
    cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ
    3. 再生キーをKey(TxtyhLlgo7J3iOADIron)としてHMAC計算を実行した場合、Signatureは次のようになります。 QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8
    4. 最終的にTokenはこのようになります。 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ.QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8

    サンプルコード

    VODはPython、Java、Go、C#、PHP、Node.jsなどの複数の言語用にプレーヤーのサンプルコードを提供しています。詳細についてはプレーヤー署名 - 署名の例をご参照ください。

    よくあるエラー

    プレーヤー署名を使用した際、Player SDKがエラーコードを返した場合、よくある原因は次のとおりです。
    署名の計算 KEYが間違っているデフォルト配信設定内の再生キーを使用する必要があります。KEYリンク不正アクセス防止パラメータ内のKEYパラメータを誤って使用していないかどうかをチェックすることができます。
    署名パラメータ入力が間違っている。例えば次のようなものがあります。
    パラメータタイプのエラー:例えばappIdが整数で、誤って appId:"125000123"(文字列型)と入力している。またはcontentInfo内のトランスコードテンプレートパラメータが整数で、誤ってtranscodeDefinition: "14011"(文字列型)と入力している。
    パラメータ値が有効範囲を超えている:例えばcontentInfo内の再生するオーディオビデオタイプのパラメータを、誤ってaudioVideoType: "Transocde"(スペルミス、有効な列挙値ではない)と入力している。
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)