Einleitung
Die EPG-API gibt einen elektronischen XML-Programmierleitfaden für einen Cloud-Playout-Kanal zurück, der zum Anzeigen von Programminformationen auf Ihrer Webseite oder in Ihrer App nützlich ist. Dieses Thema enthält einige Erläuterungen zur Funktionsweise der API und Empfehlungen zu ihrer effektivsten Verwendung.
Kanalzustände
Aktive Zustände
DRAFT
(Wann die geplante Startzeit/Stoppzeit des Kanals in der Zukunft liegt)RE-SCHEDULING
SCHEDULED
STARTING
START_ERROR
CREATING
CREATE_ERROR
RUNNING
Inaktive Zustände
DRAFT
(Gestoppte Kanäle gehen wieder in den Status DRAFT über)IDLE
STOPPING
STOP_ERROR
START_ERROR
DELETING
(es wird keine EPG-Einträge geben - dies könnte dazu führen, dass die EPG-API einen 500-Antwortcode zurückgibt)DELETE_ERROR
(es wird keine EPG-Einträge geben - dies könnte dazu führen, dass die EPG-API einen 500-Antwortcode zurückgibt)
Empfehlung für EPG-Abfragen
- Die EPG-Abfrage (ohne Angabe von Abfrageparametern für
start
stop
, oderLimit) gibt standardmäßig 100 EPG-Datensätze zurück (oder alle Datensätze, wenn es weniger als 100 gibt). Die zurückgegebene Nummer kann durch Einstellen in geändert werden
limit
Parameter. - Datensätze für bis zu 14 Tage werden weiterhin bereitgestellt, indem eine explizite Start- und Endzeit sowie ein höherer Grenzwert für die EPG-Abfrage angegeben werden.
- Da die Verarbeitungszeit mit der Anzahl der zu verarbeitenden Datensätze exponentiell ansteigt, empfehlen wir eine paginierte Abfrage von EPG-Datensätzen (siehe Seitennummerierung unten) zum Abrufen von Massendaten.
Seitennummerierung
Wir empfehlen Ihnen, Ihre Abfragen für eine große Anzahl von Datensätzen wie folgt zu paginieren, um die beste Leistung zu erzielen:
-
Beginnen Sie mit einer Anfrage ohne Abfrageparameter:
https://sm.cloudplayout.brightcove.com/accounts/{account_id}/channels/{channel_id}/epg
- Wenn der Kanal nicht ausgeführt wird, werden 100 Datensätze ab der Startzeit des Kanals oder der aktuellen Zeit zurückgegeben, je nachdem, was später eintritt.
- Wenn der Kanal läuft, sind die 100 Datensätze eine 50/50-Mischung aus historischen und zukünftigen Programmen
- Für zusätzliche Datenseiten senden Sie eine Anfrage an die
start
Parametersatz gleich demstop
Attributwert in derprogramme
Tag des letzten Datensatzes, der in der vorherigen Antwort zurückgegeben wurde - plus 1 Sekunde.
Beispiel
Angenommen, Ihre erste Abfrage gibt eine Antwort wie diese zurück:
<fernseher>
...
<program channel = "channel_id" start = "20210228000457" stop = "20210228001457">
<title> live </ title>
<desc> live </ desc>
<Längeneinheiten = "Sekunden"> 600,0 </ Länge>
<icon src = "https://img.brightcove.com/cloudplayout/live-icon.jpg" width = "" height = "" />
<Kategorie> live </ Kategorie>
<Schlagwort > EYJ2AWRLB19PZCI6IJCWNZAXMJE2NDGYMJAYIIWIB3JKZXIIOJMSINRHZ3MIOIJYB21HBMNLIIWIY3VZDG9TX21LDGFKYXRHIJP7INJLZ2LVBII6IMFZAWEILCJZB25NCYI6NX19</schlüsselwort >
</ programme>
</ tv>
Der hervorgehobene stop
Wert im letzten Datensatz ist ein Zeitstempel im Formular YYYYMMDDhhmmss
, also im ISO 8601-Format: 2021-02-28 00:14:57
.
Addieren wir eine Sekunde zu diesem Wert, erhalten wir 2021-02-28 00:14:58
.
Der Abfrageparameter für die nächste Anforderung lautet dann: start=2021-02-28%2000%3A14%3A57 - remember that the start (and
end
) parameter must be URI-encoded.
Senden Sie weiterhin Anfragen mit zunehmender Anzahl, um alle Datensätze abzurufen start
Werte, bis Sie eine HTTP 422-Antwort mit der Meldung "Kanal wird im angeforderten Zeitfenster nicht ausgeführt" erhalten.
Zusätzliche Hinweise zum EPG-Reaktionsverhalten
Die folgenden Hinweise zur Funktionsweise der EPG-API sollen Ihnen helfen, Anfragen zu erstellen, die die gewünschte Antwort erhalten.
- Das EPG wird dynamisch basierend auf dem aktuellen Status des Kanals erstellt. Wenn sich ein Kanal also in einem anderen aktiven Zustand befindet
RUNNING
, erzeugt das EPG zukünftige Daten ab der geplanten Startzeit des Kanals. - Wenn ein Kanal in ist
RUNNING
Zustand, wird der EPG, der ohne Abfrageparameter aufgerufen wird, eine Mischung (50% Teilung - mit einer Grenze von 100, dies würde höchstens 50 vergangene Datensätze und 50 zukünftige Datensätze) von vergangenen und zukünftigen Zeitplandaten bereitstellen. - Wenn Sie einen Kanal stoppen oder löschen, befindet er sich in einem
INACTIVE
Zustand; die zukünftigen EPG-Aufzeichnungen sind nicht verfügbar, da der Kanal seinen Lauf beendet hat.- In solchen Fällen gibt der EPG entweder einen leeren Datensatz oder einen Fehlercode 422 zurück.
- Falls historische Daten für einen der inaktiven Zustände benötigt werden, muss die EPG-Anfrage eine vergangene Start-/Endzeit in den Abfrageparametern haben.
- Wenn eine EPG-Anfrage sowohl eine
end
Uhrzeit als auch eine Uhrzeit hatlimit
,limit
wird sie bevorzugt und es werden so viele Datensätze generiert. In diesem Fall erhalten Sie möglicherweise Datensätze, die hinter der angegebenen Endzeit liegen. - Die
start
/end
Fenster darf 14 Tage nicht überschreiten.start
kann 14 Tage vor dem aktuellen Datum/Uhrzeit liegen, um einen historischen EPG abzurufen. Sie können auch zukünftige EPG-Daten bis zu 14 Tage nach dem aktuellen Datum und Uhrzeit abfragen. - Wenn die Differenz zwischen der angegebenen Endzeit und der Startzeit mehr als 14 Tage beträgt, generiert die API Plandaten für nur 14 Tage vom Zeitpunkt der Anfrage bis zum geplanten Stopp des Kanals oder 14 Tage, je nachdem, was früher eintritt.
- Beide
start
undend
kann Datum-Uhrzeit-Werte mit oder ohne Zeitzonen-Offset akzeptieren - wenn kein Zeitzonen-Offset enthalten ist, wird UTC angenommen - Beide
start
undend
Werte müssen URI-codiert sein.
Gründe, warum die EPG-API einen 422-Fehlercode zurückgibt
- Die EPG-Startzeit kann nicht länger als 14 Tage ab dem Kanalstart oder der aktuellen Zeit sein, je nachdem, welcher Wert größer ist
- Die EPG-Startzeit darf nicht älter als 14 Tage vor der aktuellen Zeit sein
- Das EPG-Intervall muss kleiner oder gleich 14 Tage sein (Startzeit und Endzeit sollten innerhalb von 14 Tagen liegen)
- Der Kanal befindet sich im angeforderten Zeitfenster im Status „Wird ausgeführt“ (EPG wird angefordert, wobei die Startzeit nach der geplanten Stoppzeit des Kanals liegt). Die Startzeit muss angegeben werden oder sollte unter der Endzeit liegen (Startzeit und < Endzeit).