Iscriviti alle notifiche push

L'API YouTube Data (v3) supporta le notifiche push tramite PubSubHubbub, un protocollo di pubblicazione/sottoscrizione server-to-server per le risorse accessibili dal web. Le notifiche vengono inviate agli iscritti tramite webhook HTTP, che sono molto più efficienti delle soluzioni basate sul polling. Con PubSubHubbub, il tuo server viene a conoscenza degli eventi quasi in tempo reale, senza dover determinare l'intervallo di polling ottimale o recuperare ripetutamente i dati che non sono cambiati.

Il server di callback PubSubHubbub riceve 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 passaggi seguenti spiegano come iscriversi alle notifiche:

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

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

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

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

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

  3. Elabora le notifiche inviate al 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/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>