Brightcove 支持聯繫支持|系統狀態系統狀況
頁面內容

    使用播放授權 DRM 與布萊特灣播放器

    在本主題中,您將學習如何將布萊特灣播放器設定為使用布萊特灣的播放授權服務。

    簡介

    當使用具有受 DRM 保護或 HTTP 即時串流加密 (HLSE) 內容的動態傳遞時,Brightcove 的播放授權服務 (PAS) 提供額外的安全性。使用 PAS,許可證請求將使用簽名的 JSON Web 令牌(JWT)進行身份驗證。一旦將視頻加載到播放器並選擇了源,則在請求視頻許可證時將使用令牌。

    本文檔重點介紹將PAS與Brightcove Player一起使用。有關一般的PAS的更多信息,請參見概述:帶有播放授權服務文件的 DRM

    概覽

    要配置Brightcove Player使用PAS,請在對視頻進行目錄請求時傳遞令牌參數。該代碼將在下一部分中顯示。為確保您具有理解代碼的先決條件,以下文檔中的概念將有助於提供構建基礎:

    在目錄參數中使用令牌

    本節詳細介紹了配置播放器以使用PAS所需的代碼。為此,請將字符串令牌作為目錄參數對象,使用屬性名稱bcovAuthToken

    這種方法將適用於DRM和HLSe。播放器將檢測從Playback API加載的源的類型,並為該源提供正確的實現。

    此示例實現代碼使用catalog.get()提供令牌時請求視頻的方法(這需要替換<BCOV_AUTH_TOKEN>佔位符)。請確保不要在<video-js>標籤。

    <video-js id="myPlayerID"
      data-account="1507807800001"
      data-player="default"
      data-embed="default"
      controls
      data-application-id></video-js>
    <script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
    
    <script>
      (function() {
        var myPlayer = videojs.getPlayer('myPlayerID');
    
        myPlayer.catalog.get({
          type: 'video',
          id: '6015247091001',
          bcovAuthToken: '<BCOV_AUTH_TOKEN>'
        })
          .then(function(videoReturned){
            myPlayer.catalog.load(videoReturned);
          })
          .catch(function(err){
            console.log('err:', err);
          });
      })();
    </script>

    SSAI配置

    如果要將PAS與SSAI一起使用,則需要完成一些小的配置。需要將一個附加參數添加到目錄參數對像中,名為adConfigId

    <video-js id="myPlayerID"
      data-account="1507807800001"
      data-player="default"
      data-embed="default"
      controls
      data-application-id></video-js>
    <script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
    
    <script>
      (function() {
        var myPlayer = videojs.getPlayer('myPlayerID');
    
        myPlayer.catalog.get({
          type: 'video',
          id: '6015247091001',
          bcovAuthToken: 'BCOV_AUTH_TOKEN',
          adConfigId: '<YOUR_ADD_CONFIG_ID>'
        })
          .then(function(videoReturned){
            myPlayer.catalog.load(videoReturned);
          })
          .catch(function(err){
            console.log('err:', err);
          });
      })();
    </script>

    使用自定義實現

    您可能正在使用自定義實現,而沒有bcovAuthToken用設置值catalog.get()方法要求。如果您使用自己的播放器或第三方播放器,則可以使用以下方法之一將令牌傳遞到許可請求中:

    • HTTP標頭:BCOV-Auth(HLSe不支持)
    • 曲奇餅:bcov-auth(HLSe不支持)
    • 查詢參數:bcov-auth(僅HLSe支持)必須附加到主清單URL而不是許可證URL。

    這是顯示如何設置source.emeHeaders['BCOV-Auth']視頻對像上的令牌屬性。這將插入emeHeader在目錄請求之後,在每個源上。

    <video-js id="myPlayerID"
      data-account="1507807800001"
      data-player="default"
      data-embed="default"
      controls
      data-application-id></video-js>
    <script src="//players.brightcove.net/1507807800001/default_default/index.min.js"></script>
    
    <script>
      (function() {
        var myPlayer = videojs.getPlayer('myPlayerID');
    
        myPlayer.catalog.get({
          type: 'video',
          id: '6015247091001'
        })
        .then(function(video){
          sources=video.sources;
    
          for (let i = 0; i < sources.length; i++) {
            const source = sources[i];
    
            // Only add the auth token as an eme header for DRM content
            if (BCOV_AUTH_TOKEN && source.key_systems) {
              source.emeHeaders = {
                  'BCOV-Auth': BCOV_AUTH_TOKEN
                };
            }
          }
            myPlayer.catalog.load(video);
          })
          .catch(function(err){
            console.log('err:', err);
          });
      })();
    </script>