Support Kontakt Support | Systemstatus Systemstatus
Seiteninhalt

    Dynamische Ingest Benachrichtigungen

    In diesem Thema erfahren Sie mehr über Dynamic Ingest-Benachrichtigungen, die Informationen zum Fortschritt Ihrer Ingest-Jobs enthalten. Beachten Sie, dass dieses Dokument nur für das ältere Aufnahmesystem gilt - siehe Dynamic Delivery Benachrichtigungen für Dynamic Ingest

    Dynamic Ingest API Benachrichtigungen

    Sie können eine oder mehrere Rückruf-URLs angeben, um Benachrichtigungen für die Ergebnisse des Ingest-Vorgangs zu erhalten. Die von Ihnen angegebenen URLs sollten für Apps gelten, die POST-Anfragen akzeptieren können. Benachrichtigungen werden im JSON-Format gesendet.

    Setup

    Hier ist ein Beispiel.

    • Benutzer mit der Pub-ID 57838016001
    • Möchte Dynamic Ingest zum Hochladen einer Quellvideodatei verwenden, die sich unter https://s3.amazonaws.com/bucket/mysourcevideo.mp4 befindet
    • Möchte einen vorhandenen Titel im Katalog mit der Video-ID 5199670523001 hochladen
    • Verwenden des hochauflösenden Profils
    • Will Callbacks an zwei Endpunkten empfangen, die sich unter http: // host1 / path1 bzw. http: // host2 / path2 befinden

    Die DI-Anfrage würde folgendermaßen aussehen:

    POST-Anfrage

    Anfrage Körper

    Beispielbenachrichtigung

    Benachrichtigungen werden als POST-Anfragen mit der Benachrichtigung im Anfragetext als JSON gesendet [1] . Hier sind einige Beispielbenachrichtigungen:

        {
            "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"
        }

    Einschränkungen

    • [1] Ausnahme: Alle Benachrichtigungen für DRM-verpackten Inhalt werden als Schlüssel / Wert-Paare zurückgegeben. In diesem Fall Content-Type Header wird sein application/x-www-form-urlencoded. Andernfalls wird die Content-Type wird sein application/json

    Benachrichtigungsfelder

    Artikel Beschreibung
    status wird sein FAILED wenn das Einlesen oder Erstellen einer Wiedergabe nicht erfolgreich war, SUCCESS wenn die Anfrage erfolgreich war
    accountId die Konto-ID
    videoId die Video-ID
    jobId die Job-ID für die dynamische Ingest-Anfrage
    profileRefId

    Für Video-Versionen wird dies der sein reference id Sie haben die Wiedergabe in Ihrem Aufnahmeprofil festgelegt.

    Für Manifeste, die profileRefId zeigt den Typ des Manifests an:

    • HlsManifest für ein HLS NG-Manifest
    • HdsManifest für ein HDS-Manifest
    • DashManifest Bei DASH-Manifesten (2 - eines der Manifest-Elemente wird für den Verbrauch im MAPI verwendet, das andere für den Verbrauch im CMS API)
    • SmoothIsmManifest für ein glattes Manifest (2 - eines der Manifest-Elemente wird für den Verbrauch im MAPI verwendet, das andere für den Verbrauch im CMS API)
    entity wenn es existiert, die Video Cloud ID des Assets, das aufgenommen wurde oder fehlgeschlagen ist (wenn das Videoobjekt erfolgreich erstellt wurde Video Cloud)
    entityType die Art von Asset, auf die berichtet wird - zum Beispiel: TITLE (ein Video), DIGITAL_MASTER, ASSET (eine Wiedergabe, eine Bildunterschriftdatei oder ein Bild)
    errorMessage eine Erklärung, warum die Aufnahme fehlgeschlagen ist, wenn sie es getan hat
    version eine Zeichenkette, die immer gleich ist "1"
    action die Aktion, die aufgetreten ist - zum Beispiel CREATE

    Benachrichtigungen interpretieren

    Eine Benachrichtigung mit "action": "CREATE" und "status": "SUCCESS" zeigt den Abschluss eines Prozesses an.

    • Wenn die entityType is TITLE, dann ist die Verarbeitung eines aufgenommenen Videos abgeschlossen.
    • Wenn die entityType is ASSET, dann wurde eine Wiedergabe-, Bild-, Manifest- oder WebVTT-Datei erfolgreich zu Ihrem Video hinzugefügt.

    Kein Tee "status": "SUCCESS" auf einem Titel zeigt an, dass die Verarbeitung abgeschlossen ist, bedeutet aber nicht unbedingt, dass alle Darstellungen erfolgreich erstellt wurden. Um festzustellen, ob Dynamic Ingest von Videos erfolgreich war, siehe Abrufen des Status von Dynamic Ingest-Anfragen

    Einfache Beispielanwendung

    Nachstehend finden Sie Code für eine einfache Protokollierungs-App für Dynamic Ingest API Benachrichtigung. Diese App ist in PHP geschrieben, Sie können jedoch jede Sprache verwenden, sofern die App eine öffentlich zugängliche URL hat und POST-Anfragen (http) verarbeiten kann.

    Sie können die Protokolldatei sehen, die diese App generiert Hier klicken.

    Hinweis: Wenn Sie versuchen, diese App für sich zu implementieren, müssen Sie sicherstellen, dass die App über die Berechtigung zum Schreiben Ihrer Protokolldatei verfügt. Denken Sie auch daran, dass die Protokolldatei schnell anwachsen kann - Sie möchten sie wahrscheinlich regelmäßig leeren.

        <?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";
        ?>
        

    Seite zuletzt aktualisiert am 12. Juni 2020