Utilisation du lecteur Brightcove pour TVE

Cette rubrique fournit des informations sur Video Cloud Adobe Primetime intégration pour les solutions TV Everywhere (TVE). Les instructions ci-dessous simplifient la saisie des données et la gestion des métadonnées vidéo en supprimant la duplication inutile des valeurs et en générant automatiquement les valeurs de requête XML requises par le client Adobe Pass en fonction de champs personnalisés individuels.

Configuration du compte

L'utilisation de Video Cloud avec TVE nécessite une configuration de compte par le support Brightcove. Si vous souhaitez utiliser TVE, Contacter l'assistance Brightcove pour plus de détails.

Champs obligatoires

Pour cette intégration, vous souhaiterez peut-être créer un ou plusieurs des champs personnalisés suivants dans votre compte. Les noms ci-dessous sont les interne noms pour les champs - vous pouvez utiliser ce que vous voulez pour les noms d'affichage.

  • bcadobepassrequestorid
  • bcadobepasstitle
  • bcadobepassreferenceid
  • bcadobepassrating
  • bcadobepassratingscheme

Dans la section suivante, vous verrez comment ces champs sont utilisés, s'ils sont présents, et quelles valeurs sont utilisées à la place si elles ne le sont pas.

Génération automatique de resourceID et requestorID des champs

Lorsqu'un utilisateur récupère une vidéo via l'API de lecture d'un compte compatible TVE, l'API renvoie une valeur pour bcadobepassrequestorid selon les règles suivantes:

  • Si une valeur de champ personnalisé pour bcadobepassrequestorid existe sur la vidéo, l'API renverra la valeur au niveau de la vidéo.
  • Si aucune valeur n'est définie pour le bcadobepassrequestorid champ, l'API renverra la valeur de l'ID du demandeur stockée dans les paramètres du compte.

 

Lorsqu'un utilisateur récupère une vidéo via l'API de lecture d'un compte compatible TVE, l'API renvoie une valeur pour bcadobepassresourceid selon les règles suivantes:

  • Si une valeur de champ personnalisé pour bcadobepassresourceid existe sur la vidéo, l'API renverra la valeur au niveau du champ
  • Si aucune valeur n'est définie pour le bcadobepassresourceid , l'API renverra une valeur calculée basée sur les champs et le format XML indiqués ci-dessous.

Le généré bcadobepassresourceid doit suivre le format MRSS spécifié par Adobe et utilisé dans presque toutes les intégrations avec Comcast.

<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/'>
<channel>
<title>channel</title>
<item><title>item-title</title>
<guid>guid</guid>
<media:rating scheme='urn:rating-scheme'>rating</media:rating></item>
</channel>
</rss>

Les valeurs incluses dans le MRSS doivent être basées sur les règles suivantes.

Champs RSS TVE
Champ XML RSS Champ Video Cloud
channel
  • Si présent, utilisez bcadobepassrequestorid
  • S'il n'est pas présent, utilisez la valeur définie dans les paramètres du compte
item-title
  • Si présent, utilisez bcadobepasstitle
  • S'il n'est pas présent, utilisez name
guid
  • Si présent, utilisez bcadobepassreferenceid
  • S'il n'est pas présent, utilisez reference_id
rating
  • Si présent, utilisez bcadobepassrequestorid
  • Envoi uniquement si bcadobepassrating les deux bcadobepassratingscheme sont présents
rating-scheme
  • Si présent, utilisez bcadobepassrating
  • Envoi uniquement si bcadobepassrating les deux bcadobepassratingscheme sont présents

Configurer le lecteur

Le code suivant fournit un modèle de configuration du lecteur Brightcove pour TVE.

<!doctype html>
<html>
<head>
  <title>TVE Example</title>
</head>
<body>
  <!-- Make sure your player doesn't have a video associated with it
  and don't use data-video-id to assign one. We'll request a video
  from the catalog by hand, detect that it's TVE content, trigger TVE
  authentication and then load the video into the player. -->
  <video-js id="tve-player"
    data-account="account1234"
    data-player="player-id"
    controls>
  </video-js>
  <script src="//players.brightcove.net/account1234/player-id_default/index.min.js"></script>
  <script>
  var player = videojs.getPlayer('tve-player');
  player.ready(function() {
    player.catalog.getVideo('ref:tve-video', function(error, video) {
      if (error) {
        // showErrorMessage() would be defined by you somewhere else
        // in the page
        return showErrorMessage(error);
      }
      // You can tell whether a video is TVE protected by checking to
      // see if the video sources contain URLs. If they don't, you need
      // to authenticate your viewer and re-request the video with their
      // TVE credentials.
      if (video.sources && video.sources[0].src) {
        // This is not a TVE video so it can be played back immediately
        return player.catalog.load(video);
      }
      // From here on, we're definitely dealing with a TVE video.
      // You need to provide an implementation for authenticateWithTVE()
      // to get a TVE token. See the documentation from your TVE provider
      // for details on how to do that.
      autenticateWithTVE(function(error, tveToken) {
        if (error) {
          return showErorMessage(error);
        }
        // Now that we have the token, we can re-request the video and get playable URLs.
        player.catalog.tveToken = tveToken;
        player.catalog.getVideo('ref:tve-video', function(error, video) {
          if (error) {
            return showErrorMessage(error);
          }
          player.catalog.load(video);
        });
      });
    });
  });
  </script>
</body>
</html>

Réponse à la demande sans authentification

Vous trouverez ci-dessous un exemple de réponse de l'API de lecture lorsque l'authentification TVE n'a pas été fournie. Comme vous le verrez, les sources vidéo ne sont pas disponibles, mais d'autres métadonnées vidéo sont présentes pour permettre au lecteur d'afficher un aperçu du contenu.

{
  "sources": [

    ],
  "description": "The short description can be used to give more information about your video and will appear in many standard Brightcove Player templates.",
  "poster_sources": [
    {
      "src": "http://f1.media.brightcove.com/8/96980657001/96980657001_207574837001_commonRedpoll-still.jpg?pubId=3840518800001&videoId=3843070012001"
    },
    {
      "src": "https://f1.media.brightcove.com/8/96980657001/96980657001_207574837001_commonRedpoll-still.jpg?pubId=3840518800001&videoId=3843070012001"
    }
  ],
  "tags": [
    "sample"
  ],
  "cue_points": [

  ],
"errors": [
      {
        "error_subcode": "TVE_AUTH",
        "error_code": "SOURCES_RESTRICTED",
        "message": "Video sources are restricted by access policy.",
        "restricted_fields": [
          "sources"
        ]
      }
    ],
    "custom_fields": {
    "bcadobepassresourceid": "
    
    
        
        anotherRefId
        XXX
        ",
    "bcadobepassrequestorid": "asdfasf",
    "bcadobepassrating": "XXX",
    "bcadobepassreferenceid": "anotherRefId",
    "bcadobepasstitle": "PassTitle",
    "bcadobepassratingscheme": "TV-14"
  },
  "account_id": "3840518800001",
  "name": "Sample Video 2",
  "reference_id": null,
  "long_description": null,
  "duration": 29960,
  "economics": "AD_SUPPORTED",
  "published_at": "2014-10-16T16:35:24.520Z",
  "text_tracks": [

  ],
  "updated_at": "2017-05-26T01:48:41.396Z",
  "thumbnail": "http://f1.media.brightcove.com/8/96980657001/96980657001_180424037001_commonRedpoll-thumbnail.jpg?pubId=3840518800001&videoId=3843070012001",
  "poster": "http://f1.media.brightcove.com/8/96980657001/96980657001_207574837001_commonRedpoll-still.jpg?pubId=3840518800001&videoId=3843070012001",
  "offline_enabled": false,
  "link": null,
  "id": "3843070012001",
  "ad_keys": null,
  "thumbnail_sources": [
    {
      "src": "http://f1.media.brightcove.com/8/96980657001/96980657001_180424037001_commonRedpoll-thumbnail.jpg?pubId=3840518800001&videoId=3843070012001"
    },
    {
      "src": "https://f1.media.brightcove.com/8/96980657001/96980657001_180424037001_commonRedpoll-thumbnail.jpg?pubId=3840518800001&videoId=3843070012001"
    }
  ],
  "created_at": "2014-10-16T16:35:24.520Z"
}