Iscriviti alle notifiche push

La YouTube Data API (v3) supporta le notifiche push tramite PubSubHubbub, un protocollo di tipo pubblicazione/sottoscrizione server-to-server per risorse accessibili dal web. Le notifiche vengono inviate agli abbonati tramite webhook HTTP, un metodo molto più efficiente rispetto alle soluzioni basate su polling. Con PubSubHubbub, il tuo server rileva gli eventi quasi in tempo reale, senza dover determinare l'intervallo di polling ottimale o recuperare ripetutamente dati che non sono cambiati.

Il server di callback PubSubHubbub riceve le notifiche del feed Atom quando un canale esegue una delle seguenti attività:

  • carica un video
  • aggiorna il titolo di un video
  • aggiorna la descrizione di un video

I seguenti passaggi spiegano come iscriversi alle notifiche:

  1. Configura un server di callback in grado di gestire le notifiche dei feed Atom in arrivo.

  2. Utilizza l'hub Google per iscriverti alle notifiche push:

    • Imposta la modalità su subscribe. (In alternativa, imposta la modalità su unsubscribe per annullare un abbonamento.)

    • Imposta l'URL di callback sull'URL configurato nel passaggio 1.

    • Imposta l'URL dell'argomento su https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, dove CHANNEL_ID corrisponde all'ID canale YouTube per il quale vuoi recuperare le notifiche push.

  3. Notifiche di processo inviate al tuo server di callback. Il formato della notifica è mostrato di seguito. Tieni presente che puoi utilizzare il valore dell'elemento <yt:videoId> per identificare il video appena aggiunto o aggiornato. Puoi anche utilizzare il valore dell'elemento <yt:channelId> per identificare il canale proprietario del video.

    <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>