soporte Contactar con Soporte | Estadoestado del sistema 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 proporcionan información sobre el progreso de sus trabajos de ingesta. Tenga en cuenta que este documento sólo se aplica al sistema de ingesta heredado: para Entrega dinámica, 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 direcciones URL que especifique deben ser para aplicaciones que puedan aceptar solicitudes POST. Las notificaciones se enviarán en formato JSON.

    Configuración

    Aquí hay un ejemplo.

    • Usuario con ID de pub 57838016001
    • Quiere usar la ingesta dinámica para cargar un archivo de vídeo de origen ubicado en https://s3.amazonaws.com/bucket/mysourcevideo.mp4
    • Quiere cargar un título existente en el catálogo con id de vídeo 5199670523001
    • Uso del perfil de alta resolución
    • Quiere recibir devoluciones de llamada en dos endpoints ubicados en http://host1/path1 y http://host2/path2 respectivamente

    La solicitud DI se vería así:

    Solicitud POST

    Cuerpo de solicitud

    Notificación de muestra

    Las notificaciones se envían como solicitudes POST con la notificación en el cuerpo de solicitud como JSON [1]. Aquí hay algunas notificaciones de ejemplo:

        {
            "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 DRM se devuelven como pares clave/valor. En este caso, el Content-Type encabezado será application/x-www-form-urlencoded. De lo contrario, Content-Type se application/json

    Campos de notificación

    Artículo Descripción
    status será si la ingesta o creación de una copia no tuvo éxito, si la solicitud tuvo éxitoFAILEDSUCCESS
    accountId el ID de cuenta
    videoId el id de vídeo
    jobId el ID de trabajo para la solicitud de ingesta dinámica
    profileRefId

    Para las copias de vídeo, este será el reference id especificado para la copia en su perfil de ingesta.

    Para los manifiestos, el profileRefId indicará el tipo del manifiesto:

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

    Interpretación de notificaciones

    Notificación que contiene "action": "CREATE" e "status": "SUCCESS" indica la finalización de un proceso.

    • Si el entityType es TITLE , entonces el procesamiento de un video ingerido está completo.
    • Si el entityType es ASSET , se ha agregado correctamente una copia, imagen, manifiesto o archivo WebVTT al vídeo.

    Nota: a en un título indica que el procesamiento se ha completado, pero no significa necesariamente que todas las copias se crearon correctamente."status": "SUCCESS" Para determinar si la ingesta dinámica de vídeos se ha realizado correctamente, consulte Obtener el estado de las solicitudes de ingesta dinámica

    Aplicación Ejemplo básico

    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 y cuando la aplicación tenga una URL pública y pueda manejar las solicitudes HTTP (s) POST.

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

    Nota: si intenta implementar esta aplicación usted mismo, deberá asegurarse de que la aplicación tiene permiso para escribir en su archivo de registro. También recuerde que el archivo de registro puede crecer rápidamente; probablemente desee vaciarlo regularmente.

        <?PHP
        //POST no funcionará para los datos JSON
        $problem = «Sin errores»;
        probar {
            $json = file_get_contents ('php: //input');
            $decodificado = json_decode ($json, true);
        } captura (Excepción $e) {
            $problema = $e- > getMessage ();
        }
        
        //convertir la notificación en JSON bastante impreso
        $notification = json_encode ($decodificado, 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 decirle a PHP que lo abra
        //y añadimos la cadena que creamos anteriormente.
        $LogFileLocation = "di-log.txt «;
        $fileHandle = fopen ($logFileLocation, 'a') o die («-1");
        fwrite ($FileHandle, $LogEntry);
        fclose ($FileHandle);
        
        //la línea siguiente se muestra cuando navega directamente por la aplicación
        echo «La aplicación de devolución de llamada de ingesta dinámica se está ejecutando»;
        ?>
        

    Última actualización de la página el 28-09-2020