Support Kontaktieren Sie Support | Systemstatus Systemstatus
Inhalt der Seite

    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

    Dynamische Ingest-API-Benachrichtigungen

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

    Setup

    Hier ist ein Beispiel.

    • Benutzer mit Pub ID 57838016001
    • Möchte Dynamic Ingest verwenden, um eine Quellvideodatei unter https://s3.amazonaws.com/bucket/mysourcevideo.mp4 hochzuladen
    • Möchte einen vorhandenen Titel im Katalog mit der Video-ID 5199670523001 hochladen
    • Verwenden des hochauflösenden Profils
    • Möchte Rückrufe an zwei Endpunkten erhalten, die sich unter http://host1/path1 bzw. http://host2/path2 befinden

    Die DI-Anfrage würde so aussehen:

    POST Anfrage

    Anfrage Body

    Sample-Benachrichtigung

    Benachrichtigungen werden als POST-Anfragen mit der Benachrichtigung im Anfragetext als JSON [1] gesendet. Hier 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"
        }

    Hinweise

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

    Felder für Benachrichtigungen

    Element Beschreibung
    status wird sein, FAILED wenn die Aufnahme oder Erstellung einer Ausgabevariante nicht erfolgreich war, SUCCESS wenn die Anfrage erfolgreich war
    accountId die Konto-ID
    videoId Die Video-ID
    jobId Die Job-ID für die Dynamic Ingest-Anfrage
    profileRefId

    Bei Videowiedergaben ist dies die reference id Sie haben für die Wiedergabe in Ihrem Aufnahmeprofil angegeben.

    Für Manifeste ist die profileRefId gibt den Typ des Manifests an:

    • HlsManifest für ein HLS NG Manifest
    • HdsManifest für ein HDS-Manifest
    • DashManifest für DASH-Manifeste (2 - eines der Manifest-Assets wird für den Verbrauch in der MAPI verwendet, das andere für den Verbrauch in der CMS-API)
    • SmoothIsmManifest für ein glattes Manifest (2 - eines der Manifest-Assets wird für den Verbrauch in der MAPI verwendet, das andere wird für den Verbrauch in der CMS-API verwendet)
    entity Wenn vorhanden, die Video Cloud-ID des Assets, das aufgenommen wurde oder fehlgeschlagen ist (wenn das Videoobjekt erfolgreich in Video Cloud erstellt wurde).
    entityType die Art von Vermögenswert, die gemeldet wird - zum Beispiel: TITLE (ein Video), DIGITAL_MASTER, ASSET (eine Wiedergabeversion, eine Untertitelungsdatei oder ein Bild)
    errorMessage eine Erklärung, warum die Aufnahme fehlschlug, wenn sie
    version eine Zeichenfolge immer gleich "1"
    action die Aktion, die stattgefunden hat - zum Beispiel CREATE

    Interpretieren von Benachrichtigungen

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

    • Wenn dies der entityType ist TITLE , ist die Verarbeitung eines aufgenommenen Videos abgeschlossen.
    • Wenn die entityType ist ASSET Anschließend wurde Ihrem Video erfolgreich eine Wiedergabe-, Bild-, Manifest- oder WebVTT-Datei hinzugefügt.

    Hinweis: a "status": "SUCCESS" auf einem Titel gibt an, dass die Verarbeitung abgeschlossen ist, bedeutet aber nicht unbedingt, dass alle Formatvarianten erfolgreich erstellt wurden. Informationen dazu, ob die dynamische Aufnahme von Videos erfolgreich war, finden Sie unter Status der dynamischen Aufnahmeanforderungen abrufen

    Grundlegende Beispiel-App

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

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

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

        <?php
        //POST funktioniert nicht für JSON-Daten
        $ Problem = „Keine Fehler“;
        versuche {
            $json = file_get_contents ('php: //insput');
            $ decodiert = json_decode ($ json, true);
        } catch (Ausnahme $e) {
            $ Problem = $ e- > getMessage ();
        }
        
        //Verwandle die Benachrichtigung in ziemlich gedruckte JSON
        $ notification = json_encode ($ decodiert, JSON_PRETTY_PRINT);
        
        
        
        $ logEntry = $ Benachrichtigung.
        "\\ nSpiegel, die Benachrichtigungen erhalten:". $ problem.
        "\\ n ------------------------------- \\ n";
        
        // Zuletzt teilen Sie PHP mit, wo sich die Protokolldatei befindet, und weisen Sie PHP an, sie zu öffnen
        //und füge die zuvor erstellte Zeichenfolge hinzu.
        $ logFileLocation = "di-log.txt";
        $fileHandle = fopen ($ logfileLocation, 'a') oder sterben („-1");
        fwrite ($ fileHandle, $ logEntry);
        fclose ($ fileHandle);
        
        //Zeile darunter wird angezeigt, wenn Sie die App direkt durchsuchen
        echo „Dynamic Ingest-Rückruf-App läuft“;
        ?>
        

    Seite zuletzt aktualisiert am 28 Sep 2020