soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema

Notificaciones de ingesta dinámica

En este tema, aprenderá acerca de las notificaciones de Ingesta dinámica, que proporcionan información sobre el progreso de sus trabajos de ingesta. Tenga en cuenta que este documento solo se aplica al sistema de ingesta heredado: para la entrega dinámica, consulte Notificaciones para ingesta dinámica

Dynamic Ingest API notificaciones

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.

Preparar

He aquí un ejemplo.

  • Usuario con pub ID 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
  • Desea recibir devoluciones de llamada en dos puntos finales ubicados en http: // host1 / path1 y http: // host2 / path2 respectivamente

La solicitud DI se vería así:

Solicitud POST

Solicitar cuerpo

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 algunos ejemplos de notificación:

    {
        "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 encabezado será application/x-www-form-urlencoded. De lo contrario, la Content-Type se mostrarán application/json

Campos de notificación

Asunto Descripción
status se mostrarán FAILED si la captura o creación de una entrega no fue exitosa, SUCCESS si la solicitud tuvo éxito
accountId la identificación de la cuenta
videoId el video id
jobId la identificación del trabajo para la solicitud de ingesta dinámica
profileRefId

Para las entregas de videos, esta será la reference id usted especificó para la rendición en su perfil de ingestión.

Para manifiestos, el profileRefId indicará el tipo de manifiesto:

  • HlsManifest para un manifiesto de HLS NG
  • HdsManifest para un manifiesto HDS
  • DashManifest para manifiestos DASH (2: uno de los activos del manifiesto se utiliza para el consumo en el MAPI, el otro se utiliza para el consumo en el CMS API)
  • SmoothIsmManifest para un manifiesto suave (2: uno de los activos del manifiesto se utiliza para el consumo en el MAPI, el otro se utiliza para el consumo en el CMS API)
entity si existe, el Video Cloud Id. del recurso que se ingirió o falló (si el objeto de video se creó correctamente en Video Cloud)
entityType el tipo de activo reportado, por ejemplo: TITLE (un video), DIGITAL_MASTER, ASSET (una reproducción, archivo de subtítulos o imagen)
errorMessage una explicación de por qué la ingesta falló si lo hizo
version una cadena siempre igual a "1"
action la acción que ocurrió, por ejemplo, CREAR

Interpretando notificaciones

Una notificación que contiene "action": "CREATE" y "status": "SUCCESS" indica la finalización de un proceso.

  • Si la línea entityType is TITLE, luego se completa el procesamiento de un video ingerido.
  • Si la línea entityType is ASSET, luego se ha agregado exitosamente a su video una versión, imagen, manifiesto o archivo WebVTT.

No hay té "status": "SUCCESS" en un título indica que el procesamiento está completo, pero no necesariamente significa que todas las representaciones se crearon correctamente. Para determinar si la Ingesta dinámica de videos fue exitosa, consulte Obtener el estado de solicitudes dinámicas de ingesta

Aplicación básica de muestra

A continuación se muestra el código para una aplicación de registro simple para Dynamic Ingest API 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 las solicitudes POST de http (s).

Puede ver el archivo de registro que esta aplicación genera aquí.

Nota: si intenta implementar esta aplicación por sí mismo, deberá asegurarse de que la aplicación tenga permiso para escribir en su archivo de registro. Además, recuerde que el archivo de registro puede crecer rápidamente; es probable que desee vaciarlo regularmente.

    <?php
    // POST won't work for JSON data
    $problem = "No errors";
    try {
        $json    = file_get_contents('php://input');
        $decoded = json_decode($json, true);
    } catch (Exception $e) {
        $problem = $e->getMessage();
    }
    
    // turn notification into pretty printed JSON
    $notification = json_encode($decoded, JSON_PRETTY_PRINT);
    
    
    
    $logEntry = $notification.
    "\nErrors receiving notificatons: ".$problem.
    "\n-------------------------------\n";
    
    // Lastly, tell PHP where it can find the log file and tell PHP to open it
    // and add the string we created earlier to it.
    $logFileLocation = "di-log.txt";
    $fileHandle      = fopen($logFileLocation, 'a') or die("-1");
    fwrite($fileHandle, $logEntry);
    fclose($fileHandle);
    
    // line below is displayed when you browse the app directly
    echo "Dynamic Ingest callback app is running";
    ?>
    

Página actualizada por última vez el 12 jun 2020