Contactez le support | État du système
Contenu des pages

    Utilisation de l'autorisation de lecture DRM avec Brightcove Player

    Dans cette rubrique, vous apprendrez comment configurer Brightcove Player pour utiliser le service d'autorisation de lecture de Brightcove.

    introduction

    Le service d'autorisation de lecture (PAS) de Brightcove offre un niveau de sécurité supplémentaire lors de l'utilisation de Dynamic Delivery avec un contenu protégé par DRM ou HTTP Live Streaming Encryption (HLSe). Avec PAS, les demandes de licence seront authentifiées à l'aide d'un Jeton Web JSON (JWT). Le jeton est utilisé lors de la demande de licence vidéo, une fois la vidéo chargée dans le lecteur et la source sélectionnée.

    Ce document se concentre sur l'utilisation de PAS avec Brightcove Player. Pour plus d'informations sur le PAS en général, consultez le Aperçu: DRM avec service d'autorisation de lecture document.

    Aperçu

    Pour configurer Brightcove Player pour utiliser PAS, transmettez un paramètre de jeton lors de la demande de catalogue pour la vidéo. Le code sera affiché dans la section suivante. Pour être sûr d'avoir les pré-requis pour comprendre le code, les concepts dans les documents suivants vous aideront à fournir une base sur laquelle construire :

    Utilisation d'un jeton dans les paramètres du catalogue

    Cette section détaille le code nécessaire pour configurer le lecteur pour utiliser PAS. Pour ce faire, transmettez un jeton de chaîne dans le cadre d'un paramètres de catalogue objet, en utilisant le nom de la propriété bcovAuthToken.

    Cette approche fonctionnera à la fois pour les DRM et HLSe. Le lecteur détectera le type de source en cours de chargement à partir de le Playback API et fournira l'implémentation correcte pour cette source.

    Cet exemple de code d'implémentation utilise le catalogue.get() méthode pour demander la vidéo tout en fournissant le jeton (qui devrait remplacer le <BCOV_AUTH_TOKEN> espace réservé). Assurez-vous de NE PAS inclure l'ID de la vidéo dans le <video-js> étiqueter.

    <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>

    Configuration SSAI

    Si vous envisagez d'utiliser PAS avec SSAI, il y a un petit ajout de configuration qui doit être fait. Un paramètre d'ajout doit être ajouté à l'objet de paramètres de catalogue, nommé 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>

    Utiliser une implémentation personnalisée

    Vous utilisez peut-être une implémentation personnalisée où vous n'avez pas le bcovAuthToken pour régler la valeur avec le catalogue.get() demande de méthode. Si vous utilisez votre propre lecteur ou un lecteur tiers, vous pouvez utiliser l'une des approches suivantes pour transmettre votre jeton à la demande de licence:

    • En-tête HTTP: BCOV-Auth(Non pris en charge pour HLSe)
    • Biscuit: bcov-auth(Non pris en charge pour HLSe)
    • Paramètre de requête: bcov-auth(Uniquement pris en charge pour HLSe) Doit être ajouté à l'URL du manifeste principal, au lieu de l'URL de la licence.

    Voici un exemple montrant comment régler le source.emeHeaders['BCOV-Auth'] attribut sur l'objet vidéo au jeton. Cela insère le emeHeader sur chaque source APRES la demande de catalogue.

    <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>

    Dernière mise à jour de la page le 14 Feb 2022