Suscribirse a las notificaciones de aplicación

La API de datos de YouTube (v3) admite notificaciones push a través de PubSubHubbub, un protocolo de publicación y suscripción de servidor a servidor para recursos a los que se puede acceder desde la Web. Las notificaciones se envían a los suscriptores a través de webhooks HTTP, lo que es mucho más eficiente que las soluciones basadas en sondeos. Con PubSubHubbub, tu servidor detecta eventos casi en tiempo real, sin tener que determinar el intervalo de sondeo óptimo ni recuperar reiteradamente datos que no cambiaron.

Tu servidor de devolución de llamada de PubSubHubbub recibe notificaciones de feed de Atom cuando un canal realiza alguna de las siguientes actividades:

  • sube un video
  • actualiza el título de un video
  • actualiza la descripción de un video

En los siguientes pasos, se explica cómo suscribirte a las notificaciones:

  1. Configura un servidor de devolución de llamada que pueda administrar las notificaciones entrantes del feed Atom.

  2. Usa la unidad central de Google para suscribirte y recibir notificaciones push:

    • Establece el modo en subscribe. (o configura el modo en unsubscribe para cancelar una suscripción).

    • Establece la URL de devolución de llamada en la URL que configuraste en el paso 1.

    • Establece la URL del tema en https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, donde CHANNEL_ID es el ID del canal de YouTube para el que quieres recuperar notificaciones push.

  3. Procesa notificaciones enviadas a tu servidor de devolución de llamada. A continuación, se muestra el formato de la notificación. Ten en cuenta que puedes usar el valor del elemento <yt:videoId> para identificar el video recién agregado o actualizado. También puedes usar el valor del elemento <yt:channelId> para identificar el canal que posee ese 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>