Die YouTube Data API (v3) unterstützt Push-Benachrichtigungen über PubSubHubbub, ein Server-zu-Server-Protokoll für das Veröffentlichen und Abonnieren von webbasierten Ressourcen. Benachrichtigungen werden über HTTP-Webhooks an Abonnenten gesendet. Das ist viel effizienter als Lösungen, die auf Polling basieren. Mit PubSubHubbub erfährt Ihr Server nahezu in Echtzeit von Ereignissen, ohne dass das optimale Abfrageintervall ermittelt oder Daten, die sich nicht geändert haben, wiederholt abgerufen werden müssen.
Ihr PubSubHubbub-Callback-Server empfängt Atom-Feed-Benachrichtigungen, wenn auf einem Kanal eine der folgenden Aktivitäten stattfindet:
- ein Video hochlädt
- Aktualisiert den Titel eines Videos
- Aktualisiert die Beschreibung eines Videos
So abonnieren Sie Benachrichtigungen:
-
Richten Sie einen Callback-Server ein, der eingehende Atom-Feed-Benachrichtigungen verarbeiten kann.
-
So abonnieren Sie Push-Benachrichtigungen über den Google-Hub:
-
Setzen Sie den Modus auf
subscribe. (Oder legen Sie den Modus aufunsubscribefest, 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 Themen-URL auf
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_IDfest, wobeiCHANNEL_IDdie YouTube-Kanal-ID ist, für die Sie Push-Benachrichtigungen abrufen möchten.
-
-
Benachrichtigungen verarbeiten, die an Ihren Callback-Server gesendet werden. Das Format der Benachrichtigung ist unten dargestellt. Mit dem Wert des
<yt:videoId>-Elements können Sie das neu hinzugefügte oder aktualisierte Video identifizieren. Sie können auch den Wert des<yt:channelId>-Elements verwenden, um den Kanal zu identifizieren, dem das Video gehört.<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/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>