Push-Benachrichtigungen abonnieren

Die YouTube Data API (v3) unterstützt Push-Benachrichtigungen über PubSubHubbub, ein Server-zu-Server-Veröffentlichungs-/Abo-Protokoll für über das Web zugängliche Ressourcen. Benachrichtigungen werden über HTTP-Webhooks an Abonnenten gesendet, was wesentlich effizienter ist als auf Umfragen basierende Lösungen. Mit PubSubHubbub ermittelt Ihr Server Ereignisse nahezu in Echtzeit, ohne dass das optimale Abfrageintervall ermittelt werden muss oder Daten wiederholt abgerufen werden müssen, die sich nicht geändert haben.

Ihr PubSubHubbub-Callback-Server erhält Atom-Feed-Benachrichtigungen, wenn ein Kanal eine der folgenden Aktivitäten ausführt:

  • ein Video hochlädt
  • aktualisiert den Titel eines Videos
  • aktualisiert die Beschreibung eines Videos

So abonnieren Sie Benachrichtigungen:

  1. Richten Sie einen Rückrufserver ein, der eingehende Atom-Feed-Benachrichtigungen verarbeiten kann.

  2. Wenn Sie Push-Benachrichtigungen erhalten möchten, können Sie den Google-Hub abonnieren:

    • Legen Sie mode auf subscribe fest. Sie können den Modus auch auf unsubscribe festlegen, um ein Abo zu kündigen.

    • Legen Sie die Callback-URL auf die URL fest, die Sie in Schritt 1 eingerichtet haben.

    • Legen Sie die URL des Themas auf https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID fest, wobei CHANNEL_ID die ID des YouTube-Kanals ist, für den Sie Push-Benachrichtigungen abrufen möchten.

  3. Verarbeiten Sie Benachrichtigungen, die an Ihren Rückrufserver gesendet wurden. Das Benachrichtigungsformat ist unten dargestellt. Du kannst den Wert des <yt:videoId>-Elements verwenden, um das neu hinzugefügte oder aktualisierte Video zu identifizieren. Du kannst auch den Wert des <yt:channelId>-Elements verwenden, um den Kanal anzugeben, der dieses Video besitzt.

    <feed xmlns:yt="http://www.youtube.com/xml/schemas/2015"
             xmlns="http://www.w3.org/2005/Atom">
      <link rel="hub" href="https://pubsubhubbub.appspot.com"/>
      <link rel="self" href="https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID"/>
      <title>YouTube video feed</title>
      <updated>2015-04-01T19:05:24.552394234+00:00</updated>
      <entry>
        <id>yt:video:VIDEO_ID</id>
        <yt:videoId>VIDEO_ID</yt:videoId>
        <yt:channelId>CHANNEL_ID</yt:channelId>
        <title>Video title</title>
        <link rel="alternate" href="http://www.youtube.com/watch?v=VIDEO_ID"/>
        <author>
         <name>Channel title</name>
         <uri>http://www.youtube.com/channel/CHANNEL_ID</uri>
        </author>
        <published>2015-03-06T21:40:57+00:00</published>
        <updated>2015-03-09T19:05:24.552394234+00:00</updated>
      </entry>
    </feed>