Implémentation des règles

Dans cette rubrique, vous apprendrez comment mettre en œuvre les règles de livraison de Brightcove, qui vous permettent de personnaliser la façon dont vos médias sont diffusés afin d'atteindre vos objectifs commerciaux.

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.

Règles de livraison appliquées
Règles de livraison 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.