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.
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.