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 :
- Contrôles géographiques
- Vérification de l'horaire
- Vérification de procuration
- Vérification de domaine
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é surallow_all
geo_global_rule
est réglé surblock_all
geo_global_rule
est réglé surnull
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 :
- Vérification de l'horaire
- Vérification de procuration
- Vérification de domaine
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 :
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.
- 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 l'API OAuth 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 \ —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 -
À 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
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 leLocation
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 queid
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 :
|
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}