L'API YouTube Data (v3) est compatible avec les notifications push via PubSubHubbub, un protocole de publication/abonnement de serveur à serveur pour les ressources accessibles sur le Web. Les notifications sont envoyées aux abonnés via des Webhooks HTTP, ce qui est beaucoup plus efficace que les solutions basées sur l'interrogation. Avec PubSubHubbub, votre serveur est informé des événements en temps quasi réel, sans avoir à déterminer l'intervalle d'interrogation optimal ni à récupérer à plusieurs reprises des données qui n'ont pas changé.
Votre serveur de rappel PubSubHubbub reçoit des notifications de flux Atom lorsqu'une chaîne effectue l'une des activités suivantes :
- met en ligne une vidéo ;
- met à jour le titre d'une vidéo ;
- met à jour la description d'une vidéo.
Les étapes suivantes expliquent comment s'abonner aux notifications :
-
Configurez un serveur de rappel capable de gérer les notifications de flux Atom entrants.
-
Utilisez le hub Google pour vous abonner aux notifications push :
-
Définissez le mode sur
subscribe. (Vous pouvez également définir le mode surunsubscribepour résilier un abonnement.) -
Définissez l'URL de rappel sur l'URL que vous avez configurée à l'étape 1.
-
Définissez l'URL du sujet sur
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, oùCHANNEL_IDcorrespond à l'ID de la chaîne YouTube pour laquelle vous souhaitez récupérer les notifications push.
-
-
Traitez les notifications envoyées à votre serveur de rappel. Le format de la notification est indiqué ci-dessous. Notez que vous pouvez utiliser la valeur de l'élément
<yt:videoId>pour identifier la vidéo ajoutée ou modifiée. Vous pouvez également utiliser la valeur de l'élément<yt:channelId>pour identifier la chaîne à laquelle appartient la vidéo.<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>