Die API unterstützt jetzt die Möglichkeit, Livestreams als „speziell für Kinder“ zu kennzeichnen. Die
liveBroadcast
-Ressource enthält jetzt ein Attribut, das den Status „speziell für Kinder“ des jeweiligen Livestreams angibt. Die Nutzungsbedingungen der YouTube API-Dienste und die Richtlinien für Entwickler wurden ebenfalls am 10. Januar 2020 aktualisiert. Weitere Informationen finden Sie im Revisionsverlauf des YouTube Live Streaming API-Dienstes und der Nutzungsbedingungen für die YouTube API-Dienste.
Eine liveBroadcast
-Ressource stellt eine Veranstaltung dar, die auf YouTube per Livestream übertragen wird.
Methoden
Die API unterstützt die folgenden Methoden für liveBroadcasts
-Ressourcen:
- list
- Gibt eine Liste von YouTube-Übertragungen zurück, die den API-Anfrageparametern entsprechen. Hier kannst du die Funktion ausprobieren.
- insert
- Erstellt eine Übertragung. Hier kannst du die Funktion ausprobieren.
- Aktualisieren
- Aktualisiert eine Übertragung. Sie können beispielsweise die in der
contentDetails
-Ressource definierten Broadcast-Einstellungen imliveBroadcast
-Objekt ändern. Jetzt ausprobieren - Delete
- Löscht eine Übertragung. Hier kannst du die Funktion ausprobieren.
- bind
- Bindet eine YouTube-Übertragung an einen Stream oder entfernt eine vorhandene Bindung zwischen einer Übertragung und einem Stream. Eine Übertragung kann nur an einen Videostream gebunden werden, ein Videostream kann jedoch an mehrere Übertragungen gebunden werden. Hier kannst du die Funktion ausprobieren.
- transition
- Ändert den Status einer YouTube-Liveübertragung und initiiert alle Prozesse, die mit dem neuen Status verknüpft sind. Wenn Sie beispielsweise den Status einer Übertragung auf
testing
ändern, beginnt YouTube mit der Übertragung von Video an den Monitorstream dieser Übertragung. Bevor Sie diese Methode aufrufen, sollten Sie prüfen, ob der Wert der Eigenschaftstatus.streamStatus
für den Stream, der an Ihre Übertragung gebunden ist,active
ist. Jetzt ausprobieren - cuepoint
- Fügt einen Cuepoint in eine Liveübertragung ein. Der Cuepoint löst möglicherweise eine Werbeunterbrechung aus.
Ressourcendarstellung
Die folgende JSON-Struktur zeigt das Format einer liveBroadcasts
-Ressource:
{ "kind": "youtube#liveBroadcast", "etag": etag, "id": string, "snippet": { "publishedAt": datetime, "channelId": string, "title": string, "description": string, "thumbnails": { (key): { "url": string, "width": unsigned integer, "height": unsigned integer } }, "scheduledStartTime": datetime, "scheduledEndTime": datetime, "actualStartTime": datetime, "actualEndTime": datetime, "isDefaultBroadcast": boolean, "liveChatId": string }, "status": { "lifeCycleStatus": string, "privacyStatus": string, "recordingStatus": string, "madeForKids": string, "selfDeclaredMadeForKids": string, }, "contentDetails": { "boundStreamId": string, "boundStreamLastUpdateTimeMs": datetime, "monitorStream": { "enableMonitorStream": boolean, "broadcastStreamDelayMs": unsigned integer, "embedHtml": string }, "enableEmbed": boolean, "enableDvr": boolean, "recordFromStart": boolean, "enableClosedCaptions": boolean, "closedCaptionsType": string, "projection": string, "enableLowLatency": boolean, "latencyPreference": boolean, "enableAutoStart": boolean, "enableAutoStop": boolean }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } } }
Attribute
In der folgenden Tabelle werden die Attribute definiert, die in dieser Ressource enthalten sind:
Attribute | |
---|---|
kind |
string Gibt den Typ der API-Ressource an. Der Wert ist youtube#liveBroadcast . |
etag |
etag Das ETag dieser Ressource. |
id |
string Die ID, die YouTube der Übertragung zur eindeutigen Identifizierung zuweist. |
snippet |
object Das snippet -Objekt enthält grundlegende Details zum Ereignis, einschließlich Titel, Beschreibung, Start- und Endzeit. |
snippet.publishedAt |
datetime Das Datum und die Uhrzeit, zu der die Übertragung dem YouTube-Zeitplan für Livestreams hinzugefügt wurde. Der Wert wird im ISO 8601-Format ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.channelId |
string Die ID, die YouTube verwendet, um den Kanal, auf dem die Übertragung veröffentlicht wird, eindeutig zu identifizieren. |
snippet.title |
string Der Titel der Übertragung. Eine Übertragung entspricht genau einem YouTube-Video. Sie können dieses Feld festlegen, indem Sie die Broadcast-Ressource ändern oder das Feld title der entsprechenden Video-Ressource festlegen. |
snippet.description |
string Die Beschreibung der Übertragung. Wie beim title -Feld können Sie dieses Feld festlegen, indem Sie die Broadcast-Ressource ändern oder das description -Feld der entsprechenden Videoressource festlegen. |
snippet.thumbnails |
object Eine Karte mit Miniaturansichten, die mit der Übertragung verknüpft sind. Für jedes verschachtelte Objekt in diesem Objekt ist der Schlüssel der Name des Vorschaubilds und der Wert ein Objekt, das weitere Informationen zum Vorschaubild enthält. |
snippet.thumbnails.(key) |
object Gültige Schlüsselwerte sind:
|
snippet.thumbnails.(key).url |
string Die URL des Bildes. |
snippet.thumbnails.(key).width |
unsigned integer Die Breite des Bildes. |
snippet.thumbnails.(key).height |
unsigned integer Die Höhe des Bildes. |
snippet.scheduledStartTime |
datetime Das Datum und die Uhrzeit, zu der die Übertragung planmäßig beginnen soll. Der Wert wird im ISO 8601-Format ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. In Creator Studio kannst du eine Übertragung erstellen, ohne eine Startzeit festzulegen. In diesem Fall beginnt die Übertragung, sobald der Kanalinhaber mit dem Streamen beginnt. Bei diesen Übertragungen entspricht der datetime -Wert dem Unix-Epochenzeitnullpunkt. Dieser Wert kann nicht über die API oder in Creator Studio geändert werden. |
snippet.scheduledEndTime |
datetime Datum und Uhrzeit, zu der die Übertragung enden soll. Der Wert wird im ISO 8601-Format ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. Wenn für eine liveBroadcast -Ressource kein Wert für dieses Attribut angegeben ist, wird die Übertragung auf unbestimmte Zeit geplant. Wenn Sie keinen Wert für dieses Attribut angeben, behandelt YouTube die Übertragung so, als würde sie unbegrenzt fortgesetzt. |
snippet.actualStartTime |
datetime Das Datum und die Uhrzeit, zu der die Übertragung tatsächlich begonnen hat. Diese Informationen sind erst verfügbar, wenn der Status der Übertragung live ist. Der Wert wird im ISO 8601-Format (YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.actualEndTime |
datetime Datum und Uhrzeit, zu der die Übertragung tatsächlich beendet wurde. Diese Informationen sind erst verfügbar, wenn der Status der Übertragung complete ist. Der Wert wird im ISO 8601-Format (YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.isDefaultBroadcast |
boolean
Diese Property wird am oder nach dem 1. September 2020 eingestellt. Ab diesem Zeitpunkt erstellt YouTube keine Standardstreams und ‑übertragungen mehr, wenn ein Kanal für Livestreaming aktiviert ist. Weitere Informationen finden Sie in der Mitteilung zur Einstellung.
Dieses Attribut gibt an, ob es sich bei dieser Übertragung um die Standardübertragung handelt.So funktionieren Standardübertragungen Wenn ein YouTube-Kanal für Livestreaming aktiviert ist, erstellt YouTube einen Standardstream und eine Standardübertragung für den Kanal. Der Stream definiert, wie der Kanalinhaber Livevideos an YouTube sendet. Die Übertragung ist die Art und Weise, wie Zuschauer den Standardstream sehen können. Ein Kanalinhaber kann diese Ressourcen mit den Methoden liveStreams.list und liveBroadcasts.list identifizieren.Wenn ein Kanal mit dem Streamen von Videos in seinem Standardstream beginnt, ist das Video in der Standardübertragung des Kanals sichtbar. Wenn der Stream endet, wandelt YouTube die Übertragung in ein YouTube-Video um und weist dem Video eine YouTube-Video-ID zu. Nach der Umwandlung wird das Video in die Liste der hochgeladenen Videos des Kanals aufgenommen. Das Video ist nicht sofort nach Ende der Übertragung verfügbar. Die Länge der Verzögerung hängt von der tatsächlichen Länge der Übertragung ab. |
snippet.liveChatId |
string Die ID für den YouTube-Livechat der Übertragung. Mit dieser ID können Sie die Methoden der liveChatMessage -Ressource verwenden, um Chatnachrichten abzurufen, einzufügen oder zu löschen. Außerdem können Sie Chatmoderatoren hinzufügen oder entfernen, Nutzer für die Teilnahme an Livechats sperren oder bestehende Sperren aufheben. |
status |
object Das status -Objekt enthält Informationen zum Status des Ereignisses. |
status.lifeCycleStatus |
string Der Status der Übertragung. Der Status kann mit der Methode liveBroadcasts.transition der API aktualisiert werden.Gültige Werte für dieses Attribut sind:
|
status.privacyStatus |
string Der Datenschutzstatus des Livestreams. Eine Übertragung entspricht genau einem YouTube-Video. Die Datenschutzeinstellungen sind also identisch mit denen, die für Videos unterstützt werden. Außerdem können Sie dieses Feld festlegen, indem Sie die Broadcast-Ressource ändern oder das Feld privacyStatus der entsprechenden Video-Ressource festlegen.Gültige Werte für diese Eigenschaft sind:
|
status.recordingStatus |
string Der Aufzeichnungsstatus der Übertragung. Gültige Werte für diese Eigenschaft sind:
|
status.madeForKids |
boolean Dieser Wert gibt an, ob die Übertragung als für Kinder bestimmt gekennzeichnet ist. Dieser Eigenschaftswert ist schreibgeschützt. |
status.selfDeclaredMadeForKids |
boolean In einer liveBroadcasts.insert -Anfrage kann der Kanalinhaber mit dieser Property die Übertragung als auf Kinder ausgerichtet kennzeichnen. Bei einer liveBroadcasts.list -Anfrage wird der Attributwert nur zurückgegeben, wenn der Kanalinhaber die API-Anfrage autorisiert hat. |
contentDetails |
object Das contentDetails -Objekt enthält Informationen zum Videoinhalt des Ereignisses, z. B. ob der Inhalt in einem eingebetteten Videoplayer wiedergegeben werden kann oder ob er archiviert wird und daher nach dem Ende des Ereignisses verfügbar ist. |
contentDetails.boundStreamId |
string Dieser Wert identifiziert die an die Übertragung gebundene live stream eindeutig. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime Das Datum und die Uhrzeit, zu der der Livestream, auf den sich boundStreamId bezieht, zuletzt aktualisiert wurde. |
contentDetails.monitorStream |
object Das monitorStream -Objekt enthält Informationen zum Monitorstream, mit denen der Broadcaster die Ereignisinhalte überprüfen kann, bevor der Broadcaststream öffentlich angezeigt wird. |
contentDetails.monitorStream.enableMonitorStream |
boolean Dieser Wert bestimmt, ob der Monitorstream für die Übertragung aktiviert ist. Wenn der Monitor-Stream aktiviert ist, überträgt YouTube die Eventinhalte in einem speziellen Stream, der nur für den Broadcaster bestimmt ist. Der Broadcaster kann sich den Stream ansehen, um die Inhalte des Events zu prüfen und die optimalen Zeitpunkte für das Einfügen von Cuepoints zu ermitteln. Sie müssen diesen Wert auf true festlegen, wenn Sie eine testing -Phase für Ihre Übertragung planen oder wenn Sie eine Übertragungsverzögerung für Ihr Event einrichten möchten. Wenn der Wert dieser Property true ist, müssen Sie die Übertragung außerdem in den Status testing versetzen, bevor Sie sie in den Status live versetzen können. Wenn der Wert der Property false ist, darf die Übertragung keine testing -Phase haben. Sie können die Übertragung also direkt in den Status live überführen.Wenn Sie update a broadcast , muss diese Eigenschaft festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast , ist die Eigenschaft optional und hat den Standardwert true .Wichtig:Diese Property kann nicht mehr aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Wenn Sie die Property enableMonitorStream auf true festgelegt haben, bestimmt diese Property die Länge der Verzögerung der Liveübertragung.Wenn Sie update a broadcast , muss diese Eigenschaft festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast , ist die Eigenschaft optional und hat den Standardwert 0 . Dieser Wert gibt an, dass die Übertragung keine Übertragungsverzögerung hat. Hinweis:Dieses Attribut kann nicht aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.monitorStream.embedHtml |
string HTML-Code zum Einbetten eines Players, der den Monitorstream wiedergibt. |
contentDetails.enableEmbed |
boolean Mit dieser Einstellung wird festgelegt, ob das Broadcast-Video in einem eingebetteten Player abgespielt werden kann. Wenn Sie das Video mit der enableArchive -Property archivieren, gilt diese Einstellung auch für das archivierte Video.Wenn Sie update a broadcast , muss diese Eigenschaft festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast , ist die Eigenschaft optional und hat den Standardwert true .Hinweis:Dieses Attribut kann nicht aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.enableDvr |
boolean Mit dieser Einstellung wird festgelegt, ob Zuschauer während der Wiedergabe des Videos auf die DVR-Steuerelemente zugreifen können. Mit den DVR-Steuerelementen können Zuschauer die Videowiedergabe steuern, indem sie Inhalte pausieren, zurückspulen oder vorspulen. Der Standardwert für diese Eigenschaft ist true . Wenn Sie update a broadcast , muss diese Eigenschaft festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast , ist die Eigenschaft optional und hat den Standardwert true .Wichtig:Wenn die Wiedergabe sofort nach dem Ende der Übertragung verfügbar sein soll, müssen Sie den Wert auf true und den Wert der Eigenschaft enableArchive ebenfalls auf true festlegen. Außerdem kann diese Eigenschaft nicht aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.recordFromStart |
boolean Diese Einstellung gibt an, ob YouTube die Übertragung automatisch aufzeichnen soll, nachdem der Status des Events zu „Live“ geändert wurde. Der Standardwert für diese Eigenschaft ist true . Sie kann nur auf false festgelegt werden, wenn der Sender Aufzeichnungen für Liveübertragungen deaktivieren darf.Wenn dein Kanal nicht berechtigt ist, Aufzeichnungen zu deaktivieren, und du versuchst, eine Übertragung mit der auf false festgelegten Eigenschaft recordFromStart einzufügen, gibt die API den Fehler Forbidden zurück. Wenn dein Kanal diese Berechtigung nicht hat und du versuchst, eine Übertragung zu aktualisieren, um das Attribut recordFromStart auf false festzulegen, gibt die API außerdem einen modificationNotAllowed -Fehler zurück.Wenn Sie update a broadcast , muss diese Eigenschaft festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast , ist die Eigenschaft optional und hat den Standardwert true .Wichtig:Sie müssen den Wert des Attributs enableDvr auch auf true festlegen, wenn die Wiedergabe sofort nach dem Ende der Übertragung verfügbar sein soll. Wenn Sie den Wert dieser Property auf true setzen, aber die Property enableDvr nicht auch auf true setzen, kann es etwa einen Tag dauern, bis das archivierte Video wiedergegeben werden kann.Hinweis:Dieses Attribut kann nicht aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.enableClosedCaptions |
boolean Diese Property wird seit dem 17. Dezember 2015 nicht mehr unterstützt. Verwenden Sie stattdessen das Attribut contentDetails.closedCaptionsType .Diese Einstellung gibt an, ob HTTP POST-Untertitel für diese Übertragung aktiviert sind. Für API-Clients, die diese Eigenschaft bereits verwenden:
|
contentDetails.closedCaptionsType |
string Hinweis: Dieses Attribut ersetzt das Attribut contentDetails.enableClosedCaptions .Dieses Attribut gibt an, ob Untertitel für deine Übertragung aktiviert sind und, falls ja, welche Art von Untertiteln du bereitstellst:
|
contentDetails.projection |
string Das Projektionsformat dieser Übertragung. Der Standardwert des Attributs ist rectangular .Gültige Werte für dieses Attribut sind:
|
contentDetails.enableLowLatency |
boolean Gibt an, ob diese Übertragung für Streaming mit geringer Latenz codiert werden soll. Bei einem Stream mit geringer Latenz dauert es weniger lange, bis das Video für Nutzer sichtbar ist, die sich eine Übertragung ansehen. Allerdings kann sich das auch auf die Auflösung für die Zuschauer des Streams auswirken. |
contentDetails.latencyPreference |
string Gibt an, welche Latenzeinstellung für diese Übertragung verwendet werden soll. Diese Eigenschaft kann anstelle von enableLowLatency verwendet werden, da enableLowLatency ultraLow nicht unterstützt.Bei einem Stream mit niedriger Latenz kann die Zeit verkürzt werden, die vergeht, bis das Video für Nutzer sichtbar ist, die sich eine Übertragung ansehen. Dies kann sich jedoch auch auf die flüssige Wiedergabe auswirken. Bei einem Stream mit ultraniedriger Latenz wird die Zeit, die vergeht, bis das Video für Zuschauer sichtbar ist, noch weiter verkürzt. Dadurch wird die Interaktion mit Zuschauern erleichtert. Bei ultraniedriger Latenz werden jedoch keine Untertitel und keine Auflösungen über 1080p unterstützt. Gültige Werte für diese Eigenschaft sind:
|
contentDetails.enableAutoStart |
boolean Gibt an, ob diese Übertragung automatisch gestartet werden soll, wenn du auf dem gebundenen live stream mit dem Streamen von Videos beginnst. |
contentDetails.enableAutoStop |
boolean Gibt an, ob diese Übertragung etwa eine Minute nach dem Beenden des Videostreams durch den Kanalinhaber automatisch beendet werden soll. |
statistics |
object Das statistics -Objekt enthält Statistiken zu einer Liveübertragung. Die Werte für diese Statistiken können sich während der Übertragung ändern und können nur abgerufen werden, solange die Übertragung live ist. |
statistics.totalChatCount |
unsigned long Die Gesamtzahl der Livechat-Nachrichten, die mit der Übertragung verknüpft sind. Die Property und ihr Wert sind vorhanden, wenn die Übertragung für den Nutzer sichtbar ist, die Livechat-Funktion aktiviert ist und mindestens eine Nachricht vorhanden ist. Nach dem Ende der Übertragung wird für dieses Attribut kein Wert mehr angegeben. Mit dieser Eigenschaft wird also nicht die Anzahl der Chatnachrichten für ein archiviertes Video einer abgeschlossenen Liveübertragung ermittelt. |
monetizationDetails |
object Das monetizationDetails -Objekt enthält Informationen zu den Monetarisierungsdetails des Streams, z. B. ob die automatische Anzeigenplatzierung aktiviert ist oder ob die Einfügung von Midroll-Anzeigen verzögert wird. |
monetizationDetails.cuepointSchedule |
object Das cuepointSchedule -Objekt gibt die Einstellungen für die Anzeigenautomatisierung für die Übertragung an. |
monetizationDetails.cuepointSchedule.enabled |
boolean Dieser Wert bestimmt, ob Anzeigen automatisch in die Übertragung eingefügt werden. Wenn der Wert true ist, fügt YouTube automatisch Mid-Roll-Anzeigen in die Übertragung ein. Der Zeitplan für die Ausführung von Anzeigen wird durch den Wert der anderen Felder im monetizationDetails.cuepointSchedule -Objekt bestimmt.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Dieser Wert gibt an, dass YouTube bis zum angegebenen Datum und zur angegebenen Uhrzeit keine Mid-Roll-Anzeigen in die Übertragung einfügen soll. Der Wert wird im ISO 8601-Format (YYYY-MM-DDThh:mm:ss.sZ) angegeben. Der Wert muss auf ein zukünftiges Datum/eine zukünftige Uhrzeit festgelegt werden, um Anzeigen zu pausieren. Der Feldwert kann auch auf ein Datum/eine Uhrzeit in naher Zukunft festgelegt werden, um Anzeigen zu reaktivieren, wenn die Zeit vergeht. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Dieser Wert gibt die Strategie an, die YouTube für die Planung von Cuepoints verwenden soll. Gültige Werte sind:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Dieser Wert gibt das Intervall in Sekunden zwischen automatischen Anzeigenplatzierungen während einer Übertragung an. Wenn der Wert beispielsweise 300 ist, kann YouTube alle fünf Minuten Mid-Roll-Cuepoints einfügen.Der Wert gibt die Zeit zwischen dem Beginn aufeinanderfolgender Cuepoints an. Das Intervall wird also nicht vom Ende eines Cuepoints bis zum Start des nächsten gemessen. |