Das Leben einer Übertragung

Einführung

In diesem Dokument wird der Lebenszyklus einer Liveübertragung auf YouTube beschrieben, die mit der YouTube Live Streaming API und der YouTube Content ID API erstellt und verwaltet wird.

Ressourcen und Ressourcentypen

Wie im Leitfaden für den Einstieg erläutert, ist eine Ressource ein individuelles Datenobjekt mit einer eindeutigen ID. Zum Erstellen und Verwalten von Live-Events auf YouTube verwendest du verschiedene Ressourcentypen, die entweder in der YouTube Data API oder der YouTube Content ID API definiert sind. Die unter dem Header YouTube Live Streaming API aufgeführten Ressourcen sind technisch in den anderen APIs definiert, werden aber separat aufgeführt, da sie nur für Live-Übertragungen verwendet werden.

YouTube Live Streaming API-Ressourcen

YouTube Data API-Ressourcen

YouTube Content ID API-Ressourcen

Livestream erstellen und verwalten

In den folgenden Schritten wird erläutert, wie du ein Live-Event auf YouTube erstellst und verwaltest. Die Schritte sind in die folgenden Phasen unterteilt:

  1. Übertragung einrichten
  2. Inhalte beanspruchen
  3. Test
  4. Nachricht an alle
  5. Übertragung beenden
  6. Verweis erstellen

Phase 1: Übertragung einrichten

Schritt 1.1: Broadcast erstellen

Rufen Sie die Methode liveBroadcasts.insert auf, um Ihre Übertragung in den YouTube-Zeitplan für Live-Veranstaltungen aufzunehmen. Für die liveBroadcast-Ressource, die Sie einfügen, müssen Werte für die unten aufgeführten Attribute definiert werden.

Beachte beim Einrichten deines Livestreams die folgenden Richtlinien:

  • Wenn Sie eine Testphase für Ihre Übertragung einrichten möchten, in der Sie Ihre Videoübertragung ansehen können, ohne dass andere Zuschauer sie sehen können, müssen Sie die Property contentDetails.monitorStream.enableMonitorStream auf true und die Property contentDetails.enableAutoStart auf false festlegen. Das sind die Standardwerte für beide Properties.

  • Wenn Sie eine Referenz aus Ihrer aufgezeichneten Übertragung erstellen möchten, müssen Sie die Eigenschaft contentDetails.recordFromStart der Übertragung auf true festlegen. Wenn das aufgezeichnete Video sofort nach dem Ende der Übertragung zur Wiedergabe verfügbar sein soll, müssen Sie die Property contentDetails.enableDvr auf true festlegen. Beide Properties haben den Standardwert true.

  • Du kannst alle contentDetails-Attribute aktualisieren, solange der Status deiner Übertragung created oder ready ist.

  • Du kannst die geplante Start- und Endzeit des Livestreams aktualisieren, solange der Status des Livestreams created, ready oder testing ist.

  • Titel, Beschreibung, Datenschutzstatus und andere Metadatenfelder der Übertragung, die Teil der video-Ressource der Übertragung sind, können jederzeit aktualisiert werden.

    Hinweis:Wenn dein Video nur für bestimmte YouTube-Nutzer verfügbar sein soll, lege den Wert der Property status.privacyStatus entsprechend deinen Anforderungen auf unlisted oder private fest.

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. Sie können die video-Ressource, die der liveBroadcast-Ressource entspricht, auch mit derselben ID identifizieren.

Schritt 1.2: Stream erstellen

Mit einer liveStream-Ressource können Sie Ihr Video an YouTube übertragen. Außerdem werden die übertragenen Inhalte beschrieben. Jede Übertragung muss genau einem Stream zugeordnet sein.

Rufen Sie die Methode liveStreams.insert auf, um den Videostream für Ihr Event zu erstellen. Beim Erstellen des Streams müssen Sie Werte für die unten aufgeführten Attribute festlegen:

Mit Ausnahme des Titels des Streams 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 Prozess wird später in diesem Dokument in Schritt 3.5 genauer beschrieben.

Sie haben auch die Möglichkeit, Werte für die folgenden Eigenschaften festzulegen:

  • snippet.description: Wie der Streamtitel kann auch 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. Das bedeutet, dass er an mehrere Übertragungen gebunden werden kann. Der Wert dieser Eigenschaft bestimmt, ob ein Channel eine n:1- oder 1:1-Beziehung zwischen liveBroadcast- und liveStream-Ressourcen hat:

    • Wenn Sie den Standardwert true der Eigenschaft verwenden, können Sie dieselbe liveStream-Ressource für alle Übertragungen eines Kanals verwenden. Das bedeutet, dass du diesen Schritt (1.2) nicht für jede Übertragung wiederholen musst. Stattdessen kannst du die Stream-ID für nachfolgende Übertragungen einfach wiederverwenden.
    • Wenn Sie den Attributwert auf false festlegen, müssen Sie für jede Übertragung einen neuen Stream erstellen.

Nachdem Sie die API-Anfrage für den Stream gesendet haben, enthält die API-Antwort die von Ihnen erstellte liveStream-Ressource. 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: Sendung mit dem Stream verknüpfen

Nachdem Sie die Ressourcen liveBroadcast und liveStream erstellt haben, müssen Sie sie mit der Methode liveBroadcasts.bind verknüpfen. Durch diese Aktion werden die Videobits, die Sie an YouTube übertragen, mit der Eventübertragung für dieses Video verknüpft.

Legen Sie beim Aufrufen der Methode liveBroadcasts.bind den Parameter id auf die in Schritt 1.1 abgerufene Broadcast-ID und den Parameter streamId auf die in Schritt 1.2 abgerufene Stream-ID fest.

Phase 2: Inhalte beanspruchen

Wenn du während deiner Übertragung Anzeigen einblenden möchtest, musst du das Übertragungsvideo vor Beginn des Events beanspruchen. Die folgenden Schritte erläutern diesen Vorgang. Alle in dieser Phase beschriebenen API-Aufrufe sind in der YouTube Content ID API definiert.

Schritt 2.1: Asset erstellen

Eine asset-Ressource stellt ein Stück geistiges Eigentum dar. In diesem Fall ist das Asset deine Übertragung. Rufen Sie die Methode assets.insert auf, um Ihr Asset zu erstellen.

Die API-Antwort enthält die von Ihnen erstellte asset-Ressource. 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: Inhaberschaft des Assets definieren

Die Eigentumsdaten eines Assets geben die Rechteinhaber eines Assets sowie die Gebiete an, in denen sie die Eigentumsrechte an dem Asset besitzen. YouTube verwendet diese Daten, um zu ermitteln, wo ein Rechteinhaber die Richtlinie für ein Video, auf das Anspruch erhoben wurde, festlegen kann.

Wenn du beispielsweise das Recht hast, ein Event in den USA zu übertragen, und ein anderer Sender die gleichen Rechte für Kanada besitzt, könnt ihr jeweils unterschiedliche Richtlinien für das übertragene Video und für von Nutzern hochgeladene Videos definieren, die mit dem übertragenen Video übereinstimmen. Deine Abgleichsrichtlinie wird auf übereinstimmende, von Nutzern hochgeladene Videos in den USA angewendet, während die Richtlinie des anderen Inhabers auf übereinstimmende Videos in Kanada angewendet wird.

Rufen Sie die Methode ownership.update auf, um die Gebiete zu definieren, in denen Sie über die Eigentumsrechte an dem Asset verfügen. 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 beschrieben, was YouTube tun soll, wenn ein Nutzer ein Video hochlädt, das mit einer Referenz übereinstimmt, die mit dem Asset verknüpft ist. In diesem Fall wird in der Abgleichsrichtlinie angegeben, wie YouTube mit einem hochgeladenen Video verfahren soll, das mit deiner Liveübertragung übereinstimmt.

Hinweis:Du solltest eine Abgleichsrichtlinie festlegen, wenn du eine Referenz aus deinem Livestream erstellen und damit von Nutzern hochgeladene Videos identifizieren möchtest, die mit deinem Livestream übereinstimmen. Ansonsten können Sie diesen Schritt überspringen.

Um die Abgleichsrichtlinie festzulegen, müssen Sie zuerst die Richtlinie identifizieren, die Sie anwenden möchten. Sie können eine Liste der vorhandenen Richtlinien abrufen, indem Sie die Methode policies.list aufrufen. Alternativ können Sie eine neue Richtlinie definieren, indem Sie die Methode policies.insert aufrufen. In beiden Fällen müssen Sie die id der Richtlinie erfassen, die Sie anwenden möchten.

Rufen Sie die Methode assetMatchPolicy.update auf, nachdem Sie die Richtlinie identifiziert haben. Legen Sie in dieser Anfrage den Parameter assetId auf den id fest, den Sie in Schritt 2.1 gespeichert haben.

Schritt 2.4: Anspruch auf dein Video erheben

In diesem Schritt erstellen Sie einen Anspruch, der das Video, das Sie übertragen möchten, mit dem Asset verknüpft, das Sie in Schritt 2.1 erstellt haben. Durch den Anspruch wird eine Richtlinie festgelegt, die nur für dein übertragenes Video gilt. Von Nutzern hochgeladene Videos, die mit deinem Broadcast-Video übereinstimmen, fallen unter die im vorherigen Schritt festgelegte Abgleichsrichtlinie.

Rufen Sie zum Erstellen eines Anspruchs die Methode claims.insert auf. In der claim-Ressource, die Sie einfügen, müssen Sie Werte für die folgenden Attribute festlegen:

  • assetId: Diesen Wert haben Sie in Schritt 2.1 erhalten.
  • videoId: Das ist die Broadcast-ID, die Sie in Schritt 1.1 erhalten haben.
  • policy – Dies ist eine policy-Ressource. Sie können eine vorhandene Richtlinie anwenden, indem Sie die id-Eigenschaft der Ressource auf die ID der vorhandenen Richtlinie festlegen. Im vorherigen Schritt wurde beschrieben, wie Sie die ID einer vorhandenen Richtlinie abrufen.
  • contentType: Legen Sie diesen Wert auf audiovisual fest.

API-Antwort verarbeiten

Wenn Sie den Anspruch einfügen, enthält die API-Antwort die von Ihnen erstellte claim-Ressource. Ihr Code sollte die id aus dieser Ressource extrahieren und speichern. Sie verwenden diesen Wert später, um eine Referenz aus Ihrem verarbeiteten Video zu erstellen.

Schritt 2.5: Werbeeinstellungen für die Übertragung aktualisieren

Du musst die Werbeoptionen für dein Video festlegen, wenn du entweder eine Preroll-Anzeige schalten möchtest, wenn Zuschauer mit der Wiedergabe deines Streams beginnen, oder wenn du während Pausen in deinem Stream Anzeigen schalten möchtest.

  • Wenn du Preroll-Anzeigen für deinen Stream aktivierst, sehen alle Zuschauer eine Anzeige, wenn sie sich deinen Stream ansehen, auch wenn sie ihn erst in der Mitte des Streams starten.
  • Wenn du Mid-Roll-Anzeigen für deine Übertragung aktivierst, kannst du während der Übertragung Anzeigen-Cuepoints einfügen.

Rufen Sie die Methode videoAdvertisingOptions.update auf, um Anzeigen zu aktivieren. Legen Sie in Ihrer Anfrage den Parameter videoId auf die Broadcast-id fest, die Sie in Schritt 1.1 erhalten haben. Verwenden Sie die Eigenschaft 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, in dem der Monitorstream für Ihre Übertragung angezeigt wird, damit Sie das Zuschauererlebnis testen können. Der Monitor-Stream ist ein privater Stream, in dem du dir eine Vorschau des Broadcast-Videos ansehen kannst, so wie es YouTube-Zuschauern angezeigt wird.

Du kannst deinen Videostream nur testen, wenn der Monitorstream aktiviert ist. Standardmäßig sind Monitor-Streams für Übertragungen aktiviert. Du kannst den Monitorstream einer Übertragung deaktivieren, indem du beim Erstellen oder Aktualisieren der Übertragung das Attribut contentDetails.monitorStream.enableMonitorStream auf false setzt.

Schritt 3.1: Monitorstream-Player einbetten

Rufen Sie Ihre Übertragung mit der Methode liveBroadcasts.list ab und extrahieren Sie den Wert des Attributs contentDetails.streamDetails.monitorStreamEmbedHtml. Dieser Wert enthält den HTML-Code, den Sie zum Einbetten eines YouTube-Players benötigen, in dem Ihr Monitorstream angezeigt wird.

Schritt 3.2: Video starten

Starte die Übertragung von Video in deinem Videostream.

Schritt 3.3: Videostream aktivieren

Rufen Sie die Methode liveStreams.list auf, um die liveStream-Ressource abzurufen, die mit Ihrer Übertragung verknüpft ist. Prüfe, ob der Wert der Property status.streamStatus active ist. Das bedeutet, dass die YouTube-Server Daten von deinem Encoder korrekt empfangen.

Schritt 3.4: Status der Übertragung auf „Testen“ umstellen

Rufen Sie die Methode liveBroadcasts.transition auf, um den Status der Übertragung zu aktualisieren. Legen Sie den Parameterwert id auf die in Schritt 1.1 abgerufene Broadcast-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 der Übergang abgeschlossen ist. Während dieser Zeit sollten Sie die API abfragen, um den Status der Übertragung zu prüfen. Bis die Umstellung abgeschlossen ist, lautet der Status der Übertragung testStarting. Der Status ist testing, sobald die Umstellung abgeschlossen ist.

Schritt 3.5: Tests abschließen

Wenn der Test reibungslos verlaufen ist, können Sie mit Phase 4 fortfahren. In einigen Fällen müssen Sie jedoch möglicherweise weitere Tests durchführen. Wenn bei Ihren Tests beispielsweise festgestellt wird, dass der Videostream nicht richtig konfiguriert ist, müssen Sie das Problem beheben, bevor Sie mit der Übertragung fortfahren.

Wenn der Videostream nicht richtig konfiguriert ist, musst du die Verknüpfung des vorhandenen Streams aufheben und ihn löschen und dann einen neuen Stream erstellen. Ein Stream ist beispielsweise möglicherweise nicht richtig konfiguriert, wenn das falsche Videoformat angegeben ist.

  1. Rufen Sie zum Aufheben der Bindung des Videostreams die Methode liveBroadcasts.bind aus Schritt 1.3 auf. Legen Sie in der API-Anfrage den Parameter id auf den in Schritt 1.1 abgerufenen id fest. Fügen Sie den Parameter streamId nicht in die Anfrage ein.

  2. Rufen Sie zum Löschen des Videostreams die Methode liveStreams.delete auf. Legen Sie in der Anfrage den Parameter id auf den in Schritt 1.2 abgerufenen id fest.

  3. Wiederholen Sie Schritt 1.2, um eine neue, richtig konfigurierte liveStream-Ressource zu erstellen. Wiederhole dann Schritt 1.3, um den neuen Stream an deine Übertragung zu binden, und die Schritte 3.1 bis 3.3, um den neuen Stream zu testen.

Schritt 3.6: autoStart- und autoStop-Properties aktivieren

Nachdem du die Testphase erfolgreich abgeschlossen hast, kannst du die Eigenschaften contentDetails.enableAutoStart und contentDetails.enableAutoStop der Übertragung vor Beginn der eigentlichen Übertragung auf true festlegen. Diese Eigenschaften können vor der Testphase nicht auf true gesetzt werden, da der Test tatsächlich dazu führen würde, dass die Übertragung gestartet wird.

Phase 4: Übertragung

In dieser Phase können deine Zuschauer dein Video ansehen.

Schritt 4.1: Video starten

Starte die Übertragung von Video in deinem Videostream.

Schritt 4.2: Videostream aktivieren

Rufen Sie die Methode liveStreams.list auf, um die liveStream-Ressource abzurufen, die mit Ihrer Übertragung verknüpft ist. Prüfe, ob der Wert der Property status.streamStatus active ist. Das bedeutet, dass die YouTube-Server Daten von deinem Encoder korrekt empfangen.

Schritt 4.3: Status der Übertragung auf „Live“ umstellen

Wichtig:Durch diesen Schritt wird dein Video für deine Zuschauer sichtbar.

Rufen Sie die Methode liveBroadcasts.transition auf, um den Status der Übertragung zu aktualisieren. Legen Sie den Parameterwert id auf die in Schritt 1.1 abgerufene Broadcast-ID und den Parameterwert broadcastStatus auf live fest.

Wenn Sie die Property contentDetails.enableAutoStart der liveBroadcast-Ressource auf true festlegen, müssen Sie die Methode liveBroadcasts.transition nicht aufrufen.

Nachdem Sie diesen API-Aufruf ausgeführt haben oder, wenn Sie die Eigenschaft contentDetails.enableAutoStart auf true festgelegt haben, nachdem Sie mit dem Streamen begonnen haben, müssen Sie in der Regel 5 bis 10 Sekunden warten, bis der Übergang abgeschlossen ist. Die Umstellung kann bis zu einer Minute dauern. Während dieser Zeit sollten Sie die API abfragen, um den Status der Übertragung zu prüfen. Bis zur Umstellung wird der Status der Übertragung als liveStarting angezeigt. Der Status wird auf live aktualisiert, sobald die Übergangsphase abgeschlossen ist und Zuschauer sich deine Übertragung ab diesem Zeitpunkt im Monitorstream ansehen können.

Beachten Sie die folgenden Auswirkungen dieses Befehls:

  • Wenn du den Monitorstream für deine Übertragung aktiviert hast (siehe Schritt 3.1), kannst du ihn in einem eingebetteten Player sehen.
  • Wenn Sie einen Wert für die contentDetails.streamDetails.broadcastStreamDelayMs-Eigenschaft der Übertragung festgelegt haben, wird der für andere Zuschauer sichtbare Übertragungsstream um diesen Zeitraum verzögert.

Schritt 4.4: Werbeunterbrechungen in die Übertragung einfügen

Rufen Sie die Methode liveBroadcasts.cuepoint auf, um einen Cuepoint einzufügen. Der Cuepoint löst möglicherweise eine Werbeunterbrechung aus. Legen Sie in der im Anfragetext angegebenen Ressource cuepoint das Attribut durationSecs auf die gewünschte Länge der Pause (in Sekunden) fest, die angezeigt werden soll. (Der Standardwert ist 30.)

Zu diesem Zeitpunkt versucht YouTube, im Videoplayer eine Anzeige für alle Zuschauer abzuspielen, die sich die Übertragung angesehen haben, als der Anzeigen-Cuepoint eingefügt wurde. Ob eine Anzeige abgespielt wird, hängt von verschiedenen Faktoren ab, z. B. von der Verfügbarkeit von Anzeigen und dem Anzeigenwiedergabeverlauf des Zuschauers. Zuschauer, die eine Werbeunterbrechung sehen, kehren zu deinem Stream zurück, wenn die Werbeunterbrechung beendet ist. Zuschauer, denen keine Werbung eingeblendet wird, sehen den Stream während der Pause weiter.

Im Leitfaden für den Einstieg findest du weitere Informationen zur Wiedergabe während einer Werbeunterbrechung in einer Liveübertragung.

Phase 5: Übertragung beenden

Schritt 5.1: Streaming beenden

Damit ist der Test des YouTube-Livestreamingsystems abgeschlossen.

Schritt 5.2: Status der Übertragung auf „Abgeschlossen“ ändern

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 für den Parameter id die Broadcast-ID aus Schritt 1.1 und für den Parameter broadcastStatus den Wert complete fest.

Wenn du die Eigenschaften contentDetails.recordFromStart und contentDetails.enableDvr der Übertragung auf true gesetzt hast, können deine Zuschauer nach dem Ende des Live-Events sofort die Wiedergabe des Live-Events ansehen.

Phase 6: Referenz erstellen

Nach Abschluss der Live-Aufzeichnung können Sie eine Referenz aus dem aufgezeichneten Video erstellen. Durch diese Aktion wird YouTube angewiesen, nach von Nutzern hochgeladenen Videos zu suchen, die mit der Übertragung übereinstimmen, und sie gemäß der in Schritt 2.3 festgelegten Abgleichsrichtlinie zu behandeln.

Wichtig:Damit du die Referenz erstellen kannst, musst du die contentDetails.recordFromStart-Eigenschaft der Übertragung auf true festgelegt haben.

Schritt 6.1: Data API nach dem Status des Videos abfragen

YouTube muss die Verarbeitung einer Übertragung oder eines hochgeladenen Videos abgeschlossen haben, bevor du daraus eine Referenz erstellen kannst. Um festzustellen, ob die Verarbeitung des Videos abgeschlossen ist, rufen Sie die Methode videos.list der YouTube Data API auf. Legen Sie den Parameter part auf status und den Parameter id auf die Broadcast-ID fest, die Sie in Schritt 1.1 gespeichert haben.

Die API-Antwort auf Ihre Polling-Anfrage enthält eine video-Ressource. Wenn der Wert des Attributs status.uploadStatus dieser Ressource processed ist, fahren Sie mit Schritt 6.2 fort.

Schritt 6.2: Referenz aus dem verarbeiteten Video erstellen

Rufen Sie zum Erstellen der Referenz die Methode references.insert der Content ID API auf und legen Sie den Parameter claimId auf die Anspruchs-ID fest, die Sie in Schritt 2.4 gespeichert haben.

Content ID-Bereitstellung für Liveinhalte

Einige YouTube-Partner können eine Referenz erstellen, bevor ihr Livestream in den Status testing wechselt. Diese Funktion ist jedoch nicht für alle Partner verfügbar. In diesem Ablauf generiert YouTube die Referenz aus dem Broadcast-Stream deiner Live-Veranstaltung und aktualisiert sie fortlaufend, während der Broadcast läuft. Außerdem sucht YouTube nach übereinstimmenden von Nutzern hochgeladenen Videos, während die Übertragung noch läuft. Wenn Sie vor Beginn eines Livestreams eine Referenz erstellen, wird die Aufzeichnung für den Livestream automatisch aktiviert. Die Aufzeichnung kann nach der Erstellung der Referenz nicht mehr deaktiviert werden.

Wenn du die Live-Content ID-Auslieferung für deine Übertragung aktivieren möchtest, führe die in Schritt 6.2 beschriebenen Aktionen aus, nachdem du dein Video in Schritt 2.4 beansprucht hast. Wenn Ihr Partnerkonto nicht für die Erstellung einer Referenz für eine Liveübertragung vor der Übertragung genehmigt wurde, gibt die API den Fehler fingerprintingNotAllowed zurück. In diesem Fall müssen Sie warten, bis die Übertragung abgeschlossen ist (siehe oben, Schritte 6.1 und 6.2), bevor Sie die Referenz erstellen können.