Das Leben einer Übertragung

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:

  1. Übertragung einrichten
  2. Anspruch auf Inhalte erheben
  3. Testen
  4. Nachricht an alle
  5. Übertragung abschließen
  6. 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 auf true und die Property contentDetails.enableAutoStart auf false 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 auf true setzen. Wenn du das aufgezeichnete Video sofort nach dem Ende der Übertragung zur Verfügung stellen möchtest, musst du auch die Property contentDetails.enableDvr auf true setzen. Beide Properties haben den Standardwert true.

  • Du kannst alle contentDetails-Properties aktualisieren, solange der Status deines Broadcasts noch created oder ready lautet.

  • Sie können die geplante Startzeit und die geplante Endzeit der Übertragung aktualisieren, solange der Übertragungsstatus created, ready oder testing 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-Wert status.privacyStatus entsprechend deinen Anforderungen auf unlisted oder private.

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 zwischen liveBroadcast- und liveStream-Ressourcen hat:

    • Wenn du den Standardwert der Property true verwendest, kannst du für alle Übertragungen eines Kanals dieselbe liveStream-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.

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 eine policy-Ressource. Sie können eine vorhandene Richtlinie anwenden. Setzen Sie dazu das Attribut id 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 auf audiovisual.

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.

  1. 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 Parameter id auf den in Schritt 1.1 angegebenen id fest. Geben Sie den Parameter streamId nicht in der Anfrage an.

  2. Rufen Sie die Methode liveStreams.delete auf, um den Videostream zu löschen. Legen Sie in der Anfrage den Parameter id auf den in Schritt 1.2 erhaltenen id fest.

  3. 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.