Implémentation des droits de lecture

Dans cette rubrique, vous apprendrez à gérer la lecture vidéo à l'aide des droits de lecture de Brightcove.

Introduction

Le service de gestion des droits de lecture de Brightcove offre un moyen évolutif et expressif de gérer la lecture vidéo.

Si vous n'êtes pas familier avec cette fonctionnalité, reportez-vous à l' aperçu : Document sur les restrictions de lecture Brightcove.

Processus de validation

Les droits de lecture sont appliqués par ordre de spécificité et de correspondance. Une règle d'autorisation annule le reste des règles car elles sont moins spécifiques que celle qui autorise la règle.

Vous pouvez autoriser une adresse IP spécifique pour éviter une règle de pays pour cette adresse IP. Vous pouvez également vouloir bloquer une adresse IP différente qui serait normalement autorisée par la restriction du pays. Il peut donc être judicieux d'avoir les deux block-ips et allow-ips dans la même définition des droits de lecture. Il en va de même pour les autres règles.

Vous pouvez avoir des règles d'autorisation et de blocage pour la plupart des droits. Les pays sont les seuls où il n'est peut-être pas logique d'avoir les deux.

Les organigrammes suivants montrent comment fonctionne le processus de validation :

  1. Contrôles géographiques
  2. Vérification de l'horaire
  3. Vérification de procuration
  4. Vérification de domaine
Validation des droits de lecture
Validation des droits de lecture

Contrôles géographiques

Le flux des restrictions géographiques suivra l'un des diagrammes suivants, en fonction de la valeur du geo_global_rule champ :

  • geo_global_rule est réglé sur allow_all
  • geo_global_rule est réglé sur block_all
  • geo_global_rule est réglé sur null
Restrictions géographiques
Restrictions géographiques

Si les vérifications géographiques réussissent, continuez avec les vérifications supplémentaires dans le diagramme suivant.

Contrôles de validation supplémentaires

Si les contrôles géographiques réussissent, les contrôles suivants sont traités dans l'ordre :

  1. Vérification de l'horaire
  2. Vérification de procuration
  3. Vérification de domaine
Contrôles de validation supplémentaires
Contrôles de validation supplémentaires

Comment fonctionne-t-il ?

Les droits de lecture sont une partie de la solution des restrictions de lecture.

Droits de lecture

Par défaut, le lecteur (Brightcove Player et les SDK natifs) envoie une requête à l'API de lecture s'il dispose d'une clé de stratégie. Le lecteur envoie la demande au terminal suivant et récupère votre contenu :

edge.api.brightcove.com

Pour vérifier les droits de lecture avec votre demande d'API de lecture, vous n'inclurez pas la clé de politique. Lorsqu'il n'y a pas de clé de politique, le joueur envoie la demande à ce point de terminaison :

edge-auth.api.brightcove.com

Si tous les contrôles de validation des droits de lecture sont positifs, votre contenu est renvoyé.

Flux de travail

Pour gérer les restrictions de lecture, procédez comme suit :

  1. Configurez votre compte
  2. Définir des restrictions
  3. Associer des restrictions à une vidéo
  4. Configurez votre lecteur

Configurez votre compte

Cette fonctionnalité est disponible pour un ensemble spécifique de clients ayant accès à la phase de disponibilité limitée du service de gestion des droits de lecture. Contactez votre Customer Success Manager pour plus de détails.

Générer des identifiants OAuth

Obtenir votre BC_TOKEN et numéro de compte.

  1. Connectez-vous à Video Cloud Studio. Dans le Administrateur liste déroulante, sélectionnez Information sur le compte. Copiez votre identifiant de compte.
  2. Avec n'importe quelle page de Studio ouverte, ouvrez les outils de développement pour le navigateur, accédez à la console et collez le code suivant :

    var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
    for (i = 0; i < cookiesArray.length; i++) {
        tmpArray = cookiesArray[i].split("=");
        if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
            cookiesObj.BC_TOKEN = tmpArray[1];
        }
    }
    window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);

    et appuyez sur retour.

  3. Vous devriez voir apparaître une invite contenant votre BC_TOKEN

Demander les identifiants du client

Ajoutez des autorisations de compte pour l'API des droits de lecture.

  1. Le moyen le plus simple de créer des informations d'identification client pour l'API des droits de lecture consiste à utiliser cette application en ligne et assurez-vous d'inclure ces autorisations lorsque vous créez les informations d'identification :
    Autorisations des droits de lecture
    Autorisations des droits de lecture
  2. Si vous préférez générer vos identifiants à l'aide de l'API OAuth directement, continuez avec les étapes suivantes.
  3. Voici un exemple de demande client OAuth avec les autorisations nécessaires. Voir Obtenir votre BC_TOKEN pour plus d'informations sur l'obtention de votre BC_TOKEN.

    curl \
      —include \
      —en-tête « Autorisation : BC_TOKEN votre BC_TOKEN" \
      —données {
        name=demo&maximum_scope= [{
          « identité » : {
            « type » : « video-cloud account »,
            « account-id » : votre identifiant de compte
          },
          « opérations » : [
            « video-cloud/playback-auth/playback-right/read »,
            « video-cloud/playback-auth/playback-rights/écriture »,
            « nuage vidéo/vidéo/lire »,
            « nuage vidéo/vidéo/créer »,
            « nuage vidéo/vidéo/mise à jour »,
            « nuage vidéo/vidéo/supprimer »,
            « nuage vidéo/playback-auth/clé/lecture »,
            « nuage vidéo/playback-auth/clé/écriture »
          ]
      }]
    } \
    https://oauth.brightcove.com/v4/client_credentials
  4. À partir de la réponse de l'API, copiez le client_id et client_secret. Vous les utiliserez pour générer un jeton d'accès lorsque vous effectuerez des demandes auprès de l'API des droits de lecture.

Définir des restrictions

Utilisez l'API des droits de lecture pour définir les restrictions de lecture vidéo.

API des droits de lecture

Chaque objet de restriction des droits de lecture peut être utilisé avec une ou plusieurs vidéos.

URL de base

L'URL de base de l'API est :

https://playback-rights.api.brightcove.com

Chemin du compte

Dans tous les cas, des demandes seront faites pour un Nuage vidéo Compte. Ainsi, vous ajouterez toujours le terme comptes suivi de votre identifiant de compte à l'URL de base :

https://playback-rights.api.brightcove.com/v1/accounts/{accountID}

Autorisation

Un jeton d'accès pour les demandes est requis et doit être présent dans l'en-tête Authorization :

Authorization: Bearer {access_token}

Le jeton d'accès est un jeton d'accès OAuth2 temporaire qui doit être obtenu auprès du service Brightcove OAuth. Pour plus de détails sur la façon d'obtenir les informations d'identification client et de les utiliser pour récupérer des jetons d'accès, consultez le Présentation de Brightcove OAuth.

Autorisations

Les demandes à l'API Playback Rights doivent être effectuées à partir des informations d'identification du client avec les autorisations suivantes :

  • video-cloud/playback-auth/playback-rights/read
  • video-cloud/playback-auth/playback-rights/write

Gérer les restrictions

L'API des droits de lecture prend en charge les requêtes suivantes. Pour plus de détails sur l'API, consultez le Référence de l'API des droits de lecture.

Créer de nouveaux droits de lecture

POST /v1/accounts/{accountID}/playback_rights
  Content-Type: application/json
  Body: {playback rights object}

Pour une liste des champs valides, consultez le Corps de la demande section.

Exemple de boucle

Créer un droit de lecture valide uniquement pour l'Australie.

curl -X POST \
  https://playback-rights.api.brightcove.com/v1/accounts/{your_account_id}/playback_rights \
  -H 'Autorisation : Porteur {access_token} ' \
  -H 'Type de contenu : application/json' \
  -d '{
  « géo » : {
    « allowed_countries » : [
      « AU »
    ]
  }
} '

Réponse de l'API

Sauver la playback_rights_id valeur pour une utilisation ultérieure. Vous pouvez trouver cette valeur dans la réponse de l'API. Soit :

  • En-tête de réponse:

    Les playback_rights_id la valeur peut être trouvée dans le Location champ de la réponse d'en-tête. Il devrait être similaire à ceci :

    Location: /v1/accounts/your account_id/playback_rights/your playback_rights_id
        
  • Corps de réponse

    Les playback_rights_id La valeur peut être trouvée dans le corps de la réponse en tant que id champ. Il devrait être similaire à ceci :

    {
      "id": "your playback_rights_id",
      "geo": {
      "allowed_countries": [
        "MX",
        "US"]
    }

Obtenez tous les droits de lecture pour un compte

GET /v1/accounts/{accountID}/playback_rights

Obtenez un droit de lecture spécifique pour un compte

GET /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

Mettre à jour un droit de lecture spécifique :

PUT /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
  Content-Type: application/json
  Body: {playback rights object}

Pour une liste des champs valides, consultez le Corps de la demande section.

Supprimer un droit de lecture spécifique :

DELETE /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

Corps de la demande

Voici un exemple de tous les champs que vous pouvez inclure dans le corps de la requête :

{
  "geo": {
  "allowed_countries": [
    "MX",
    "US"
  ],
  "blocked_countries": [
    "JP",
    "CN"
  ],
  "allowed_zip_codes": [
    "US-90210"
  ],
  "blocked_zip_codes": [
    "US-72810"
  ],
  "allowed_dmas": [
    501
  ],
  "blocked_dmas": [
    803
  ]
},
"blocked_proxies": {
  "anonymous": true,
  "public": true,
  "corporate": true,
  "transparent": true,
  "hosting": true
},
"allowed_domains": [
  "www.google.com",
  "www.brightcove.com"
],
"blocked_domains": [
  "www.ooyala.com"
],
"start_time": 1572905011,
"end_time": 1672905011,
"allowed_ips": [
  "192.168.1.1"
],
"blocked_ips": [
  "192.168.1.1"
],
"allowed_days": [
  "mon",
  "tue"
],
"allowed_hours": [
  "5-6"
],
"allow_insecure": true,
"disabled": false,
"geo_global_rule": "allow_all",
"is_default": true,
"name": "Optional playback right name"
}

Champs de l'API sur les droits de lecture

Champ Type Description
allowed_days Chaîne Tableau de noms en minuscules de 3 lettres pour les jours pendant lesquels la ressource est autorisée à être récupérée. Un ou plusieurs de : mon, tue, wed, thu, fri, sat, sun
allowed_domains, blocked_domains Chaîne Gamme de noms de domaine
allowed_hours Entier Tableau d'heures à partir de l'horloge de 24 heures (commençant à 0 et jusqu'à 47) pendant lesquelles la ressource est autorisée à être récupérée. 0 à 23 pour le jour en cours et 24 à 47 pour la date de fin du jour suivant. Si un bloc d'heures autorisé commence le jour précédent et se termine le jour suivant, une notation 24+ est requise.

Exemple : la valeur de 3-4 dans cet en-tête signifie que la ressource est disponible de 3h00 UTC à 3 h 59 UTC
allow_insecure Booléen Par défaut : false
Si vous true définissez cette option, le jeton JWT est facultatif.
allowed_ips, blocked_ips Entier Tableau d'adresses ipv4/ipv6 ou blocs CIDR.
disabled Booléen Par défaut : false
La configuration de cette option true désactive le droit de lecture, permettant la lecture pour tout le monde.
geo Objet Propriétés liées aux droits géographiques
geo.allowed_countries,
geo.blocked_countries
Chaîne Tableau de codes de pays à deux lettres, qui suivent la norme ISO 3166-1 alpha-2. Pour une liste de valeurs, voir le Éléments de code officiellement attribués.
geo.allowed_dmas,
geo.blocked_dmas
Entier Tableau des numéros de zone de marché désignée (DMA) de Nielsen. Pour une liste de valeurs, voir le Codes DMA document.
geo.allowed_zip_codes,
geo.blocked_zip_codes
Chaîne Tableau de codes postaux, qui sont précédés du pays à deux lettres et du trait d'union. par exemple ["US-90045"].
Le code pays à deux lettres doit être en majuscules et suivre la norme ISO 3166-1 alpha-2, comme indiqué dans les éléments de code assignés officiellement.
geo_global_rule Chaîne Par défaut : ""
Valeurs :
  • ""- Aucune règle géographique globale (c'est-à-dire qu'elle suit le flux normal pour les propriétés géographiques)
  • "allow_all"- Permet la lecture depuis n'importe où dans le monde, à l'exception des emplacements figurant sur la liste noire, qui sont spécifiés à l'aide blocked_* des propriétés
  • "block_all"- Bloque la lecture depuis n'importe où dans le monde, à l'exception des emplacements figurant sur la liste blanche, qui sont spécifiés à l'aide allow_* des propriétés
is_default Booléen Par défaut : false
Définir ceci sur true fait de la lecture droite actuelle la valeur par défaut. Pour plus de détails, voir les notes dans le introduction section.
name Chaîne Nom du droit de lecture en option
start_time, end_time Entier Temps d'époque
Propriétés du proxy des droits de lecture
Champ Type Description
blocked_proxies Objet Propriétés liées aux droits de procuration
blocked_proxies.anonymous Booléen L'adresse IP du client n'est pas disponible. Comprend les services qui changent d'emplacement pour battre les DRM, les points TOR, les proxys temporaires et d'autres services de masquage.
blocked_proxies.corporate Booléen Généralement considéré comme inoffensif, mais l'emplacement peut être une préoccupation. Identifiez si plusieurs utilisateurs sont mandatés via un ou plusieurs emplacements centraux et peuvent partager une seule adresse IP apparente sur le réseau.
blocked_proxies.hosting Booléen L'adresse IP appartient à une installation d'hébergement et est susceptible d'être un proxy, car les utilisateurs finaux ne se trouvent généralement pas dans une installation d'hébergement.
blocked_proxies.public Booléen Plusieurs utilisateurs mandatés à partir d'un emplacement permettant un accès Internet public.
blocked_proxies.transparent Booléen L'adresse IP du client est disponible via les en-têtes HTTP, bien que la valeur ne soit pas nécessairement fiable (par exemple, elle peut être usurpée).

Associer des restrictions à une vidéo

Utilisez l' CMS API pour associer un ID de droits de lecture à une vidéo. Vous utiliserez l'identifiant des droits de lecture que vous avez créé à l'étape précédente.

API CMS

Chaque objet de restriction des droits de lecture peut être utilisé avec une ou plusieurs vidéos.

URL de base

L'URL de base de l'API est :

https://cms.api.brightcove.com/v1

Chemin du compte

Dans tous les cas, des demandes seront faites pour un Nuage vidéo Compte. Ainsi, vous ajouterez toujours le terme comptes suivi de votre identifiant de compte à l'URL de base :

https://cms.api.brightcove.com/v1/accounts/{accountId}

Autorisation

Un jeton d'accès pour les demandes est requis et doit être présent dans l'en-tête Authorization :

Authorization: Bearer {access_token}

Le jeton d'accès est un jeton d'accès OAuth2 temporaire qui doit être obtenu auprès du service Brightcove OAuth. Pour plus de détails sur la façon d'obtenir les informations d'identification client et de les utiliser pour récupérer des jetons d'accès, consultez le Présentation de Brightcove OAuth.

Autorisations

Les demandes à l'API Playback Rights doivent être effectuées à partir des informations d'identification du client avec les autorisations suivantes :

  • video-cloud/video/read
  • video-cloud/video/update

Gérer les restrictions

Le CMS API prend en charge les nombreux types de requêtes. Pour mettre à jour une vidéo, utilisez les éléments suivants :

Mettre à jour une vidéo :

Associer un playback_rights_id avec une vidéo. Cet identifiant doit exister dans l'API des droits de lecture, que vous avez créée à l'étape précédente.

PATCH /v1/accounts/{account_id}/videos/{video_id}
  Content-Type: application/json
  Body: {video object}

Exemple de boucle

Ajoutez un playback_rights_id à une vidéo.

curl -X PATCH \
  https://cms.api.brightcove.com/v1/accounts/votre compte_id/videos/votre video_id \
  -H 'Autorisation : Porteur de votre access_token' \
  -H 'Type de contenu : application/json' \
  -d '{
	« playback_rights_id » : «votre playback_rights_id»
} '

Obtenez une vidéo spécifique :

GET /v1/accounts/{account_id}/videos/{video_ids}

Pour plus de détails sur l'utilisation de l'API, consultez le Référence de l'API CMS.

Configurez votre lecteur

Par défaut, Brightcove Player communique avec l'API de lecture Brightcove (PAPI). Un nouveau système pour gérer les restrictions de lecture se trouve devant l'API de lecture. Pour configurer votre lecteur, consultez ce qui suit :

Lecteur Web

Pour configurer le lecteur Web Brightcove, consultez le Restrictions de lecture avec Brightcove Player document.

Lecteur natif Android ou iOS

Pour configurer le lecteur natif pour Android ou iOS, consultez le Restrictions de lecture avec les SDK natifs document.

Votre propre joueur

Si votre contenu se trouve dans la bibliothèque Video Cloud, mais que vous utilisez votre propre lecteur, vous pouvez appeler l'API Playback comme indiqué dans la vue d'ensemble : Document de l'API de lecture. Remplacez l'URL de base par ce qui suit :

https://edge-auth.api.brigthcove.com

Au lieu d'utiliser une clé de stratégie, vous utiliserez le jeton Web JSON (JWT) pour l'authentification :

Authorization: Bearer {JWT}

Voici un exemple de Curl :

curl -X GET \
-H 'Autorisation : Porteur {JWT} ' \
https://edge-auth.api.brightcove.com/playback/v1/accounts/{your_account_id}/videos/{your_video_id}