Aperçu
Les éditeurs doivent souvent modifier les caractéristiques du contenu de leurs manifestes multimédias pour des raisons à la fois techniques et commerciales. Pour répondre à ces besoins, Brightcove a créé un cadre dans lequel des règles peuvent être appliquées pour modifier le contenu du manifeste renvoyé par Dynamic Delivery.
Les règles de livraison sont constituées de conditions et d'actions.
- Conditions - Conditions "Si" qui déclenchent une certaine action
- Actions - Paramètres "Alors" qui définissent comment le manifeste est modifié
Pour plus de détails sur les règles de livraison, consultez ce qui suit :
Configuration du compte
Contactez votre Customer Success Manager pour en savoir plus sur les tarifs et activer cette fonctionnalité pour votre compte.
Appliquer des règles
L'organigramme suivant montre comment les règles de livraison sont appliquées.
Conditions
Les conditions « si », prises en charge dans la première phase, sont les suivantes :
-
Demande explicite - Un identifiant de configuration est l'identifiant d'une action que vous avez créée. Vous utiliserez cet identifiant pour passer à l'API Playback lors de l'exécution. Cet identifiant est mappé aux valeurs de configuration qui permettent aux services sous-jacents de prendre des décisions exploitées par l'API Playback pour renvoyer les données de réponse appropriées.
-
Groupe de périphériques - Type de périphérique détecté par l'analyse de l'agent utilisateur. Les groupes actuellement pris en charge comprennent :
- Android
- Apple TV
- chromecast
- ipad
- iphone
- bureau-chrome
- bureau-firefox
- bureau-safari
- fetchtv
- ios-autre
- roku-7/8
- smartphone-générique
- tablette-android
- tablette-allumer
- inconnu
-
Géographie - Emplacement physique de l'appareil demandeur :
- Continent
- Pays
Actions
Les actions, ou paramètres « alors », pris en charge dans la première phase sont les suivants :
-
CDN Media Delivery - À partir des CDN configurés pour être utilisés dans un compte Dynamic Delivery donné, le CDN à utiliser pour la livraison de segments de médias.
-
Caractéristiques du rendu : filtre en fonction des caractéristiques des rendus multimédias sous-jacents. Il s'agit notamment de :
- Débit vidéo minimum
- Débit vidéo maximal
- Résolution vidéo minimale
- Résolution vidéo maximale
- Nombre maximal de rendus audio
- Nombre maximal de rendus vidéo
- Débit de la première vidéo
- Discontinuités
Portée
Les actions peuvent être appliquées à deux niveaux :
- Compte - Actions qui s'appliquent à toutes les demandes effectuées sur le compte d'un client spécifique
- Demande spécifique - Actions qui sont invoquées sur une requête spécifique
Les actions seront appliquées dans l'ordre indiqué ci-dessus. Les actions ultérieures remplaceront les précédentes.
Définir des règles
Utilisez l'API des règles de livraison pour personnaliser la livraison des médias.
API de règles de livraison
Les API de règles de livraison vous permet de définir des conditions et des actions pour contrôler votre diffusion multimédia.
Les réponse de l'API des règles de livraison contient un conditions
déployer. Ce tableau vous permet de créer plusieurs if
/ then
conditions où chaque then
pointe vers un ou plusieurs identifiants d'action.
Même s'il n'y a pas de méthodes pour ajouter ou supprimer conditions
, vous pouvez le faire en mettant à jour le conditions
déployer.
URL de base
L'URL de base de l'API est :
https://delivery-rules.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://delivery-rules.api.brightcove.com/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/delivery-rules/read
-
video-cloud/delivery-rules/all
Gérer les règles
L'API des règles de livraison prend en charge les requêtes suivantes. Pour plus de détails sur l'API, consultez le Référence de l'API des règles de livraison.
Obtenir les règles de livraison
Utilisez la requête GET suivante pour récupérer la dernière version des règles de livraison pour un compte.
GET /accounts/{accountID}
Réponse de l'API
Voici le corps de la réponse. Notez que les règles de livraison contiennent un ensemble de conditions et un ensemble d'actions.
{
"conditions": [
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"{action_id}"
]
}
],
"actions": [
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
]
}
Obtenir les conditions
Utilisez la requête GET suivante pour récupérer les conditions d'un compte.
GET /accounts/{accountID}/conditions
Réponse de l'API
Voici le corps de la réponse.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
Conditions de mise à jour
Utilisez la requête PUT suivante pour mettre à jour les conditions d'un compte.
PUT /accounts/{accountID}/conditions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {conditions object}
Organisme de demande de conditions
Voici le corps de la demande de conditions. Notez qu'il s'agit d'un tableau d'objets de condition.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
Voici les détails des champs pour les conditions :
Champ | Type | Description |
---|---|---|
name |
Chaîne | Identifiant unique de la condition |
device_group |
Chaîne | Tableau des types de périphériques détectés par l'analyse de l'agent utilisateur |
request_country |
Chaîne | Tableau de codes de pays à deux lettres |
request_continent |
Chaîne | Tableau de codes continents à deux lettres |
then |
Chaîne | Identifiant unique de l'action associée |
Créer une action
Utilisez la requête POST suivante pour créer des actions pour un compte.
POST /accounts/{accountID}/actions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
Corps de demande pour les actions
Voici le corps de la requête pour les actions.
{
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
Voici les détails des champs pour les actions :
Champ | Type | Description |
---|---|---|
properties |
Objet | Un objet de propriétés définies pour une action spécifique |
min_video_bitrate , max_video_bitrate |
Entier | Définir le débit binaire vidéo minimum ou maximum autorisé (kbps) |
first_video_bitrate |
Entier | Définir le débit pour la première vidéo (kbps) |
min_video_resolution , max_video_resolution |
Chaîne | Définir la résolution vidéo minimale ou maximale autorisée (LxH) |
max_video_renditions |
Entier | Définir le nombre maximal de rendus vidéo |
max_audio_renditions |
Entier | Définir le nombre maximal de rendus audio |
preferred_cdn_provider |
Chaîne | Définir le fournisseur CDN préféré |
preferred_cdn_domain |
Chaîne | Définir le domaine CDN préféré |
video_codecs |
Chaîne | Tableau de codecs vidéo |
audio_codecs |
Chaîne | Tableau de codecs audio |
Réponse de l'API pour les actions
Voici un exemple de corps de réponse pour les actions.
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
En plus des champs d'actions dans la demande, la réponse de l'API inclut le champ généré suivant :
Champ | Type | Description |
---|---|---|
id |
Chaîne | Un identifiant unique généré par le système pour l'action. C'est le actionID utilisé dans les méthodes de mise à jour et de suppression. |
Obtenir des actions
Utilisez la requête GET suivante pour récupérer les actions pour un compte.
GET /accounts/{accountID}/actions
Réponse de l'API
Voir le Réponse de l'API pour les actions.
Obtenir une action
Utilisez la requête GET suivante pour récupérer une action spécifique pour un compte.
GET /accounts/{accountID}/actions/{actionID}
Réponse de l'API
Voir le Réponse de l'API pour les actions.
Mettre à jour une action
Utilisez la requête PUT suivante pour mettre à jour une action pour un compte.
PUT /accounts/{accountID}/actions/{actionID}
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
Demande d'API
Voici un exemple de corps de requête pour mettre à jour les actions.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
Réponse de l'API
Voici un exemple de réponse pour les actions mises à jour.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
Supprimer une action
Utilisez la demande DELETE suivante pour supprimer une action pour un compte.
DELETE /accounts/{accountID}/actions/{actionID}
Contraintes
Il existe quelques limitations connues lors de l'utilisation des règles de livraison :
- Contenu multimédia - Les règles de diffusion ne fonctionnent pas avec les vidéos Smooth ou PMP4.
- Contenu multimédia - Les règles de livraison ne fonctionneront pas avec les vidéos en direct.
- Audio uniquement - Les règles de diffusion avec les publicités côté serveur (SSAI) activées nécessitent du contenu vidéo et audio. Il s'agit d'une restriction SSAI.