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 fonction, consultez le Aperçu: Gestion des droits de lecture document.
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.
Flux de travail
Pour gérer les restrictions de lecture, procédez comme suit:
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 gestionnaire de compte pour plus de détails.
Générer des identifiants OAuth
Obtenir votre BC_TOKEN
et numéro de compte.
- Connectez-vous à Video Cloud Studio. Dans le Administrateur liste déroulante, sélectionnez Information sur le compte. Copiez votre identifiant de compte.
-
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.
-
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.
- 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:
- Si vous préférez générer vos identifiants à l'aide de OAuth API directement, continuez avec les étapes suivantes.
-
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 \\ --header "Autorisation: BC_TOKEN votre BC_TOKEN " \\ --data { name=demo&maximum_scope=[{ "identity": { "type": "video-cloud-account", "account-id": votre identifiant de compte }, "operations": [ "video-cloud/playback-auth/playback-rights/read", "video-cloud/playback-auth/playback-rights/write", "video-cloud/video/read", " video-cloud/video/create", "video-cloud/video/update", "video-cloud/video/delete", "video-cloud/playback-auth/key/read", "video-cloud/playback- auth/key/write" ] }] } \\ https://oauth.brightcove.com/v4/client_credentials
-
À partir de la réponse de l'API, copiez le
client_id
etclient_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/v1
Chemin du compte
Dans tous les cas, des demandes seront faites pour un compte Video Cloud spécifique. 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 des droits de lecture doivent être effectuées à partir de 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' \\ -ré '{ "geo": { "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 leLocation
champ de la réponse d'en-tête. Cela devrait ressembler à 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 queid
champ. Cela devrait ressembler à 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
},
"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,
"name": "Optional playback right name"
}
Voici les détails du champ :
Champ | Taper | La description |
---|---|---|
allowed_countries , blocked_countries |
Chaîne de caractères | 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. |
allowed_zip_codes , blocked_zip_codes |
Chaîne de caractères | 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 de pays à deux lettres doit être en majuscules et suivre la norme ISO 3166-1 alpha-2, comme indiqué dans le Éléments de code officiellement attribués. |
allowed_dmas , 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. |
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: public |
booléen | Plusieurs utilisateurs mandatés à partir d'un emplacement permettant un accès Internet public. |
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: 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). |
allowed_domains , blocked_domains |
Chaîne de caractères | Gamme de noms de domaine |
start_time , end_time |
Entier | Temps d'époque |
allowed_ips , blocked_ips |
Entier | Tableau d'adresses ipv4/ipv6 ou blocs CIDR. |
allowed_days |
Chaîne de caractères | 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_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 à 3h59 UTC |
allow_insecure |
booléen | Défaut: false
Régler ceci sur true rend le jeton JWT facultatif. |
disabled |
booléen | Défaut: false
Régler ceci sur true désactive le droit de lecture, permettant la lecture pour tout le monde. |
name |
Chaîne de caractères | Nom du droit de lecture en option |
Associer des restrictions à une vidéo
Utilisez le CMS API pour associer un identifiant de droits de lecture à une vidéo. Vous utiliserez l'identifiant des droits de lecture que vous avez créé à l'étape précédente.
CMS API
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 compte Video Cloud spécifique. 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 des droits de lecture doivent être effectuées à partir de informations d'identification du client avec les autorisations suivantes :
-
video-cloud/video/read
-
video-cloud/video/update
Gérer les restrictions
Les 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 account_id/vidéos/votre video_id \\ -H' Autorisation : Porteur 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 CMS API.
Définir des restrictions au niveau de l'utilisateur
Si vous voulez des restrictions au niveau de l'utilisateur, vous aurez besoin d'un Jeton Web JSON (JWT) configuré avec des revendications associées à vos restrictions.
Pas
Créer un Jeton Web JSON (JWT) à transmettre à votre lecteur, procédez comme suit:
-
Déterminer les restrictions
Déterminez le type de restrictions au niveau de l'utilisateur que vous souhaitez utiliser dans la liste ci-dessous. Incluez les revendications JWT nécessaires lorsque vous créez votre Jeton Web JSON (JWT).
Limites de l'appareil
Lorsqu'une demande de licence DRM est effectuée, l'appareil de l'utilisateur est enregistré et un identifiant unique est attribué. La limite d'appareils est vérifiée et appliquée à chaque demande de licence. Pour utiliser cette restriction, générez un JWT avec l'ID utilisateur actuel (uid).
Pour plus de détails, consultez le Implémentation des limites de périphérique document.
Limites de flux simultanés
Lorsqu'une demande de licence DRM est effectuée, l'appareil de l'utilisateur est enregistré et un identifiant unique est attribué. À chaque demande de licence, l'identifiant de l'appareil est vérifié pour s'assurer qu'il ne regarde qu'un nombre spécifié de flux vidéo en même temps.
Pour plus de détails, consultez le Limitation des flux simultanés par spectateur document.
Mots clés
Basé sur
tags
réclamation, le Jeton Web JSON (JWT) précisera le groupe de vidéos que l'utilisateur est autorisé à regarder. Vous pouvez regrouper des vidéos avec des balises en utilisant le Module média dans le Video Cloud Studio de Brightcove.Le service d'autorisation de lecture vérifiera les balises associées à chaque vidéo. Si au moins une des balises correspond à la liste du jeton JWT, la vidéo est visible.
Les balises du jeton JWT seront répertoriées sous la forme d'un tableau de balises.
-
Créer un Jeton Web JSON
Pour créer un jeton à utiliser lors de la communication avec le Playback API de Brightcove, consultez le Créer un Jeton Web JSON (JWT) document.
Configurez votre lecteur
Par défaut, Brightcove Player communique avec le Playback API Brightcove (PAPI). Un nouveau système pour gérer les restrictions de lecture se trouve devant le Playback API. Pour configurer votre lecteur, consultez ce qui suit:
Lecteur Web
Pour configurer le lecteur Web Brightcove, consultez le Utilisation des droits de lecture avec Brightcove Player document.
Lecteur Android natif
Pour configurer le lecteur natif pour Android, consultez le Utilisation des droits de lecture avec les SDK natifs document.
Lecteur iOS natif
Pour configurer le lecteur natif pour iOS, consultez le Utilisation des droits de lecture avec les SDK natifs document.
Votre propre Lecteur
Si votre contenu se trouve dans la bibliothèque Video Cloud, mais que vous utilisez votre propre lecteur, vous pouvez appeler le Playback API comme indiqué dans le Aperçu: Playback API document. 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 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}/vidéos/{your_video_id}