Implementación de reglas de entrega

En este tema, aprenderá a implementar las reglas de entrega de Brightcove, que le permiten personalizar la entrega de sus medios para cumplir con sus objetivos comerciales.

Resumen

Los editores a menudo necesitan modificar las características del contenido de sus manifiestos de medios por razones tanto técnicas como comerciales. Para satisfacer estas necesidades, Brightcove ha creado un marco donde se pueden aplicar reglas que modificarán el contenido del manifiesto devuelto por Dynamic Delivery.

Las reglas de entrega se componen de condiciones y acciones.

  • Condiciones - Condiciones "si" que desencadenan una determinada acción
  • Comportamiento - Parámetros "Entonces" que definen cómo se modifica el manifiesto

Para obtener más detalles sobre las reglas de entrega, consulte lo siguiente:

Configuracion de cuenta

Comuníquese con su Gerente de Éxito del Cliente para conocer los precios y habilitar esta función para su cuenta.

Aplicando reglas

El siguiente diagrama de flujo muestra cómo se aplican las reglas de entrega.

Se aplicaron las reglas de entrega
Se aplicaron las reglas de entrega

Condiciones

Las condiciones "si", admitidas en la primera fase, incluyen las siguientes:

  • Solicitud explícita - Un ID de configuración es el ID de una acción que ha creado. Utilizará esta identificación para pasar a la API de reproducción en tiempo de ejecución. Esta identificación se asigna a valores de configuración que permiten que los servicios subyacentes tomen decisiones aprovechadas por la API de reproducción para devolver los datos de respuesta adecuados.

  • Grupo de dispositivos - Tipo de dispositivo detectado por el análisis del agente de usuario. Los grupos actualmente apoyados incluyen:
    • androide
    • appletv
    • cromado
    • ipad
    • iphone
    • escritorio-chrome
    • escritorio-firefox
    • escritorio-safari
    • fetchtv
    • ios-otro
    • roku-7/8
    • smartphone-genérico
    • tableta-android
    • tableta-kindle
    • desconocido
     
  • Geografía - Ubicación física del dispositivo solicitante:
    • Continente
    • País

Comportamiento

Las acciones, o parámetros "entonces", admitidos en la primera fase incluyen lo siguiente:

  • CDN de entrega de medios - De las CDN configuradas para su uso dentro de una cuenta de Dynamic Delivery determinada, la CDN que se usará para la entrega de segmentos de medios.

  • Características de reproducción - Filtros basados en las características de las representaciones multimedia subyacentes. Éstas incluyen:
    • Tasa de bits de video mínima
    • Tasa máxima de bits de video
    • Resolución de video mínima
    • Resolución máxima de video
    • Número máximo de reproducciones de audio
    • Número máximo de representaciones de video
    • Tasa de bits del primer video
    • Discontinuidades

Alcance

Las acciones se pueden aplicar en dos niveles:

  • Cuenta - Acciones que se aplican a todas las solicitudes realizadas a la cuenta de un cliente específico
  • Solicitud especifica - Acciones que se invocan en una solicitud específica

Las acciones se aplicarán en el orden indicado anteriormente. Las acciones posteriores anularán las anteriores.

Definiendo reglas

Utilice la API de reglas de entrega para personalizar la entrega de medios.

API de reglas de entrega

La API de reglas de entrega le permite definir condiciones y acciones para controlar la entrega de sus medios.

La respuesta de la API de reglas de entrega contiene un conditions formación. Esta matriz le permite crear múltiples if / then condiciones donde cada then apunta a uno o más ID de acción.

Aunque no hay métodos para agregar o eliminar conditions , puede hacerlo actualizando el conditions formación.

URL base

La URL base de la API es:

https://delivery-rules.api.brightcove.com

Ruta de la cuenta

En todos los casos, las solicitudes se realizarán para un Video Cloud Cuenta. Por lo tanto, siempre agregará el término cuentas seguido de la identificación de su cuenta a la URL base:

https://delivery-rules.api.brightcove.com/accounts/{accountID}

Autorización

Se requiere un token de acceso para las solicitudes y debe estar presente en el encabezado de Autorización:

Authorization: Bearer {access_token}

El token de acceso es un token de acceso OAuth2 temporal que debe obtenerse del servicio Brightcove OAuth. Para obtener detalles sobre cómo obtener credenciales de cliente y usarlas para recuperar tokens de acceso, consulte la Descripción general de Brightcove OAuth.

Permisos

Las solicitudes a la API de derechos de reproducción deben realizarse desde credenciales del cliente con los siguientes permisos:

  • video-cloud/delivery-rules/read
  • video-cloud/delivery-rules/all

Administrar reglas

La API de reglas de entrega admite las siguientes solicitudes. Para obtener detalles de la API, consulte la Referencia de la API de reglas de entrega.

Obtenga las reglas de entrega

Utilice la siguiente solicitud GET para obtener la última versión de las Reglas de entrega para una cuenta.

GET /accounts/{accountID}
Respuesta de API

Aquí está el cuerpo de respuesta. Tenga en cuenta que las Reglas de entrega contienen un conjunto de condiciones y un conjunto de acciones.

{
  "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"
      ]
    }
    }
  ]
}

Obtener condiciones

Utilice la siguiente solicitud GET para obtener las condiciones de una cuenta.

GET /accounts/{accountID}/conditions
Respuesta de la API

Aquí está el cuerpo de respuesta.

[
  {
    "name": "MyCondition1",
    "if": {
      "device_group": [
        "ipad"
      ],
      "request_country": [
        "string"
      ],
      "request_continent": [
        "AF"
      ]
    },
    "then": [
      "44c91a1d-71f1-40b4-b9cf-3abcd12345"
    ]
  }
]

Condiciones de actualización

Utilice la siguiente solicitud PUT para actualizar las condiciones de una cuenta.

PUT /accounts/{accountID}/conditions
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {conditions object}

Cuerpo de solicitud para condiciones

Aquí está el cuerpo de solicitud de condiciones. Observe que se trata de una matriz de objetos de condición.

[
  {
    "name": "MyCondition1",
    "if": {
      "device_group": [
        "ipad"
      ],
      "request_country": [
        "string"
      ],
      "request_continent": [
        "AF"
      ]
    },
    "then": [
      "44c91a1d-71f1-40b4-b9cf-3abcd12345"
    ]
  }
]

Aquí están los detalles del campo para las condiciones:

Campo Tipo Descripción
name Cadena Identificador único de la afección
device_group Cadena Matriz de tipos de dispositivos detectados por el análisis del agente de usuario
request_country Cadena Matriz de códigos de país de dos letras
request_continent Cadena Matriz de códigos de continente de dos letras
then Cadena Identificador único de la acción asociada

Crea una acción

Utilice la siguiente solicitud POST para crear acciones para una cuenta.

POST /accounts/{accountID}/actions
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {actions object}

Cuerpo de solicitud de acciones

Aquí está el cuerpo de la solicitud de acciones.

{
    "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"
      ]
  }
}

Aquí están los detalles del campo para las acciones:

Campo Tipo Descripción
properties Objeto Un objeto de propiedades definidas para una acción específica.
min_video_bitrate,
max_video_bitrate
Entero Establecer la tasa de bits de video mínima o máxima permitida (kbps)
first_video_bitrate Entero Establecer la tasa de bits para el primer video (kbps)
min_video_resolution,
max_video_resolution
Cadena Establezca la resolución de video mínima o máxima permitida (WxH)
max_video_renditions Entero Establecer el número máximo de representaciones de video
max_audio_renditions Entero Establecer el número máximo de reproducciones de audio
preferred_cdn_provider Cadena Establecer el proveedor de CDN preferido
preferred_cdn_domain Cadena Establecer el dominio CDN preferido
video_codecs Cadena Matriz de códecs de video
audio_codecs Cadena Matriz de códecs de audio

Respuesta de API para acciones

Aquí hay un cuerpo de respuesta de muestra para acciones.

{
    "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"
      ]
  }
}

Además de los campos de acciones en la solicitud, la respuesta de la API incluye el siguiente campo generado:

Campo Tipo Descripción
id Cadena Un identificador único generado por el sistema para la acción. Este es el actionID utilizado en los métodos de actualización y eliminación.

Obtener acciones

Utilice la siguiente solicitud GET para obtener las acciones de una cuenta.

GET /accounts/{accountID}/actions
Respuesta de API

Ver el Respuesta de API para acciones.

Obtener una acción

Utilice la siguiente solicitud GET para obtener una acción específica para una cuenta.

GET /accounts/{accountID}/actions/{actionID}
Respuesta de API

Ver el Respuesta de API para acciones.

Actualizar una acción

Utilice la siguiente solicitud PUT para actualizar una acción para una cuenta.

PUT /accounts/{accountID}/actions/{actionID}
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {actions object}
Solicitud de API

A continuación, se muestra un cuerpo de solicitud de muestra para actualizar las acciones.

{
  "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
  "properties": {
   "custom_properties": {
    "generate_thumbnails": false,
    "hls_iframes": true
   }
  }
 }
Respuesta de API

Aquí hay una respuesta de muestra para acciones actualizadas.

{
  "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
  "properties": {
   "custom_properties": {
    "generate_thumbnails": false,
    "hls_iframes": true
   }
  }
 }

Eliminar una acción

Utilice la siguiente solicitud DELETE para eliminar una acción de una cuenta.

DELETE /accounts/{accountID}/actions/{actionID}

Limitaciones

Existen algunas limitaciones conocidas al utilizar las reglas de entrega:

  • Contenido multimedia - Las reglas de entrega no funcionarán con videos Smooth o pMP4.
  • Contenido multimedia - Las reglas de entrega no funcionarán con videos en vivo.
  • Solo audio - Las reglas de entrega con anuncios del lado del servidor (SSAI) habilitados requieren contenido de video y audio. Esta es una restricción de SSAI.