Contacta con el soporte | Estado del sistema
Contenido de la página

    Notificaciones de ingesta dinámica

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

    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, el Content-Type estarán application/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 reference id que especificó para la interpretación en su perfil de ingesta.

    Para los 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 usa para consumo en el MAPI, el otro se usa para consumo en la CMS API)
    • SmoothIsmManifest para un manifiesto suave (2: uno de los activos del manifiesto se usa para consumo en MAPI, el otro se usa para consumo en la CMS API)
    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 es TITLE , luego se completa el procesamiento de un video ingerido.
    • Si el entityType es ASSET , 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"; ?> 

    Página actualizada por última vez el 20 Aug 2022