Die API unterstützt jetzt die Möglichkeit, deine Liveübertragungen als „speziell für Kinder“ zu kennzeichnen. Die Ressource
liveBroadcast
enthält jetzt eine Property, die den Status „Speziell für Kinder“ dieser Liveübertragung angibt. Am 10. Januar 2020 wurden auch die Nutzungsbedingungen für die YouTube API-Dienste und die Richtlinien für Entwickler aktualisiert. Weitere Informationen findest du in den Änderungsverläufen für den YouTube Live Streaming API-Dienst und in den Nutzungsbedingungen für YouTube API-Dienste.
Eine liveBroadcast
-Ressource steht für eine Veranstaltung, die per Livestream auf YouTube ü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 Übertragungseinstellungen ändern, die im Objekt
contentDetails
der RessourceliveBroadcast
definiert sind. Jetzt testen - Delete
- Löst eine Übertragung. Hier kannst du die Funktion ausprobieren.
- binden
- Verknüpft eine YouTube-Übertragung mit einem Stream oder entfernt eine vorhandene Verknüpfung zwischen einer Übertragung und einem Stream. Eine Übertragung kann nur mit einem Videostream verknüpft sein, ein Videostream kann jedoch mit mehreren Übertragungen verknüpft sein. Hier kannst du die Funktion ausprobieren.
- transition
- Ändert den Status einer YouTube-Liveübertragung und initiiert alle mit dem neuen Status verbundenen Prozesse. Wenn du beispielsweise den Status einer Übertragung auf
testing
änderst, beginnt YouTube mit der Übertragung von Video an den Monitorstream dieser Übertragung. Bevor Sie diese Methode aufrufen, sollten Sie überprüfen, ob der Wert der Eigenschaftstatus.streamStatus
für den an Ihre Übertragung gebundenen Streamactive
lautet. Jetzt testen - cuepoint
- Fügt einen Cue-Punkt in eine Liveübertragung ein. Der Cue-Punkt kann eine Werbeunterbrechung auslösen.
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 Eigenschaften definiert, die in dieser Ressource angezeigt werden:
Attribute | |
---|---|
kind |
string Identifiziert den Typ der API-Ressource. Der Wert ist youtube#liveBroadcast . |
etag |
etag Das ETag dieser Ressource. |
id |
string Die ID, die YouTube der Übertragung zuweist, um sie eindeutig zu identifizieren. |
snippet |
object Das snippet -Objekt enthält grundlegende Details zum Ereignis, einschließlich Titel, Beschreibung, Beginn und Ende. |
snippet.publishedAt |
datetime Das Datum und die Uhrzeit, an dem die Übertragung dem Zeitplan der Livestreams auf YouTube hinzugefügt wurde. Der Wert wird im ISO 8601-Format ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.channelId |
string Die ID, mit der YouTube den Kanal eindeutig identifiziert, über den die Übertragung veröffentlicht wird. |
snippet.title |
string Der Titel der Übertragung. Die Übertragung repräsentiert genau ein YouTube-Video. Du kannst dieses Feld festlegen, indem du die Übertragungsressource modifizierst oder das Feld title der entsprechenden Videoressource festlegst. |
snippet.description |
string Die Beschreibung der Übertragung. Wie bei title kannst du dieses Feld festlegen, indem du die Übertragungsressource modifizierst oder das Feld description der entsprechenden Videoressource festlegst. |
snippet.thumbnails |
object Eine Karte mit Miniaturansichten zur Übertragung. Für jedes verschachtelte Objekt in diesem Objekt ist der Schlüssel der Name des Thumbnail-Bilds und der Wert ist ein Objekt mit weiteren Informationen zum Thumbnail. |
snippet.thumbnails.(key) |
object Gültige Schlüssel/Wert-Paare sind:
|
snippet.thumbnails.(key).url |
string Die URL des Bildes. |
snippet.thumbnails.(key).width |
unsigned integer Die Breite des Bilds. |
snippet.thumbnails.(key).height |
unsigned integer Die Höhe des Bilds. |
snippet.scheduledStartTime |
datetime Das Datum und die Uhrzeit, zu der die Übertragung beginnen soll. Der Wert wird im Format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. In Creator Studio kannst du eine Übertragung erstellen, ohne eine Startzeit festzulegen. In diesem Fall wird die Übertragung immer dann gestartet, wenn der Kanalinhaber das Streaming startet. Bei diesen Broadcasts entspricht der Wert datetime der UNIX-Zeit null und kann nicht über die API oder in Creator Studio geändert werden. |
snippet.scheduledEndTime |
datetime Das Datum und die 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 unbegrenzt fortgesetzt. Ebenso verhält es sich, wenn du keinen Wert für diese Eigenschaft angibst. In diesem Fall behandelt YouTube die Übertragung so, als würde sie unbegrenzt laufen. |
snippet.actualStartTime |
datetime Datum und Uhrzeit des tatsächlichen Beginns der Übertragung. 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 Das Datum und die Uhrzeit, zu der die Übertragung tatsächlich endete. 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 werden auf YouTube keine Standardstreams und Standardübertragungen mehr erstellt, wenn für einen Kanal das 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.Funktionsweise von Standardübertragungen Wenn ein YouTube-Kanal für das Livestreaming aktiviert ist, erstellt YouTube einen Standardstream und eine Standardübertragung für den Kanal. Mit dem Stream wird festgelegt, wie der Kanalinhaber das Live-Video an YouTube sendet. Über die Übertragung können Zuschauer den Standardstream sehen. Kanalinhaber können diese Ressourcen mit den Methoden liveStreams.list und liveBroadcasts.list ermitteln.Wenn auf einem Kanal ein Video in den Standardstream gestreamt wird, ist es in der Standardübertragung des Kanals zu sehen. Wenn der Stream endet, wandelt YouTube die abgeschlossene Übertragung in ein YouTube-Video um und weist dem Video eine YouTube-Video-ID zu. Nachdem die Umwandlung abgeschlossen ist, 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 Ressource liveChatMessage verwenden, um Chatnachrichten abzurufen, einzufügen oder zu löschen. Außerdem kannst du Chatmoderatoren hinzufügen oder entfernen, Nutzer von der Teilnahme an Livechats ausschließen oder bestehende Sperrungen aufheben. |
status |
object Das Objekt status enthält Informationen zum Status des Ereignisses. |
status.lifeCycleStatus |
string Der Status der Übertragung. Der Status kann mit der liveBroadcasts.transition -Methode der API aktualisiert werden.Gültige Werte für dieses Attribut sind:
|
status.privacyStatus |
string Der Datenschutzstatus der Übertragung. Hinweis: Die Übertragung entspricht genau einem YouTube-Video. Die Datenschutzeinstellungen sind daher mit denen identisch, die für Videos unterstützt werden. Du kannst dieses Feld auch festlegen, indem du die Übertragungsressource modifizierst oder das Feld privacyStatus der entsprechenden Videoressource festlegst.Gültige Werte für dieses Attribut sind:
|
status.recordingStatus |
string Der Aufzeichnungsstatus der Übertragung. Gültige Werte für diese Property sind:
|
status.madeForKids |
boolean Dieser Wert gibt an, ob die Übertragung als für Kinder bestimmt gekennzeichnet ist. Dieser Attributwert ist schreibgeschützt. |
status.selfDeclaredMadeForKids |
boolean Mit dieser Property kann der Kanalinhaber in einer liveBroadcasts.insert -Anfrage angeben, dass die Übertragung auf Kinder ausgerichtet ist. 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 zu den Videoinhalten des Ereignisses, z. B. ob die Inhalte in einem eingebetteten Videoplayer angezeigt werden können oder ob sie archiviert und daher nach dem Ende des Ereignisses zur Wiedergabe verfügbar sind. |
contentDetails.boundStreamId |
string Mit diesem Wert wird die an die Übertragung gebundene live stream eindeutig identifiziert. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime Datum und Uhrzeit der letzten Aktualisierung des Livestreams, auf den boundStreamId verweist. |
contentDetails.monitorStream |
object Das Objekt monitorStream enthält Informationen zum Monitorstream, mit denen der Sender den Inhalt der Veranstaltung überprüfen kann, bevor der Stream öffentlich gezeigt wird. |
contentDetails.monitorStream.enableMonitorStream |
boolean Dieser Wert bestimmt, ob der Monitorstream für die Übertragung aktiviert ist. Wenn der Monitorstream aktiviert ist, überträgt YouTube die Ereignisinhalte in einem speziellen Stream, der nur für den Sender bestimmt ist. Der Broadcaster kann den Stream verwenden, um die Inhalte des Ereignisses zu überprüfen und die optimalen Zeitpunkte für das Einfügen von Cuepoints zu ermitteln. Du musst diesen Wert auf true setzen, wenn du für die Übertragung eine testing -Phase oder eine Übertragungsverzögerung möchtest. Wenn der Wert dieser Property true ist, musst du die Übertragung außerdem in den Zustand testing versetzen, bevor du sie in den Zustand live versetzen kannst. Wenn der Wert der Property false ist, kann die Übertragung keine Phase testing haben. Du kannst sie also direkt in den Status live überführen.Wenn du update a broadcast , muss diese Property festgelegt sein, wenn deine API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie insert a broadcast verwenden, ist die Eigenschaft jedoch optional und hat den Standardwert true .Wichtig:Diese Property kann nicht mehr aktualisiert werden, wenn die Übertragung den Status testing oder live hat. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Wenn du die Property enableMonitorStream auf true gesetzt hast, bestimmt diese Property die Länge der Verzögerung der Livestreams.Wenn du update a broadcast , muss diese Property festgelegt sein, wenn deine API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast festlegen, ist das Attribut optional und hat den Standardwert 0 . Dieser Wert gibt an, dass die Übertragung keine Übertragungsverzögerung hat. Hinweis:Diese Property kann nicht mehr aktualisiert werden, wenn die Übertragung den Status testing oder live hat. |
contentDetails.monitorStream.embedHtml |
string HTML-Code, der einen Player einbettet, der den Monitorstream wiedergibt. |
contentDetails.enableEmbed |
boolean Diese Einstellung gibt an, ob das übertragene Video in einem eingebetteten Player abgespielt werden kann. Wenn Sie das Video mithilfe der Property enableArchive archivieren, gilt diese Einstellung auch für das archivierte Video.Wenn Sie update a broadcast , muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie jedoch insert a broadcast festlegen, ist das Attribut optional und hat den Standardwert true .Hinweis:Diese Eigenschaft kann nicht mehr aktualisiert werden, wenn die Übertragung den Status testing oder live hat. |
contentDetails.enableDvr |
boolean Mit dieser Einstellung legen Sie fest, ob Zuschauer während der Wiedergabe des Videos auf die DVR-Steuerung 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 dieses Attribut ist true . Wenn du update a broadcast , muss diese Property festgelegt sein, wenn deine API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie insert a broadcast verwenden, ist die Eigenschaft jedoch optional und hat den Standardwert true .Wichtig:Du musst den Wert auf true und den Wert der Property enableArchive auf true festlegen, wenn du die Wiedergabe direkt nach dem Ende der Übertragung verfügbar machen möchtest. Außerdem kann diese Property nicht aktualisiert werden, wenn die Übertragung den Status testing oder live hat. |
contentDetails.recordFromStart |
boolean Diese Einstellung gibt an, ob YouTube die Übertragung automatisch aufnimmt, sobald der Status des Ereignisses in „Live“ geändert wird. Der Standardwert dieser Property ist true . Er kann nur auf false festgelegt werden, wenn der Übertragungskanal berechtigt ist, Aufzeichnungen für Livestreams zu deaktivieren.Wenn dein Kanal keine Berechtigung zum Deaktivieren von Aufzeichnungen hat und du versuchst, eine Übertragung einzufügen, bei der die recordFromStart -Eigenschaft auf false festgelegt ist, gibt die API den Fehler Forbidden zurück. Wenn dein Kanal nicht über diese Berechtigung verfügt und du versuchst, eine Übertragung zu aktualisieren, um die recordFromStart -Eigenschaft auf false festzulegen, gibt die API den Fehler modificationNotAllowed zurück.Wenn du update a broadcast , muss diese Property festgelegt sein, wenn deine API-Anfrage den Teil contentDetails im Parameterwert part enthält. Wenn Sie insert a broadcast verwenden, ist die Eigenschaft jedoch optional und hat den Standardwert true .Wichtig:Du musst auch den Wert der Property enableDvr auf true festlegen, damit die Wiedergabe direkt nach dem Ende der Übertragung verfügbar ist. Wenn du den Wert dieser Property auf true setzt, die Property enableDvr aber nicht auf true , kann es etwa einen Tag dauern, bis das archivierte Video zur Wiedergabe verfügbar ist.Hinweis:Diese Eigenschaft kann nicht mehr aktualisiert werden, wenn die Übertragung den Status testing oder live hat. |
contentDetails.enableClosedCaptions |
boolean Dieses Attribut wird seit dem 17. Dezember 2015 nicht mehr unterstützt. Verwende stattdessen die Property contentDetails.closedCaptionsType .Diese Einstellung gibt an, ob für diese Übertragung Untertitel per HTTP POST aktiviert sind. Für API-Clients, die diese Eigenschaft bereits verwenden:
|
contentDetails.closedCaptionsType |
string Hinweis: Diese Eigenschaft ersetzt die Eigenschaft contentDetails.enableClosedCaptions .Diese Eigenschaft gibt an, ob Untertitel für deine Übertragung aktiviert sind und falls ja, welche Art von Untertiteln du zur Verfügung stellst:
|
contentDetails.projection |
string Das Projektionsformat dieser Übertragung. Der Standardwert der Property ist rectangular .Gültige Werte für dieses Attribut sind:
|
contentDetails.enableLowLatency |
boolean Gibt an, ob diese Übertragung für Streaming mit niedriger Latenz codiert werden soll. Ein Stream mit niedriger Latenz kann die Zeit verkürzen, die es dauert, bis das Video für Nutzer sichtbar ist, die sich eine Übertragung ansehen. Er kann sich aber auch auf die Auflösung für 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, die ultraLow nicht unterstützt.Ein Stream mit niedriger Latenz kann die Zeit verkürzen, die es dauert, bis das Video für Nutzer sichtbar ist, die sich eine Übertragung ansehen. Er kann sich jedoch auch auf die Laufruhe der Wiedergabe auswirken. Ein Stream mit extrem niedriger Latenz verkürzt die Zeit noch weiter, die es dauert, bis das Video für Zuschauer sichtbar ist. Das erleichtert die Interaktion mit Zuschauern. Bei extrem niedriger 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 die Übertragung automatisch gestartet werden soll, wenn Sie das Streaming des Videos auf der gebundenen live stream starten. |
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 Objekt statistics 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, während die Übertragung läuft. |
statistics.totalChatCount |
unsigned long Die Gesamtzahl der Livechat-Nachrichten im Zusammenhang mit der Übertragung. 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. Hinweis: Nach dem Ende der Übertragung wird für dieses Attribut kein Wert mehr angegeben. Mit dieser Property 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 der Anzeigenautomat aktiviert ist oder die Einfügung von Mid-Roll-Anzeigen verzögert wird. |
monetizationDetails.cuepointSchedule |
object Mit dem Objekt cuepointSchedule werden die Einstellungen für die Anzeigenautomatisierung für die Übertragung festgelegt. |
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 Auslieferung von Anzeigen wird durch den Wert der anderen Felder im monetizationDetails.cuepointSchedule -Objekt bestimmt.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Dieser Wert gibt an, dass YouTube vor dem angegebenen Datum und der angegebenen Uhrzeit keine Mid-Roll-Anzeigen in die Übertragung einfügen soll. Der Wert muss im ISO 8601-Format (YYYY-MM-DDThh:mm:ss.sZ) angegeben werden. Der Wert muss auf ein zukünftiges Datum und eine zukünftige Uhrzeit festgelegt werden, um Anzeigen zu pausieren. Der Feldwert kann auch auf ein Datum und eine Uhrzeit in der nahen Zukunft festgelegt werden, um die Auslieferung der Anzeigen nach Ablauf der Zeit wieder zu aktivieren. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Dieser Wert gibt die Strategie an, die YouTube beim Planen von Cue-Punkten verfolgen soll. Gültige Werte:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Dieser Wert gibt das Intervall in Sekunden zwischen der automatischen Anzeigenbereitstellung während einer Übertragung an. Wenn der Wert beispielsweise 300 ist, kann YouTube Mid-Roll-Cue-Punkte in Intervallen von fünf Minuten einfügen.Der Wert gibt die Zeit zwischen dem Beginn aufeinanderfolgender Cue-Punkte an. Das heißt, das Intervall wird nicht vom Ende eines Cue-Punkts bis zum Beginn des nächsten gemessen. |