La API de YouTube Data (v3) admite notificaciones push a través de PubSubHubbub, un protocolo de publicación y suscripción de servidor a servidor para recursos accesibles desde la Web. Las notificaciones se envían a los suscriptores a través de webhooks HTTP, que son mucho más eficientes que las soluciones basadas en sondeos. Con PubSubHubbub, tu servidor se entera de los eventos casi en tiempo real, sin tener que determinar el intervalo de sondeo óptimo ni recuperar repetidamente datos que no cambiaron.
Tu servidor de devolución de llamada de PubSubHubbub recibe notificaciones del feed 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 suscribirse a las notificaciones:
-
Configura un servidor de devolución de llamada que pueda controlar las notificaciones entrantes del feed Atom.
-
Usa el centro de Google para suscribirte y recibir notificaciones push:
-
Establece el modo en
subscribe. (O bien, configura el modo enunsubscribepara 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, dondeCHANNEL_IDes el ID del canal de YouTube para el que deseas recuperar las notificaciones push.
-
-
Procesa las notificaciones que se envían 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 actualizado o agregado recientemente. También puedes usar el valor del elemento<yt:channelId>para identificar el canal propietario de 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/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>