Einführung
In diesem Dokument wird das Leben einer Liveübertragung auf YouTube beschrieben, die mit der YouTube Live Streaming API und der Content API von YouTube erstellt und verwaltet wird.
Ressourcen und Ressourcentypen
Wie im Startleitfaden erläutert, ist eine Ressource eine einzelne Datenentität mit einer eindeutigen Kennung. Zum Erstellen und Verwalten von Live-Veranstaltungen auf YouTube verwendest du eine Reihe von verschiedenen Arten von Ressourcen, die als Teil der YouTube Data API oder der YouTube Content ID API definiert werden. Die unter der Überschrift YouTube Live Streaming API aufgeführten Ressourcen sind technisch in diesen anderen APIs definiert, werden aber separat aufgeführt, da sie nur für Liveübertragungen verwendet werden.
YouTube Live Streaming API-Ressourcen
Ressourcen der YouTube Data API
YouTube Content ID API-Ressourcen
Liveübertragung erstellen und verwalten
In den folgenden Schritten wird erklärt, wie du eine Live-Veranstaltung auf YouTube erstellst und verwaltest. Die Schritte sind in folgende Phasen unterteilt:
- Übertragung einrichten
- Anspruch auf Inhalte erheben
- Testen
- Nachricht an alle
- Übertragung abschließen
- Referenz erstellen
Phase 1: Übertragung einrichten
Schritt 1.1: Übertragung erstellen
Rufe die Methode liveBroadcasts.insert
auf, um deine Übertragung zum YouTube-Zeitplan für Live-Veranstaltungen hinzuzufügen. Die Ressource liveBroadcast
, die Sie einfügen, muss Werte für die unten aufgeführten Attribute definieren.
Bitte beachten Sie die folgenden Richtlinien, wenn Sie Ihre Übertragung einrichten:
Wenn du eine Testphase für die Übertragung möchtest, kannst du die Property
contentDetails.monitorStream.enableMonitorStream
auftrue
und die PropertycontentDetails.enableAutoStart
auffalse
setzen. Nur so kannst du die Videoübertragung sehen, ohne dass andere Zuschauer den Broadcast sehen können. Dies sind die Standardwerte für beide Properties.Wenn du einen Verweis aus einer aufgezeichneten Übertragung erstellen möchtest, musst du die Property
contentDetails.recordFromStart
der Übertragung auftrue
setzen. Wenn du das aufgezeichnete Video sofort nach dem Ende der Übertragung zur Verfügung stellen möchtest, musst du auch die PropertycontentDetails.enableDvr
auftrue
setzen. Beide Properties haben den Standardwerttrue
.Du kannst alle
contentDetails
-Properties aktualisieren, solange der Status deines Broadcasts nochcreated
oderready
lautet.Sie können die geplante Startzeit und die geplante Endzeit der Übertragung aktualisieren, solange der Übertragungsstatus
created
,ready
odertesting
ist.Der Titel, die Beschreibung und der Datenschutzstatus der Übertragung sowie andere Metadatenfelder, die Teil der Ressource
video
sind, können jederzeit aktualisiert werden.
Hinweis:Wenn dein Video nur für bestimmte YouTube-Nutzer verfügbar sein soll, setze den Property-Wertstatus.privacyStatus
entsprechend deinen Anforderungen aufunlisted
oderprivate
.
API-Antwort verarbeiten
Wenn Sie die Methode liveBroadcasts.insert
aufrufen, enthält die API-Antwort die von Ihnen erstellte Ressource liveBroadcast
. Ihr Code sollte die id
aus dieser Ressource extrahieren und speichern. Sie benötigen diesen Wert, um die Übertragung in zukünftigen API-Anfragen zu identifizieren. Mit derselben ID können Sie auch die Ressource video
identifizieren, die der Ressource liveBroadcast
entspricht.
Schritt 1.2: Stream erstellen
Mit einer liveStream
-Ressource kannst du dein Video an YouTube übertragen und die übertragenen Inhalte beschreiben. Jede Übertragung muss genau einem Stream zugeordnet sein.
Rufen Sie die Methode liveStreams.insert
auf, um den Videostream für Ihr Ereignis zu erstellen. Beim Erstellen des Streams müssen Sie Werte für die unten aufgeführten Attribute festlegen:
Mit Ausnahme des Streamtitels können diese Werte nach dem Erstellen des Streams nicht mehr aktualisiert werden. Wenn Sie sie ändern möchten, müssen Sie einen anderen Stream erstellen, indem Sie diesen Schritt wiederholen. Dieser Vorgang wird in Schritt 3.5 weiter unten in diesem Dokument ausführlicher beschrieben.
Sie können auch Werte für die folgenden Properties festlegen:
snippet.description
: Wie der Streamtitel kann die Streambeschreibung nach dem Erstellen des Streams aktualisiert werden. Weder der Titel noch die Beschreibung sind für YouTube-Nutzer sichtbar.contentDetails.isReusable
: Gibt an, ob der Stream wiederverwendbar ist. Er kann also an mehrere Übertragungen gebunden werden. Der Wert dieses Attributs bestimmt effektiv, ob ein Kanal eine 1:1- oder 1:1-Beziehung zwischenliveBroadcast
- undliveStream
-Ressourcen hat:- Wenn du den Standardwert der Property
true
verwendest, kannst du für alle Übertragungen eines Kanals dieselbeliveStream
-Ressource verwenden. Das bedeutet, dass Sie diesen Schritt (1.2) nicht für jede Übertragung wiederholen müssen. Stattdessen können Sie die Stream-ID einfach für nachfolgende Übertragungen wiederverwenden. - Wenn Sie den Attributwert auf
false
festlegen, müssen Sie für jede Übertragung einen neuen Stream erstellen.
- Wenn du den Standardwert der Property
Nachdem Sie den API-Anfragestream gesendet haben, enthält die API-Antwort die von Ihnen erstellte Ressource liveStream
. Ihr Code sollte die id
aus dieser Ressource extrahieren und speichern. Sie benötigen diesen Wert, um den Stream in zukünftigen API-Anfragen zu identifizieren.
Schritt 1.3: Übertragung an den Stream binden
Nachdem Sie die liveBroadcast
- und liveStream
-Ressourcen erstellt haben, müssen Sie die beiden nun mit der Methode liveBroadcasts.bind
verknüpfen. Durch diese Aktion werden die Videobits verknüpft, die du zusammen mit der Ereignisübertragung für dieses Video an YouTube sendest.
Legen Sie beim Aufrufen der Methode liveBroadcasts.bind
den Parameter id
auf die in Schritt 1.1 erhaltene Broadcast-ID und den Parameter streamId
auf die in Schritt 1.2 erhaltene Stream-ID fest.
Phase 2: Anspruch auf Inhalte erheben
Wenn während der Übertragung Anzeigen eingeblendet werden sollen, musst du vor Beginn der Veranstaltung Anspruch auf das Video erheben. In den folgenden Schritten wird dieser Vorgang erläutert. Alle in dieser Phase beschriebenen API-Aufrufe sind in der Content API von YouTube definiert.
Schritt 2.1: Asset erstellen
Eine asset
-Ressource stellt eine Eigenschaft von Informationen dar. In diesem Fall ist das Asset Ihre Übertragung. Rufen Sie die Methode assets.insert
auf, um Ihr Asset zu erstellen.
Die API-Antwort enthält die von Ihnen erstellte Ressource asset
. Ihr Code sollte die id
aus dieser Ressource extrahieren und speichern, da Sie diesen Wert benötigen, um das Asset in zukünftigen API-Anfragen zu identifizieren.
Schritt 2.2: Eigentumsrechte an dem Asset definieren
Die Daten zu den Eigentumsrechten eines Assets identifizieren sowohl die Rechteinhaber als auch die Gebiete, in denen sie der Rechteinhaber sind. YouTube verwendet diese Daten, um zu bestimmen, wo der Rechteinhaber die Richtlinie für ein Video mit Ansprüchen festlegen kann.
Wenn du beispielsweise das Recht hast, eine Veranstaltung in den USA zu übertragen, und ein anderer Sender die gleichen Rechte für Kanada hat, kannst du für das Übertragungsvideo und für von Nutzern hochgeladene Videos, die mit dem Übertragungsvideo übereinstimmen, unterschiedliche Richtlinien definieren. Deine Abgleichsrichtlinie wird auf übereinstimmende von Nutzern hochgeladene Videos in den USA angewendet, während die Richtlinie des anderen Rechteinhabers für übereinstimmende Videos in Kanada gilt.
Rufe mit der Methode ownership.update
die Gebiete der Eigentumsrechte für das Asset auf.
Legen Sie in dieser Anfrage den Parameter assetId
auf den id
fest, den Sie in Schritt 2.1 gespeichert haben.
Schritt 2.3: Abgleichsrichtlinie des Assets festlegen
In der Abgleichsrichtlinie eines Assets wird erklärt, was YouTube tun soll, wenn ein Nutzer ein Video hochlädt, das mit einer mit dem Asset verknüpften Referenz übereinstimmt. In diesem Fall gibt die Abgleichsrichtlinie an, wie YouTube mit einem hochgeladenen Video umgehen soll, das mit deiner Liveübertragung übereinstimmt.
Hinweis: Du solltest eine Abgleichsrichtlinie festlegen, wenn du eine Referenz aus deinem Broadcast erstellen möchtest und anhand dieser Referenz von Nutzern hochgeladene Videos erkennst, die mit deiner Übertragung übereinstimmen. Ansonsten können Sie diesen Schritt überspringen.
Zum Festlegen der Abgleichsrichtlinie müssen Sie zuerst die Richtlinie festlegen, die Sie anwenden möchten. Mit der Methode policies.list
können Sie eine Liste der vorhandenen Richtlinien abrufen. Sie können auch eine neue Richtlinie definieren, indem Sie die Methode policies.insert
aufrufen. In beiden Fällen müssen Sie den id
der Richtlinie erfassen, die Sie anwenden möchten.
Nachdem Sie die Richtlinie identifiziert haben, rufen Sie die Methode assetMatchPolicy.update
auf. Legen Sie in dieser Anfrage den Parameter assetId
auf id
fest, den Sie in Schritt 2.1 gespeichert haben.
Schritt 2.4: Anspruch auf das Video erheben
In diesem Schritt erstellen Sie einen Anspruch, der das Video, das Sie übertragen möchten, mit dem in Schritt 2.1 erstellten Asset verknüpft. Der Anspruch legt eine Richtlinie fest, die nur für dein Übertragungsvideo gilt. Von Nutzern hochgeladene Videos, die deinem Übertragungsvideo entsprechen, unterliegen der im vorherigen Schritt festgelegten Abgleichsrichtlinie.
Rufen Sie zum Erstellen eines Anspruchs die Methode claims.insert
auf. In der Ressource claim
, die Sie einfügen, müssen Sie Werte für die folgenden Attribute festlegen:
assetId
: Sie haben diesen Wert in Schritt 2.1 erhalten.videoId
: Dies ist die Übertragungs-ID, die Sie in Schritt 1.1 erhalten haben.policy
: Dies ist einepolicy
-Ressource. Sie können eine vorhandene Richtlinie anwenden. Setzen Sie dazu das Attributid
der Ressource auf die ID der vorhandenen Richtlinie. Im vorherigen Schritt wird erläutert, wie die ID einer vorhandenen Richtlinie abgerufen wird.contentType
: Setzen Sie diesen Wert aufaudiovisual
.
API-Antwort verarbeiten
Wenn Sie die Anforderung einfügen, enthält die API-Antwort die von Ihnen erstellte Ressource claim
. Ihr Code sollte die id
aus dieser Ressource extrahieren und speichern. Du benötigst diesen Wert später, um eine Referenz aus deinem verarbeiteten Video zu erstellen.
Schritt 2.5: Anzeigeneinstellungen für die Übertragung aktualisieren
Du musst die Werbeoptionen für dein Video festlegen, wenn du entweder eine Pre-Roll-Anzeige schalten möchtest, wenn Zuschauer die Übertragung starten, oder in den Pausen.
- Wenn du Pre-Roll-Anzeigen für deine Übertragung aktivierst, sehen alle Zuschauer eine Anzeige, wenn sie mit der Übertragung beginnen, auch wenn sie die Wiedergabe mitten in der Übertragung starten.
- Wenn du Mid-Roll-Anzeigen für deine Übertragung aktivierst, kannst du während der Übertragung Werbepunkte einfügen.
Rufen Sie zum Aktivieren von Anzeigen die Methode videoAdvertisingOptions.update
auf. Legen Sie in der Anfrage den Parameter videoId
auf die id
der Übertragung fest, die Sie in Schritt 1.1 erhalten haben. Verwenden Sie das Attribut adFormats[]
der Ressource videoAdvertisingOption
, um die Anzeigenformate (preroll
, midroll
oder postroll
) zu identifizieren, die Sie aktivieren möchten.
Phase 3: Testen
In dieser Phase betten Sie einen Player ein, der den Monitor-Stream für Ihren Broadcast anzeigt, damit Sie die Videowiedergabe testen können. Der Überwachungsstream ist ein privater Stream, mit dem du dir eine Vorschau des übertragenen Videos ansehen kannst, wie es YouTube-Zuschauern angezeigt wird.
Sie können die Videoübertragung nur testen, wenn der zugehörige Überwachungsstream aktiviert ist. Standardmäßig sind die Überwachungsstreams von Übertragungen aktiviert. Sie können den Monitoringstream eines Broadcasts deaktivieren, indem Sie beim Erstellen oder Aktualisieren der Übertragung die Property contentDetails.monitorStream.enableMonitorStream auf false
setzen.
Schritt 3.1: Streamingstream-Player einbetten
Rufen Sie die Übertragung mit der Methode liveBroadcasts.list
ab und extrahieren Sie den Wert der Eigenschaft contentDetails.streamDetails.monitorStreamEmbedHtml
. Dieser Wert enthält den HTML-Code, den du in einen YouTube-Player einbetten musst, der deinen Monitorstream anzeigt.
Schritt 3.2: Video starten
Starten Sie die Übertragung des Videos in Ihrem Videostream.
Schritt 3.3: Prüfen, ob der Videostream aktiv ist
Rufen Sie die Methode liveStreams.list
auf, um die Ressource liveStream
abzurufen, die der Übertragung zugeordnet ist. Bestätige, dass das Attribut status.streamStatus
den Wert active
hat. Das bedeutet, dass YouTube-Server Daten von deinem Encoder korrekt empfangen.
Schritt 3.4: Übertragungsstatus auf Test umstellen
Rufen Sie die Methode liveBroadcasts.transition
auf, um den Status des Broadcasts zu aktualisieren. Legen Sie den Parameterwert id
auf die in Schritt 1.1 erhaltene Übertragungs-ID und den Parameterwert broadcastStatus
auf testing
fest.
Nachdem Sie die Methode liveBroadcasts.transition
aufgerufen haben, kann es einige Sekunden oder sogar bis zu einer Minute dauern, bis dieser Übergang abgeschlossen ist. Bis dahin sollten Sie die API abfragen, um den Status der Übertragung zu prüfen. Bis die Umstellung abgeschlossen ist, lautet der Übertragungsstatus testStarting
. Der Status ist testing
, sobald die Umstellung abgeschlossen ist.
Schritt 3.5: Tests abschließen
Wenn der Test erfolgreich war, können Sie mit Phase 4 fortfahren. In einigen Fällen sind jedoch weitere Tests erforderlich. Wenn deine Tests beispielsweise zeigen, dass der Videostream nicht richtig konfiguriert ist, musst du das Problem beheben, bevor du mit der Übertragung fortfahren kannst.
Wenn der Videostream nicht richtig konfiguriert ist, müssen Sie die Bindung des vorhandenen Streams aufheben (und ihn löschen) und einen neuen Stream erstellen. Ein Stream kann zum Beispiel nicht richtig konfiguriert sein, wenn das falsche Videoformat angegeben ist.
-
Wenn Sie die Bindung des Videostreams aufheben möchten, rufen Sie die Methode
liveBroadcasts.bind
aus Schritt 1.3 auf. Legen Sie in der API-Anfrage den Parameterid
auf den in Schritt 1.1 angegebenenid
fest. Geben Sie den ParameterstreamId
nicht in der Anfrage an. -
Rufen Sie die Methode
liveStreams.delete
auf, um den Videostream zu löschen. Legen Sie in der Anfrage den Parameterid
auf den in Schritt 1.2 erhaltenenid
fest. -
Wiederholen Sie Schritt 1.2, um eine neue, ordnungsgemäß konfigurierte
liveStream
-Ressource zu erstellen. Wiederholen Sie dann Schritt 1.3, um den neuen Stream an Ihre Übertragung zu binden, und wiederholen Sie Schritt 3.1 bis 3.3, um den neuen Stream zu testen.
Schritt 3.6: autoStart
- und autoStop
-Properties aktivieren
Nachdem Sie die Testphase erfolgreich abgeschlossen haben, können Sie die Attribute contentDetails.enableAutoStart
und contentDetails.enableAutoStop
der Übertragung auf true
setzen, bevor die Übertragung beginnt. Diese Attribute können vor dem Testen nicht auf true
festgelegt werden, da der Test dazu führen würde, dass die Übertragung beginnt.
Phase 4: Übertragung
Während dieser Phase ist dein Video für dein Publikum sichtbar.
Schritt 4.1: Video starten
Starten Sie die Übertragung des Videos in Ihrem Videostream.
Schritt 4.2: Prüfen, ob der Videostream aktiv ist
Rufen Sie die Methode liveStreams.list
auf, um die Ressource liveStream
abzurufen, die der Übertragung zugeordnet ist. Bestätige, dass das Attribut status.streamStatus
den Wert active
hat. Das bedeutet, dass YouTube-Server Daten von deinem Encoder korrekt empfangen.
Schritt 4.3: Übertragungsstatus auf „Live“ umstellen
Wichtig: Durch diesen Schritt wird dein Video für dein Publikum sichtbar.
Rufen Sie die Methode liveBroadcasts.transition
auf, um den Status des Broadcasts zu aktualisieren. Legen Sie den Parameterwert id
auf die in Schritt 1.1 erhaltene Übertragungs-ID und den Parameterwert broadcastStatus
auf live
fest.
Wenn Sie das Attribut contentDetails.enableAutoStart
der Ressource liveBroadcast
auf true
festlegen, müssen Sie die Methode liveBroadcasts.transition
nicht aufrufen.
Nach diesem API-Aufruf oder wenn Sie das Attribut contentDetails.enableAutoStart
nach Beginn des Streamings auf true
gesetzt haben, müssen Sie in der Regel fünf bis zehn Sekunden warten, bis dieser Übergang abgeschlossen ist. Die Umstellung kann bis zu einer Minute dauern. Bis dahin sollten Sie die API abfragen, um den Status der Übertragung zu prüfen. Bis die Umstellung abgeschlossen ist, lautet der Übertragungsstatus liveStarting
. Der Status lautet live
, sobald die Umstellung abgeschlossen ist und die Zuschauer Ihren Sender ab diesem Punkt im Monitorstream ansehen können.
Beachten Sie die folgenden Auswirkungen dieses Befehls:
- Wenn Sie den Überwachungsstream für Ihre Übertragung aktiviert haben (siehe Schritt 3.1), können Sie ihn in einem eingebetteten Player sehen.
- Wenn du einen Wert für die
contentDetails.streamDetails.broadcastStreamDelayMs
-Property der Übertragung festgelegt hast, verzögert sich der Broadcast-Stream, der für andere Zuschauer sichtbar ist, um diesen Zeitraum.
Schritt 4.4: Werbeunterbrechungen in der Übertragung einfügen
Rufen Sie die Methode liveBroadcasts.cuepoint
auf, um einen Cue-Punkt einzufügen. Der Cue-Punkt kann eine Werbeunterbrechung auslösen. Legen Sie in der Ressource cuepoint
im Anfragetext das Attribut durationSecs
auf die gewünschte Länge des Abschnitts (in Sekunden) fest, den Sie anzeigen möchten. Der Standardwert ist 30
.
YouTube versucht aktuell, im Videoplayer eine Anzeige für alle Zuschauer abzuspielen, die sich die Übertragung angesehen haben, als der Anzeigenreferenzpunkt eingefügt wurde. Ob eine Anzeige wiedergegeben wird, hängt von einer Vielzahl von Faktoren ab, z. B. der Anzeigenverfügbarkeit und dem Verlauf der Anzeigenaufrufe. Zuschauer, die eine Werbeunterbrechung erhalten haben, kehren nach Ende der Werbeunterbrechung zur Übertragung zurück, während Zuschauer, die keine Anzeige sehen, während der Pause weiterhin den Broadcast-Stream ansehen.
Im Leitfaden Erste Schritte findest du weitere Informationen zur Wiedergabe während der Werbeunterbrechung einer Liveübertragung.
Phase 5: Übertragung beenden
Schritt 5.1: Streaming beenden
Damit ist der Test des Liveübertragungssystems von YouTube abgeschlossen.
Schritt 5.2: Übertragungsstatus umstellen
Wenn Sie die Übertragung beenden möchten, rufen Sie die Methode liveBroadcasts.transition
der API auf, um den Status der Übertragung zu aktualisieren. Legen Sie den Parameterwert id
auf die in Schritt 1.1 erhaltene Broadcast-ID und den Parameterwert broadcastStatus
auf complete
fest.
Wenn du die contentDetails.recordFromStart
- und contentDetails.enableDvr
-Eigenschaften der Übertragung auf true
gesetzt hast, können sich deine Zuschauer die Live-Veranstaltung sofort ansehen, wenn die Live-Veranstaltung endet.
Phase 6: Referenz erstellen
Sobald die Live-Aufzeichnung abgeschlossen ist, kannst du aus dem aufgezeichneten Video eine Referenz erstellen. Diese Aktion weist YouTube an, nach von Nutzern hochgeladenen Videos zu suchen, die der Übertragung entsprechen, und diese gemäß der in Schritt 2.3 festgelegten Abgleichsrichtlinie zu verarbeiten.
Wichtig:Zum Erstellen der Referenz musst du das Attribut contentDetails.recordFromStart
der Übertragung auf true
setzen.
Schritt 6.1: Daten-API für den Videostatus abfragen
YouTube muss die Verarbeitung eines übertragenen oder hochgeladenen Videos abschließen, bevor du eine Referenz aus diesem Video erstellen kannst. Um herauszufinden, ob das Video verarbeitet wurde, fragen Sie die Methode videos.list
der YouTube Data API ab und setzen Sie den Parameter part
auf status
und den Parameter id
auf die Übertragungs-ID, die Sie in Schritt 1.1 gespeichert haben.
Die API-Antwort auf Ihre Abfrageanfrage enthält die Ressource video
.
Wenn die Eigenschaft status.uploadStatus der Ressource processed
lautet, fahren Sie mit Schritt 6.2 fort.
Schritt 6.2: Referenz aus dem verarbeiteten Video erstellen
Rufe zum Erstellen deiner Referenz die Methode references.insert
der Content ID API auf und setze den Parameter claimId
auf die Anspruchs-ID, die du in Schritt 2.4 gespeichert hast.
Übermittlung von Content ID-Inhalten
Einige YouTube-Partner können vor der Übertragung in den testing
-Status eine Referenz erstellen. Diese Funktion ist allerdings nicht für alle Partner verfügbar. Dabei generiert und aktualisiert YouTube die Referenz aus dem Live-Stream der Live-Veranstaltung, während die Übertragung läuft. Außerdem sucht YouTube während der Übertragung nach übereinstimmenden, von Nutzern hochgeladenen Videos. Durch das Erstellen einer Referenz vor Beginn einer Übertragung wird die Aufzeichnung für die Übertragung automatisch aktiviert und die Aufzeichnung kann nicht deaktiviert werden, nachdem die Referenz erstellt wurde.
Aktiviere die in Schritt 6.2 beschriebene Aktion, nachdem du in Schritt 2.4 Anspruch auf dein Video erhoben hast, um die Übertragung für die Content ID-Übertragung zu aktivieren.
Wenn Ihr Partnerkonto nicht berechtigt ist, eine Referenz für eine Liveübertragung vor der Übertragung zu erstellen, gibt die API den Fehler fingerprintingNotAllowed
zurück. In diesem Fall müssen Sie wie in den Schritten 6.1 und 6.2 oben beschrieben warten, bis die Übertragung abgeschlossen ist, bevor Sie die Referenz erstellen.