LiveStreams

Eine liveStream-Ressource enthält Informationen zum Videostream, den du an YouTube sendest. Der Stream enthält die Inhalte, die an YouTube-Nutzer gesendet werden. Nachdem eine liveStream-Ressource erstellt wurde, kann sie an eine oder mehrere liveBroadcast-Ressourcen gebunden werden.

Methoden

Die API unterstützt die folgenden Methoden für liveStreams-Ressourcen:

list
Gibt eine Liste von Videostreams zurück, die den API-Anfrageparametern entsprechen. Hier kannst du die Funktion ausprobieren.
Einfügen
Erstellt einen Videostream. Mit dem Stream kannst du dein Video an YouTube senden und es dann an deine Zuschauer senden. Hier kannst du die Funktion ausprobieren.
Aktualisieren
Aktualisiert einen Videostream. Wenn die Eigenschaften, die Sie ändern möchten, nicht aktualisiert werden können, müssen Sie einen neuen Stream mit den richtigen Einstellungen erstellen. Hier kannst du die Funktion ausprobieren.
Delete
Videostream löschen. Hier kannst du die Funktion ausprobieren.

Ressourcendarstellung

Die folgende JSON-Struktur zeigt das Format einer liveStreams-Ressource:

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

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#liveStream.
etag etag
Das ETag dieser Ressource.
id string
Die ID, die YouTube zur eindeutigen Identifizierung des Streams zuweist.
snippet object
Das snippet-Objekt enthält grundlegende Details zum Stream, einschließlich Kanal, Titel und Beschreibung.
snippet.publishedAt datetime
Datum und Uhrzeit der Erstellung des Streams. 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 der Stream übertragen wird.
snippet.title string
Der Titel des Streams. Der Wert muss zwischen 1 und 128 Zeichen lang sein.
snippet.description string
Die Beschreibung des Streams Der Wert darf nicht länger als 10.000 Zeichen sein.
snippet.isDefaultStream boolean
Diese Property wird am oder nach dem 1. September 2020 eingestellt. YouTube erstellt dann keinen Standardstream und keine Standardübertragung mehr, wenn Livestreaming auf einem Kanal aktiviert ist. Weitere Informationen finden Sie in der Ankündigung.
Diese Eigenschaft gibt an, ob dieser Stream der Standardstream für den Kanal ist.

So funktionieren Standardstreams

Wenn auf einem YouTube-Kanal Livestreaming aktiviert ist, erstellt YouTube einen Standardstream und eine Standardübertragung für den Kanal. Der Stream definiert, wie der Kanalinhaber Live-Videos an YouTube sendet. Über die Übertragung können Zuschauer den Standard-Stream sehen. Ein Kanalinhaber kann die Ressourcen liveStreams.list und liveBroadcasts.list verwenden, um diese Ressourcen zu identifizieren.

Der Standardstream eines Kanals ist zeitlich unbegrenzt, mit ihm kann weder eine Start- noch eine Endzeit verknüpft sein und er kann nicht gelöscht werden. Der Kanalinhaber muss nur Videobits senden. Der Stream wird dann automatisch fortgesetzt.

Am Ende eines Streams konvertiert YouTube die abgeschlossene Übertragung in ein YouTube-Video und weist dem Video eine YouTube-Video-ID zu. Nach Abschluss der Konvertierung wird das Video in die Liste der hochgeladenen Videos des Kanals aufgenommen. Das Video ist nicht unmittelbar nach Ende der Übertragung verfügbar und die Länge der Verzögerung hängt von der tatsächlichen Länge der Übertragung ab.
cdn object
Das cdn-Objekt definiert die Einstellungen für das Content Delivery Network (CDN) des Livestreams. Diese Einstellungen enthalten Details dazu, wie du deine Inhalte auf YouTube streamst.
cdn.format string
Diese Property wird seit dem 18. April 2016 nicht mehr unterstützt und ab dem 17. August 2020 nicht mehr unterstützt. Anfragen, die dieses Attribut ab diesem Datum noch verwenden, schlagen fehl.

Verwende stattdessen die Properties cdn.frameRate und cdn.resolution, um Framerate und Auflösung separat anzugeben.
cdn.ingestionType string
Die Methode oder das Protokoll, die zum Übertragen des Videostreams verwendet wird.

Gültige Werte für diese Property sind:
  • dash
  • hls
  • rtmp (einschließlich RTMPS)
cdn.ingestionInfo object
Das ingestionInfo-Objekt enthält Informationen, die YouTube zur Verfügung stellt, damit du deinen Stream an YouTube übertragen kannst.
cdn.ingestionInfo.streamName string
Der Streamname, den YouTube dem Videostream zuweist.
cdn.ingestionInfo.ingestionAddress string
Die primäre Aufnahme-URL, die du zum Streamen von Videos auf YouTube verwenden solltest, wenn du RTMP, DASH oder HLS verwendest. Sie müssen ein Video an diese URL streamen.

Je nachdem, welche Anwendung oder welches Tool Sie zum Codieren des Videostreams verwenden, müssen Sie möglicherweise die Stream-URL und den Streamnamen separat eingeben oder Sie müssen sie im folgenden Format verketten:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
Die Back-up-URL für die Datenaufnahme, die Sie zum Streamen von Videos auf YouTube verwenden sollten, wenn Sie RTMP, DASH oder HLS verwenden Du kannst die Inhalte, die du an ingestionAddress sendest, gleichzeitig an diese URL streamen.
cdn.ingestionInfo.rtmpsIngestionAddress string
Die primäre Aufnahme-URL, die Sie zum Streamen von Videos auf YouTube verwenden sollten, wenn Sie RTMPS verwenden. Sie müssen ein Video an diese URL streamen.

Je nachdem, welche Anwendung oder welches Tool Sie zur Codierung Ihres Videostreams verwenden, müssen Sie möglicherweise die Stream-URL und den Streamnamen separat eingeben oder Sie müssen sie im folgenden Format verketten:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
Die Back-up-Aufnahme-URL, die Sie zum Streamen von Videos auf YouTube verwenden sollten, wenn Sie RTMPS verwenden.
cdn.resolution string
Die Auflösung der eingehenden Videodaten.

Gültige Werte für diese Property sind:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: Mit dieser Einstellung gibst du an, dass YouTube die Auflösung deines gestreamten Videos automatisch erkennen soll. Sie müssen cdn.frameRate auch auf variable setzen.
    In der YouTube-Hilfe findest du die empfohlenen Encoder-Einstellungen.
cdn.frameRate string
Die Framerate der eingehenden Videodaten.

Gültige Werte für diese Property sind:
  • 30fps
  • 60fps
  • variable: Mit dieser Einstellung gibst du an, dass YouTube die Framerate deines gestreamten Videos automatisch erkennen soll. Sie müssen cdn.resolution auch auf variable setzen.
    In der YouTube-Hilfe findest du die empfohlenen Encoder-Einstellungen.
status object
Das Objekt status enthält Informationen zum Status des Livestreams.
status.streamStatus string
Der Status des Streams.

Für diese Property sind folgende Werte gültig:
  • active: Der Stream ist aktiv, d. h. der Nutzer empfängt Daten über den Stream.
  • created: Der Stream wurde erstellt, hat aber keine gültigen CDN-Einstellungen.
  • error: Im Stream ist eine Fehlerbedingung vorhanden.
  • inactive: Der Stream ist inaktiv, d. h. der Nutzer empfängt keine Daten über den Stream.
  • ready: Der Stream hat gültige CDN-Einstellungen.
status.healthStatus object
Dieses Objekt enthält Informationen zum Status des Livestreams, mit denen Streamingprobleme identifiziert, diagnostiziert und behoben werden können.
status.healthStatus.status string
Der Statuscode dieses Streams.

Gültige Werte für diese Property sind:
  • good: Es gibt keine Konfigurationsprobleme mit dem Schweregrad warning oder darunter.
  • ok: Es gibt keine Konfigurationsprobleme mit dem Schweregrad error.
  • bad: Der Stream hat einige Probleme mit dem Schweregrad error.
  • noData: Die Livestreaming-Back-End-Server von YouTube haben keine Informationen zum Zustand des Streams.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Das Datum der letzten Aktualisierung des Streamstatus. Der Wert spiegelt einen UNIX-Zeitstempel in Sekunden wider.
status.healthStatus.configurationIssues[] list
Dieses Objekt enthält eine Liste von Konfigurationsproblemen, die sich auf den Stream auswirken.
status.healthStatus.configurationIssues[].type string
Ermittelt die Art des Fehlers, der den Stream betrifft.
Probleme bei der Konfiguration
audioBitrateHigh
Grund:Audioeinstellungen überprüfen
Beschreibung:Die aktuelle Bitrate des Audiostreams von %(actual) liegt über der empfohlenen Bitrate. Wir empfehlen die Verwendung einer Audiostream-Bitrate von %(expected)s.
audioBitrateLow
Grund:Audioeinstellungen überprüfen
Beschreibung:Die aktuelle Bitrate des Audiostreams (%(actual)s) liegt unter der empfohlenen Bitrate. Wir empfehlen die Verwendung einer Audiostream-Bitrate von %(expected)s.
audioBitrateMismatch
Grund:Sekundären Stream überprüfen
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Audiobitraten. Die Streams müssen dieselbe Audiobitrate haben.
audioCodec
Grund:Audioeinstellungen überprüfen
Beschreibung:Der Audiostream ist mit einem nicht unterstützten Codec codiert. Lege als Audio-Codec für den Stream einen unterstützten Codec (AAC, MP3) fest.
audioCodecMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration verwenden der primäre Stream und der Sicherungsstream des Videos unterschiedliche Audio-Codecs. Du musst die Streams so konfigurieren, dass sie denselben Audio-Codec verwenden.
audioSampleRate
Grund:Audioeinstellungen überprüfen
Beschreibung:Die aktuelle Abtastrate beträgt %(actual). Die empfohlenen Abtastraten liegen bei 44,1 kHz und 48 kHz.
audioSampleRateMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Audioabtastraten. Sie müssen die Streams so konfigurieren, dass sie dieselbe Audioabtastrate haben.
audioStereoMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration werden beim primären Stream und Backup-Stream des Videos verschiedene Audiokanäle verwendet. Du musst die Streams so konfigurieren, dass dieselben Audiokanäle verwendet werden.
audioTooManyChannels
Grund:Audioeinstellungen überprüfen
Beschreibung:Das Audio enthält mehr als zwei Kanäle, aber nur einen (Mono) oder zwei (Stereo) Kanäle. Korrigiere die Anzahl der Audiokanäle.
badContainer
Grund:Probleme mit den Videoeinstellungen
Beschreibung:Ändere das Containerformat des Videos. Das aktuelle Containerformat ist für diese Konfiguration nicht korrekt.
bitrateHigh
Grund:Videoeinstellungen überprüfen
Beschreibung:Die aktuelle Bitrate des Streams von (%(actual)s) liegt über der empfohlenen Bitrate. Wir empfehlen eine Stream-Bitrate von %(expected)s.
bitrateLow
Grund:Schwache Videoausgabe
Beschreibung:Die aktuelle Bitrate des Streams von (%(actual)s) liegt unter der empfohlenen Bitrate. Wir empfehlen eine Stream-Bitrate von %(expected)s.
framerateMismatch
Grund:Sekundären Stream überprüfen
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Framerates. Du musst die Streams so konfigurieren, dass sie dieselbe Framerate haben.
frameRateHigh
Grund:Framerate zu hoch
Beschreibung:Die aktuelle Framerate ist zu hoch. Stelle die Framerate auf %(framerate)s fps oder weniger ein.
gopMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Keyframe-Frequenzen. Sie müssen die Streams so konfigurieren, dass sie dieselbe Keyframe-Frequenz haben.
gopSizeLong
Grund:Probleme mit den Videoeinstellungen
Beschreibung:Verwende eine Keyframe-Frequenz von maximal vier Sekunden. Im Moment werden Keyframes nicht häufig genug gesendet, was zu Zwischenspeicherungen führt. Die aktuelle Keyframe-Frequenz beträgt %(actual_gop).1f Sekunden. Beachte, dass Fehler bei der Datenaufnahme zu falschen Bildergruppengrößen (GoP) führen können.
gopSizeOver
Grund:Videoeinstellungen überprüfen
Beschreibung:Verwende eine Keyframe-Frequenz von maximal vier Sekunden. Im Moment werden Keyframes nicht häufig genug gesendet, was zu Zwischenspeicherungen führen kann. Die aktuelle Keyframe-Frequenz beträgt %(actual_gop).1f Sekunden. Beachte, dass Fehler bei der Datenaufnahme zu falschen Bildergruppengrößen (GoP) führen können.
gopSizeShort
Grund:Videoeinstellungen überprüfen
Beschreibung:Die Bildergruppengröße (GoP) ist sehr gering. Dies kann die Bildqualität beeinträchtigen. Die empfohlene Keyframe-Frequenz beträgt vier Sekunden. Die aktuelle Keyframe-Frequenz beträgt %(actual_gop).1f Sekunden. Beachte, dass Fehler bei der Datenaufnahme zu falschen Bildergruppengrößen (GoP) führen können.
multipleAudioStreams
Grund:Audioeinstellungen überprüfen
Beschreibung:Der Datenaufnahme-Stream enthält mehrere Audiostreams. Er darf aber nur einen Audiostream enthalten.
multipleVideoStreams
Grund:Probleme mit den Videoeinstellungen
Beschreibung:Der Datenaufnahme-Stream enthält mehrere Videostreams. Er darf aber nur einen Videostream enthalten.
noAudioStream
Grund:Kein Ton
Beschreibung:Der Datenaufnahme-Stream enthält keine Audiostreams. Er muss aber genau einen Audiostream enthalten.
noVideoStream
Grund:Keine Videodaten
Beschreibung:Der Datenaufnahme-Stream enthält keine Videostreams. Er muss aber genau einen Videostream enthalten.
openGop
Grund:Probleme mit den Videoeinstellungen
Beschreibung:Ändere die Konfiguration deines Video-Encoders in eine geschlossene Bildergruppe. Anscheinend ist die Option „Offene GoP“ ausgewählt, was YouTube nicht unterstützt.
resolutionMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Auflösungen. Sie müssen die Streams so konfigurieren, dass sie dieselbe Auflösung haben.
videoBitrateMismatch
Grund:Sekundären Stream überprüfen
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Bitraten. Sie müssen die Streams so konfigurieren, dass sie dieselbe Bitrate haben.
videoCodec
Grund:Probleme mit den Videoeinstellungen
Beschreibung:Das Video ist mit einem nicht unterstützten Codec codiert. Lege als Video-Codec für den Stream einen unterstützten Codec (H.264) fest.
videoCodecMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration verwenden der primäre Stream und der Sicherungsstream des Videos unterschiedliche Video-Codecs. Du musst die Streams so konfigurieren, dass sie dieselben Video-Codecs haben.
videoIngestionStarved
Grund:Schwache Videoausgabe
Beschreibung:YouTube empfängt nicht genügend Videos, um ein problemloses Streaming zu ermöglichen. Das führt zu einer Zwischenspeicherung.
videoInterlaceMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliches Interlacing. Sie müssen die Streams so konfigurieren, dass sie das gleiche Interlacing haben.
videoProfileMismatch
Grund:Probleme mit dem sekundären Stream
Beschreibung:In der aktuellen Konfiguration haben der primäre Stream und der Sicherungsstream des Videos unterschiedliche Profile. Sie müssen die Streams so konfigurieren, dass sie dasselbe Profil haben.
videoResolutionSuboptimal
Grund:Auflösung prüfen
Beschreibung:Überprüfe die Videoauflösung. Die aktuelle Auflösung von (%(actual_w)dx%(actual_h)d) ist nicht optimal.
videoResolutionUnsupported
Grund:Nicht unterstützte Auflösung
Beschreibung:Es ist erforderlich, dass du die Videoauflösung änderst. Die aktuelle Auflösung von (%(actual_w)dx%(actual_h)d) wird für diese Konfiguration nicht unterstützt. Die erwartete Videoauflösung ist (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
Gibt an, wie schwerwiegend das Problem für den Stream ist.

Gültige Werte für diese Property sind:
  • info: Das Video wird ohne negative Auswirkungen auf die Leistung an Zuschauer gesendet.
  • warning: Das Video wird an Zuschauer übertragen, die Leistung ist jedoch nicht optimal.
  • error: Das Video kann nicht an Zuschauer übertragen werden.
status.healthStatus.configurationIssues[].reason string
Eine kurze Beschreibung des Problems. Im Dokument Konfigurationsprobleme für Livestream-Ressourcen wird der Grund für jeden Konfigurationsproblemtyp erläutert.
status.healthStatus.configurationIssues[].description string
Eine detaillierte Beschreibung des Problems. Wenn möglich, enthält die Beschreibung Informationen zur Behebung des Problems. Im Dokument Konfigurationsprobleme für Livestream-Ressourcen werden alle Arten von Konfigurationsproblemen und die zugehörigen Beschreibungen aufgeführt.
contentDetails object
Das content_details-Objekt enthält Informationen zum Stream, einschließlich der URL für die Untertitelaufnahme.
contentDetails.closedCaptionsIngestionUrl string
Die Aufnahme-URL, an die die Untertitel dieses Streams gesendet werden.
contentDetails.isReusable boolean
Gibt an, ob der Stream wiederverwendbar ist. Das bedeutet, dass er an mehrere Übertragungen gebunden werden kann. Es ist nicht unüblich, dass Sender denselben Stream für viele unterschiedliche Sendungen wiederverwenden, wenn diese Übertragungen zu unterschiedlichen Zeiten stattfinden.

Wenn du diesen Wert auf false setzt, kann der Stream nicht wiederverwendet werden und kann daher nur an eine Übertragung gebunden werden. Nicht wiederverwendbare Streams unterscheiden sich in folgenden Punkten von wiederverwendbaren Streams:
  • Ein nicht wiederverwendbarer Stream kann nur an eine Übertragung gebunden werden.
  • Ein nicht wiederverwendbarer Stream wird nach Ende der Übertragung möglicherweise automatisch gelöscht.
  • Die Methode liveStreams.list listet keine nicht wiederverwendbaren Streams auf, wenn Sie die Methode aufrufen und den Parameter mine auf true setzen. Die Methode zum Abrufen der Ressource für einen nicht wiederverwendbaren Stream kann nur mit dem Parameter id verwendet werden, um den Stream zu identifizieren.