Die API unterstützt jetzt die Möglichkeit, Liveübertragungen als „speziell für Kinder“ zu kennzeichnen. Die Ressource
liveBroadcast
enthält jetzt eine Eigenschaft, die den Status „Speziell für Kinder“ dieser Liveübertragung angibt. Die Nutzungsbedingungen für die YouTube API-Dienste und die Richtlinien für Entwickler wurden ebenfalls am 10. Januar 2020 aktualisiert. Weitere Informationen findest du im Überarbeitungsverlauf des YouTube Live Streaming API-Dienstes und in den Nutzungsbedingungen der YouTube API-Dienste.
Eine liveBroadcast
-Ressource steht für eine Veranstaltung, die per Live-Video auf YouTube gestreamt wird.
Methoden
Die API unterstützt die folgenden Methoden für liveBroadcasts
-Ressourcen:
- list
- Gibt eine Liste von YouTube-Broadcasts zurück, die mit den API-Anfrageparametern übereinstimmen. Hier kannst du die Funktion ausprobieren.
- einfügen
- Zum Erstellen einer Übertragung. Hier kannst du die Funktion ausprobieren.
- aktualisieren
- Aktualisiert eine Übertragung. Du kannst beispielsweise die Übertragungseinstellungen ändern, die im
contentDetails
-Objekt der RessourceliveBroadcast
definiert sind. Jetzt ausprobieren - Delete
- Löscht eine Übertragung. Hier kannst du die Funktion ausprobieren.
- bind
- Bindet eine YouTube-Übertragung an einen Stream oder entfernt eine bestehende Bindung zwischen einer Übertragung und einem Stream. Eine Übertragung kann nur an einen Videostream gebunden sein, während ein Videostream an mehrere Übertragungen gebunden sein kann. Hier kannst du die Funktion ausprobieren.
- Übergang
- Ändert den Status einer YouTube-Liveübertragung und initiiert alle Prozesse in Verbindung mit dem neuen Status. Wenn du beispielsweise den Status einer Übertragung auf
testing
änderst, beginnt YouTube damit, Videos an den Überwachungsstream dieser Übertragung zu übertragen. Bevor Sie diese Methode aufrufen, sollten Sie prüfen, ob der Wert des Attributsstatus.streamStatus
für den an Ihre Übertragung gebundenen Streamactive
ist. Jetzt ausprobieren - Cue-Punkt
- 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 Attribute 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 zur eindeutigen Identifizierung der Übertragung zuweist. |
snippet |
object Das Objekt snippet enthält grundlegende Details zum Termin, einschließlich Titel, Beschreibung sowie Beginn und Ende. |
snippet.publishedAt |
datetime Datum und Uhrzeit, zu der die Übertragung in den Zeitplan für die Liveübertragung von YouTube aufgenommen wurde. Der Wert wird im Format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.channelId |
string Die ID, mit der YouTube den Kanal eindeutig identifiziert, der die Übertragung veröffentlicht. |
snippet.title |
string Titel der Übertragung Beachten Sie, dass die Übertragung genau ein YouTube-Video repräsentiert. Du kannst dieses Feld festlegen, indem du die Broadcast-Ressource änderst oder das Feld title der entsprechenden Videoressource festlegst. |
snippet.description |
string Die Beschreibung der Übertragung. Wie bei title können Sie dieses Feld festlegen, indem Sie die Übertragungsressource ändern oder das Feld description der entsprechenden Videoressource festlegen. |
snippet.thumbnails |
object Eine Übersicht mit Thumbnail-Bildern im Zusammenhang mit der Übertragung. Für jedes verschachtelte Objekt in diesem Objekt ist der Schlüssel der Name der Miniaturansicht. Der Wert ist ein Objekt, das weitere Informationen zur Miniaturansicht enthält. |
snippet.thumbnails.(key) |
object Gültige Schlüssel/Wert-Paare sind:
|
snippet.thumbnails.(key).url |
string Die URL des Bilds. |
snippet.thumbnails.(key).width |
unsigned integer Die Breite des Bildes. |
snippet.thumbnails.(key).height |
unsigned integer Die Höhe des Bildes. |
snippet.scheduledStartTime |
datetime Datum und Uhrzeit für den geplanten Beginn der Übertragung. Der Wert wird im Format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. In Creator Studio kannst du eine Übertragung erstellen, ohne einen Beginn zu planen. In diesem Fall beginnt die Übertragung, sobald der Kanalinhaber mit dem Streaming beginnt. 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 Datum und Uhrzeit des geplanten Endes der Übertragung. Der Wert wird im Format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) angegeben. Wenn eine liveBroadcast -Ressource keinen Wert für diese Eigenschaft angibt, wird die Übertragung auf unbestimmte Zeit fortgesetzt. Wenn du keinen Wert für diese Eigenschaft angibst, behandelt YouTube die Übertragung ebenfalls so, als würde sie auf unbestimmte Zeit fortgesetzt werden. |
snippet.actualStartTime |
datetime Datum und Uhrzeit des tatsächlichen Beginns der Übertragung Diese Information ist erst verfügbar, wenn der Status der Übertragung live lautet. Der Wert wird im Format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ) angegeben. |
snippet.actualEndTime |
datetime Datum und Uhrzeit des tatsächlichen Endes der Übertragung Diese Information ist erst verfügbar, wenn der Status der Übertragung complete lautet. Der Wert wird im Format ISO 8601 (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 keinen Standardstream und keine Standardübertragung mehr, wenn Livestreaming für einen Kanal aktiviert ist. Weitere Informationen finden Sie in der Ankündigung.
Diese Eigenschaft gibt an, ob diese Übertragung die Standardübertragung ist.So funktionieren Standardübertragungen Wenn Livestreaming auf einem YouTube-Kanal aktiviert ist, erstellt YouTube einen Standardstream und eine Standardübertragung für den Kanal. Mit dem Stream wird festgelegt, wie der Kanalinhaber ein Live-Video an YouTube sendet, und die Übertragung bestimmt, wie Zuschauer den Standardstream sehen können. Ein Kanalinhaber kann die Methoden liveStreams.list und liveBroadcasts.list verwenden, um diese Ressourcen zu identifizieren.Wenn ein Kanal beginnt, ein Video über seinen Standardstream zu streamen, wird das Video in der Standardübertragung des Kanals angezeigt. Nach dem Ende des Streams wandelt YouTube die abgeschlossene Übertragung in ein YouTube-Video um und weist dem Video eine YouTube-Video-ID zu. Nach Abschluss der Umwandlung wird das Video in die Liste der hochgeladenen Videos des Kanals aufgenommen. Das Video ist nicht unmittelbar nach dem Ende der Übertragung verfügbar und die Länge der Verzögerung hängt von der tatsächlichen Dauer der Übertragung ab. |
snippet.liveChatId |
string Die ID des YouTube-Livechats der Übertragung. Mit dieser ID können Sie die Methoden der liveChatMessage -Ressource verwenden, um Chatnachrichten abzurufen, einzufügen oder zu löschen. Du kannst auch Chatmoderatoren hinzufügen oder entfernen, Nutzer von der Teilnahme an Livechats ausschließen oder bestehende Sperrungen entfernen. |
status |
object Das Objekt status enthält Informationen zum Status des Ereignisses. |
status.lifeCycleStatus |
string Status der Übertragung Der Status kann mit der API-Methode liveBroadcasts.transition aktualisiert werden.Gültige Werte für dieses Attribut sind:
|
status.privacyStatus |
string Datenschutzstatus der Übertragung Beachten Sie, dass die Übertragung genau ein YouTube-Video repräsentiert. Die Datenschutzeinstellungen sind also mit denen identisch, die für Videos unterstützt werden. Außerdem kannst du dieses Feld festlegen, indem du die Broadcast-Ressource änderst oder das Feld privacyStatus der entsprechenden Videoressource festlegst.Gültige Werte für dieses Attribut sind:
|
status.recordingStatus |
string Aufzeichnungsstatus der Übertragung. Gültige Werte für dieses Attribut sind:
|
status.madeForKids |
boolean Dieser Wert gibt an, ob die Übertragung als Inhalte für Kinder eingestuft ist. Dieser Attributwert ist schreibgeschützt. |
status.selfDeclaredMadeForKids |
boolean Bei einer liveBroadcasts.insert -Anfrage kann der Kanalinhaber die Übertragung mit dieser Property als auf Kinder ausgerichtet festlegen. Bei liveBroadcasts.list -Anfragen wird der Attributwert nur zurückgegeben, wenn der Kanalinhaber die API-Anfrage autorisiert hat. |
contentDetails |
object Das contentDetails -Objekt enthält Informationen zum Videoinhalt der Veranstaltung, z. B. ob der Inhalt in einem eingebetteten Videoplayer angezeigt werden kann oder ob er archiviert wird und somit nach Ende der Veranstaltung wieder verfügbar ist. |
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 monitorStream -Objekt enthält Informationen zum Beobachtungsstream, mit denen der Sender den Inhalt der Veranstaltung prü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 die Überwachung aktiviert ist, überträgt YouTube die Veranstaltungsinhalte in einem speziellen Stream, der nur für den Sender bestimmt ist. Der Sender kann den Stream nutzen, um den Veranstaltungsinhalt zu überprüfen und die optimalen Zeitpunkte für das Einfügen von Cue-Punkten zu ermitteln. Du musst diesen Wert auf true setzen, wenn du eine testing -Bühne für die Übertragung oder eine Verzögerung bei der Übertragung deiner Veranstaltung haben möchtest. Wenn der Wert dieses Attributs true lautet, müssen Sie außerdem Ihre Übertragung in den Status testing umstellen, bevor Sie sie in den Status live umwandeln können. Wenn der Wert des Attributs false lautet, darf deine Übertragung keine testing -Phase haben, sodass du die Übertragung direkt in den live -Status umwandeln kannst.Wenn Sie update a broadcast verwenden, muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den contentDetails -Teil im part -Parameterwert enthält. Beim insert a broadcast ist das Attribut jedoch optional und hat den Standardwert true .Wichtig:Diese Eigenschaft kann nicht mehr aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Wenn du die Eigenschaft enableMonitorStream auf true gesetzt hast, bestimmt diese Eigenschaft die Länge der Verzögerung der Liveübertragung.Wenn Sie update a broadcast verwenden, muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den contentDetails -Teil im part -Parameterwert enthält. Beim insert a broadcast ist das Attribut jedoch optional und hat den Standardwert 0 . Dieser Wert gibt an, dass es bei der Übertragung keine Übertragungsverzögerung gibt. Hinweis: Diese Eigenschaft kann nicht mehr aktualisiert werden, sobald 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 du das Video über die enableArchive -Property archivierst, gilt diese Einstellung auch für das archivierte Video.Wenn Sie update a broadcast verwenden, muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den contentDetails -Teil im part -Parameterwert enthält. Beim insert a broadcast ist das Attribut jedoch optional und hat den Standardwert true .Hinweis:Diese Eigenschaft kann nicht mehr 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 Videowiedergabe auf die Steuerelemente des digitalen Videorekorders zugreifen können. Mit der DVR-Steuerung können Zuschauer die Videowiedergabe steuern, indem sie Inhalte pausieren, zurückspulen oder vorspulen. Der Standardwert für dieses Attribut ist true . Wenn Sie update a broadcast verwenden, muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den contentDetails -Teil im part -Parameterwert enthält. Beim insert a broadcast ist das Attribut jedoch optional und hat den Standardwert true .Wichtig:Legen Sie den Wert auf true und den Wert des Attributs enableArchive auf true fest, wenn die Wiedergabe unmittelbar nach Ende der Übertragung verfügbar sein soll. Außerdem kann diese Eigenschaft nicht mehr aktualisiert werden, sobald die Übertragung den Status testing oder live hat. |
contentDetails.recordFromStart |
boolean Über diese Einstellung wird festgelegt, ob YouTube die Aufzeichnung der Übertragung automatisch startet, sobald sich der Status der Veranstaltung zu „Live“ ändert. Der Standardwert dieser Property ist true . Sie kann nur auf false gesetzt werden, wenn der Übertragungskanal Aufzeichnungen für Liveübertragungen deaktivieren darf.Wenn dein Kanal keine Berechtigung zum Deaktivieren von Aufzeichnungen hat und du versuchst, eine Übertragung einzufügen, bei der die recordFromStart -Eigenschaft auf false gesetzt 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 Eigenschaft recordFromStart auf false zu setzen, gibt die API den Fehler modificationNotAllowed zurück.Wenn Sie update a broadcast verwenden, muss dieses Attribut festgelegt werden, wenn Ihre API-Anfrage den contentDetails -Teil im part -Parameterwert enthält. Beim insert a broadcast ist das Attribut jedoch optional und hat den Standardwert true .Wichtig:Du musst auch den Wert des Attributs enableDvr auf true setzen, wenn die Wiedergabe unmittelbar nach Ende der Übertragung verfügbar sein soll. Wenn du den Wert dieser Eigenschaft auf true , aber nicht gleichzeitig die Eigenschaft enableDvr auf true setzt, kann es etwa einen Tag dauern, bis das archivierte Video für die Wiedergabe verfügbar ist.Hinweis:Diese Eigenschaft kann nicht mehr aktualisiert werden, sobald sich die Übertragung im Status testing oder live befindet. |
contentDetails.enableClosedCaptions |
boolean Diese Property wurde am 17. Dezember 2015 eingestellt. Verwende stattdessen die Eigenschaft contentDetails.closedCaptionsType .Diese Einstellung gibt an, ob die HTTP POST-Untertitelung für diese Übertragung aktiviert ist. Für API-Clients, die dieses Attribut bereits verwenden:
|
contentDetails.closedCaptionsType |
string Hinweis: Diese Property ersetzt die contentDetails.enableClosedCaptions -Property.Diese Property gibt an, ob Untertitel für deine Übertragung aktiviert sind und welche Art von Untertiteln du angibst:
|
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 niedriger Latenz codiert werden sollte. Ein Stream mit niedriger Latenz kann die Zeit reduzieren, bis das Video für Nutzer sichtbar ist, die sich eine Übertragung ansehen. Es kann aber auch die Auflösung für die Zuschauer des Streams beeinträchtigen. |
contentDetails.latencyPreference |
string Gibt an, welche Latenzeinstellung für diese Übertragung verwendet werden soll. Diese Eigenschaft kann anstelle von enableLowLatency verwendet werden, da ultraLow nicht unterstützt wird.Ein Stream mit niedriger Latenz kann die Zeit verkürzen, bis das Video für Nutzer, die eine Sendung ansehen, sichtbar ist. Allerdings kann dies auch die reibungslose Wiedergabe beeinträchtigen. Ein Stream mit extrem niedriger Latenz reduziert die Zeit, die für die Sichtbarkeit des Videos für Zuschauer benötigt wird. Dies vereinfacht die Interaktion mit Zuschauern, aber eine extrem niedrige Latenz unterstützt keine Untertitel.
|
contentDetails.enableAutoStart |
boolean Gibt an, ob diese Übertragung automatisch gestartet werden soll, wenn Sie das Videostreaming am vorgesehenen live stream starten. |
contentDetails.enableAutoStop |
boolean Gibt an, ob diese Übertragung automatisch etwa eine Minute, nachdem der Kanalinhaber das Videostreaming im gebundenen Videostream beendet hat, 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 mit der Übertragung verbundenen Livechat-Nachrichten. Die Eigenschaft und ihr Wert sind vorhanden, wenn die Übertragung für den Nutzer sichtbar ist, die Livechat-Funktion aktiviert ist und mindestens eine Nachricht enthalten ist. Beachten Sie, dass mit dieser Eigenschaft nach dem Ende der Übertragung kein Wert angegeben wird. Diese Property würde also nicht die Anzahl der Chatnachrichten für ein archiviertes Video einer abgeschlossenen Liveübertragung ermitteln. |
monetizationDetails |
object Das monetizationDetails -Objekt enthält Informationen zu den Monetarisierungsdetails des Streams, z. B. ob das automatische Anzeigensystem aktiviert ist oder ob das Einfügen von Mid-Roll-Anzeigen verzögert ist. |
monetizationDetails.cuepointSchedule |
object Über das 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 Anzeigenauslieferung 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 festgelegten Uhrzeit keine Mid-Roll-Anzeigen in die Übertragung einfügt. Der Wert wird im Format ISO 8601 (JJJJ-MM-TTThh:mm:ss.sZ) angegeben. Der Wert muss auf ein Datum in der Zukunft gesetzt werden, um Anzeigen zu pausieren. Der Feldwert kann auch auf eine Datumszeit in der nahen Zukunft festgelegt werden, um die Pausierung der Anzeigen aufzuheben, wenn die Zeit verstrichen ist. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Dieser Wert gibt die Strategie an, die YouTube bei der Planung von Cue-Punkten anwenden soll. Gültige Werte:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Dieser Wert gibt das Intervall in Sekunden zwischen der automatischen Anzeigenbereitstellung bei einer Übertragung an. Wenn der Wert beispielsweise 300 ist, kann YouTube Mid-Roll-Referenzpunkte in Intervallen von fünf Minuten einfügen.Der Wert gibt die Zeit zwischen dem Start aufeinanderfolgender Cue-Punkte an. Das heißt, das Intervall wird nicht vom Ende eines Cue-Punkts bis zum Start des nächsten gemessen. |