License のクライアント連携
    • PDF

    License のクライアント連携

    • PDF

    記事の要約

    One Click Multi DRM商品から発行するライセンスを Playerに連携するうえで理解を深めるためのガイドです。

    参考

    ライセンス発行の注意事項は次のとおりです。

    • クライアント(Player)連携のための DRMタイプ別ライセンス発行ガイドを必ずご参照ください。
    • ライセンス発行は、プレーヤーのリクエスト/実装案に合わせて適切なタイプでリクエストします。
    • 一般的な商用プレーヤー(html5/videojs/shaka)では、ライセンスを jsonでなく original(binary)タイプをサポートします。
    • fairplayライセンスの場合、ceritificateUriおよび certificateRequestHeaderヘッダを必ず活用してライセンスをリクエストします。
    • fairplayライセンスに対するレスポンスが binaryで必要な場合、GET ​/license​/fairPlayBinaryを通じてレスポンスを取得します。
    • NCP VPE(Video Player Enhancement)を通じて DRMを連携する場合、VPEコンテンツ認証ガイドをご参照ください
    • Video Player Enhancementを活用して One Click Multi DRMライセンスをリクエストする場合、1.1.1以降のバージョンのみサポートします。
    • すべてのライセンスリクエストは、DRMコンテンツを再生する端末デバイス情報とプレーヤーの実装によりリクエストします。

    Playerの連携

    リクエストヘッダ

    ヘッダ名要否説明
    x-ncp-apigw-timestampYES1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表したもの
    API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす
    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-iam-access-keyYESNAVERクラウドプラットフォームポータルで発行した Access Key ID値
    x-ncp-iam-access-key:{Sub Account Access Key}
    x-ncp-apigw-signature-v2YESAccess Key ID値と Secret Keyで暗号化した署名
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    Content-TypeYESRequest body content typeを application/jsonに指定
    Content-Type: application/json
    x-ncp-region_codeYESリージョンコード(KR)
    x-drm-tokenYESOne Click Multi DRMライセンス発行に必要なデータを含む暗号化されたトークン値
    x-drm-token:{X-DRM-TOKEN}

    x-drm-tokenヘッダ

    One Click Multi DRM APIを通じてライセンス発行するためには、X-DRM-TOKENヘッダ認証が必要です。
    X-DRM-TOKENヘッダ値の場合、次の JSONデータを Base64文字列に変換した値を入力します。

    • One Click Multi DRM商品では、X-DRM-TOKENヘッダを通じてコンテンツとサイトの権限があるユーザーであることを確認し、リクエストしたサイトに設定されたコンテンツセキュリティポリシーに従って DRMライセンスルールを設定します。
    フィールド名要否有効値説明
    siteIdYESライセンスを発行するためのサイト ID
    contentIdYES再生するコンテンツの固有 ID
    DRMパッケージング時に使用する値で、最低 3文字以上のアルファベット/数字または 「-」(ハイフン)、 「_」(アンダーバー)を含む最大 100文字まで入力可能
    drmTypeYESWIDEVINE
    PLAYREADY
    FAIRPLAY
    ライセンスをリクエストする DRMタイプ
    responseFormatYESORIGINAL
    JSON
    ライセンスリクエストに対するレスポンスデータタイプ。(基本値: ORIGINAL)
    * ORIGINAL: リクエストしたバイナリライセンスデータのレスポンス
    * JSON : ライセンスデータと追加情報(クライアントデバイス IDなど)を含む JSONタイプでレスポンス。トークンプロキシまたはクライアント SDKを使用する場合のみ適用可能
    userIdYesStringライセンスをリクエストしたユーザーの固有 ID(サービスサイトで管理するユーザー IDもしくは DRMコンテンツを再生したユーザーアカウント)

    x-drm-tokenヘッダの作成

    x-drm-tokenを作成する方法は、次のとおりです。

    1. ライセンスリクエストに必要な siteId、contentId、drmType、responseFormat、userIdを JSONで入力します。
    # json
    {"siteId":"drm-20231115142326-nHyNw","contentId":"my-drm-content-sample","drmType":"WIDEVINE","responseFormat":"original","userId":"d41d8cd98f00b204e9800998ecf8427e"}
    
    1. 入力した JSONデータを Base64 URLにエンコードします。
    # Base64 Encrypted String 
    eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SWQiOiJteS1kcm0tY29udGVudC1zYW1wbGUiLCJkcm1UeXBlIjoiV0lERVZJTkUiLCJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwidXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ==
    
    注意

    Base64でエンコードされる過程で JSONの空白値やエンタ―値を含まないようご注意ください。

    Player実装例

    x-drm-tokenヘッダを含む例

    //widevine license request sample
    'com.widevine.alpha': {
        src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-YvxnQ/live.mpd', //DRM Encryptionを適用した DRMコンテンツ再生パス
        licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM license発行のためのパス
        licenseRequestHeader: {
            'X-NCP-REGION_CODE': 'KR',
            'X-ncp-apigw-timestamp': 1698832564997,
            'X-ncp-iam-access-key': 'ft1GKEpjSc53lHuqtAxE',
            'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj5Uha1FGhE4fzdds2ZO8FrQ=',
            'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIjoidGVzdENvbnRlbnRJZCIsImRybVR5cGUiOiJXSURFVklORSJ9'
        } //One Click Multi DRM商品活用のための apigw必須認証および X-DRM-TOKENヘッダ値
    },
    
    //playready license request sample
    'com.microsoft.playready': {
        src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-YvxnQ/live.mpd',  //DRM Encryptionを適用した DRMコンテンツ再生パス
        licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license',   //DRM license発行のためのパス
        licenseRequestHeader: {
            'X-NCP-REGION_CODE': 'KR',
            'X-ncp-apigw-timestamp': 1698832564997,
            'X-ncp-iam-access-key': 'ft1GKEpjSc53lHuqtAxE',
            'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj5Uha1FGhE4fzdds2ZO8FrQ=',
            'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIjoidGVzdENvbnRlbnRJZCIsImRybVR5cGUiOiJXSURFVklORSJ9'
        }      //One Click Multi DRM商品活用のための apigw必須認証および X-DRM-TOKENヘッダ値
    },
    
    //fairplay streaming license request sample
    'com.apple.fps': {
        src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-YvxnQ/playlist.m3u8', //DRM Encryptionを適用した DRMコンテンツ再生パス
        certificateUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay',  //DRM license発行に必要な証明書のリクエストパス
        certificateRequestHeader: {
            'X-NCP-REGION_CODE': 'KR',
            'X-ncp-apigw-timestamp': 1698832564997,
            'X-ncp-iam-access-key': 'ft1GKEpjSc53lHuqtAxE',
            'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj5Uha1FGhE4fzdds2ZO8FrQ=',
            'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIjoidGVzdENvbnRlbnRJZCIsImRybVR5cGUiOiJXSURFVklORSJ9' 
        }, //One Click Multi DRM商品活用のための apigw必須認証および X-DRM-TOKENヘッダ値
        licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM license発行のためのパス
        licenseRequestHeader: {
            'X-NCP-REGION_CODE': 'KR',
            'X-ncp-apigw-timestamp': 1698832564997,
            'X-ncp-iam-access-key': 'ft1GKEpjSc53lHuqtAxE',
            'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj5Uha1FGhE4fzdds2ZO8FrQ=',
            'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIjoidGVzdENvbnRlbnRJZCIsImRybVR5cGUiOiJXSURFVklORSJ9'  
        } //One Click Multi DRM商品活用のための apigw必須認証および X-DRM-TOKENヘッダ値
    }
    

    レスポンス

    レスポンス例

    HTTP/1.1 200 OK  
    Server: nginx  
    Date: Fri, 20 Nov 2023 20:53:32 GMT  
    Content-Type: application/json;charset=utf-8  
    Connection: keep-alive  
    Access-Control-Allow-Origin: *  
    x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4  
    

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

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.