Notificaciones de API de ingesta dinámica
Puede especificar una o más URL de devolución de llamada para recibir notificaciones de los resultados del proceso de ingesta. Las URL que especifique deben ser para aplicaciones que puedan aceptar solicitudes POST. Las notificaciones se enviarán en formato JSON.
Configuración
He aquí un ejemplo.
- Usuario con ID de publicación 57838016001
- Quiere usar Dynamic Ingest para cargar un archivo de video fuente ubicado en https://s3.amazonaws.com/bucket/mysourcevideo.mp4
- Quiere cargar un título existente en el catálogo con la identificación de video 5199670523001
- Usando el perfil de alta resolución
- Quiere recibir devoluciones de llamada en dos puntos finales ubicados en http: // host1 / path1 y http: // host2 / path2 respectivamente
La solicitud de DI se vería así:
Solicitud POST
Cuerpo de la solicitud
Notificación de muestra
Las notificaciones se envían como solicitudes POST con la notificación en el cuerpo de la solicitud como JSON [1] . Aquí hay algunas notificaciones de muestra:
{
"accountId": "57838016001",
"entityType": "ASSET",
"version": "1",
"status": "SUCCESS",
"videoId": "5199670523001",
"entity": "5199679295001",
"action": "CREATE",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"action": "CREATE",
"status": "SUCCESS",
"entityType": "DIGITAL_MASTER",
"videoId": "5199670523001",
"entity": "5199670523001",
"accountId": "57838016001",
"version": "1",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"entityType": "ASSET",
"status": "SUCCESS",
"action": "CREATE",
"entity": "5199680423001",
"profileRefId": "ts7",
"version": "1",
"accountId": "57838016001",
"videoId": "5199670523001",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd",
"accountId": "57838016001",
"version": "1",
"status": "SUCCESS",
"entityType": "TITLE",
"entity": "5199670523001",
"videoId": "5199670523001",
"action": "CREATE"
}
Notas
- [1] Excepción: Todas las notificaciones de contenido empaquetado con DRM se devuelven como pares clave / valor. En este caso, el
Content-Type
el encabezado seráapplication/x-www-form-urlencoded
. De lo contrario, elContent-Type
estaránapplication/json
Campos de notificación
Artículo | Descripción |
---|---|
status |
estarán FAILED si la ingesta o la creación de una versión no se realizó correctamente, SUCCESS si la solicitud tuvo éxito |
accountId |
la identificación de la cuenta |
videoId |
la identificación del video |
jobId |
el ID de trabajo para la solicitud de ingesta dinámica |
profileRefId |
Para las interpretaciones de video, esta será la Para los manifiestos, el
|
entity |
si existe, el ID de Video Cloud del activo que se ingirió o falló (si el objeto de video se creó correctamente en Video Cloud) |
entityType |
el tipo de activo sobre el que se informa, por ejemplo: TITLE (un video), DIGITAL_MASTER, ASSET (una interpretación, un archivo de subtítulos o una imagen) |
errorMessage |
una explicación de por qué la ingestión falló si lo hizo |
version |
una cadena siempre igual a "1" |
action |
la acción que ocurrió - por ejemplo, CREAR |
Interpretación de notificaciones
Una notificación que contiene "action": "CREATE"
y "status": "SUCCESS"
indica la finalización de un proceso.
- Si el
entityType
esTITLE
, luego se completa el procesamiento de un video ingerido. - Si el
entityType
esASSET
, luego se agregó correctamente a su video una interpretación, imagen, manifiesto o archivo WebVTT.
No hay té "status": "SUCCESS"
en un título indica que el procesamiento está completo, pero no significa necesariamente que todas las copias se hayan creado correctamente. Para determinar si la ingesta dinámica de videos se realizó correctamente, consulte Obtener el estado de las solicitudes de ingesta dinámica
Aplicación de muestra básica
A continuación se muestra el código para una aplicación de registro simple para API de ingesta dinámica notificación. Esta aplicación está escrita en PHP, pero puede usar cualquier idioma, siempre que la aplicación tenga una URL pública y pueda manejar solicitudes HTTP (s) POST.
Puede ver el archivo de registro que genera esta aplicación aquí.
Nota: si intenta implementar esta aplicación usted mismo, deberá asegurarse de que la aplicación tenga permiso para escribir en su archivo de registro. Recuerde también que el archivo de registro puede crecer rápidamente; probablemente desee vaciarlo con regularidad.
<? php // POST no funcionará para datos JSON $ problem = "No hay errores"; tratar { $json = file_get_contents('php://input'); $decoded = json_decode($json, true); } captura (Excepción $ e) { $problem = $e->getMessage(); } // convierte la notificación en JSON bastante impreso $ notificación = json_encode ($ decoded, JSON_PRETTY_PRINT); $ logEntry = $ notificación. "\\ nErrores al recibir notificaciones:". $ problema. "\\ n
---
---------------------------- \\ n"; // Por último, dígale a PHP dónde puede encontrar el archivo de registro y dígale a PHP que lo abra // y agregue la cadena que creamos anteriormente. $ logFileLocation = "di-log.txt"; $ fileHandle = fopen ($ logFileLocation, 'a') o morir ("- 1"); fwrite ($ fileHandle, $ logEntry); fclose ($ fileHandle); // la línea de abajo se muestra cuando navega por la aplicación directamente echo "La aplicación de devolución de llamada Dynamic Ingest se está ejecutando"; ?>