S'abonner aux notifications push

L'API YouTube Data (v3) accepte les notifications push via PubSubHubbub, un protocole de publication et d'abonnement de serveur à serveur pour les ressources accessibles sur le Web. Les notifications sont transmises 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 détecte les événements en temps quasi réel, sans avoir à déterminer l'intervalle d'interrogation optimal ni à extraire de façon répétée des données qui n'ont pas changé.

Votre serveur de rappel PubSubHubbub reçoit des notifications de flux Atom lorsqu'un canal effectue l'une des activités suivantes:

  • met en ligne une vidéo
  • modifie le titre d'une vidéo
  • modifie la description d'une vidéo

Pour vous abonner aux notifications, procédez comme suit:

  1. Configurer un serveur de rappel pouvant gérer les notifications entrantes du flux Atom.

  2. Utilisez le hub Google pour vous abonner aux notifications push:

    • Définissez le mode sur subscribe. (Vous pouvez également définir le mode sur unsubscribe pour 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_ID est l'ID de la chaîne YouTube pour laquelle vous souhaitez récupérer les notifications push.

  3. Traiter les notifications envoyées à votre serveur de rappel Le format de notification est illustré ci-dessous. Notez que vous pouvez utiliser la valeur de l'élément <yt:videoId> pour identifier la vidéo qui vient d'être ajoutée ou modifiée. Vous pouvez également utiliser la valeur de l'élément <yt:channelId> pour identifier la chaîne qui détient cette 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/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>