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 seinapplication/x-www-form-urlencoded
. Ansonsten derContent-Type
wird seinapplication/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 Für Manifeste ist die
|
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
istTITLE
, ist die Verarbeitung eines aufgenommenen Videos abgeschlossen. - Wenn die
entityType
istASSET
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“;
?>