A API YouTube Data (v3) oferece suporte a notificações push via PubSubHubbub, um protocolo de publicação/inscrição entre servidores para recursos acessíveis pela Web. As notificações são enviadas aos assinantes por webhooks HTTP, que são muito mais eficientes do que soluções baseadas em polling. Com o PubSubHubbub, seu servidor descobre eventos quase em tempo real, sem precisar determinar o intervalo de pesquisa ideal ou buscar repetidamente dados que não mudaram.
Seu servidor de callback do PubSubHubbub recebe notificações de feed Atom quando um canal realiza uma das seguintes atividades:
- envia um vídeo
- atualiza o título de um vídeo
- atualiza a descrição de um vídeo
As etapas a seguir explicam como se inscrever nas notificações:
-
Configure um servidor de callback que possa processar notificações de feed Atom recebidas.
-
Use o hub do Google para se inscrever e receber notificações push:
-
Defina o modo como
subscribe. Ou defina o modo comounsubscribepara cancelar uma assinatura. -
Defina o URL de callback como o URL que você configurou na etapa 1.
-
Defina o URL do tópico como
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, em queCHANNEL_IDé o ID do canal do YouTube para o qual você quer recuperar notificações push.
-
-
Processar notificações enviadas ao seu servidor de callback. O formato da notificação é mostrado abaixo. É possível usar o valor do elemento
<yt:videoId>para identificar o vídeo adicionado ou atualizado. Também é possível usar o valor do elemento<yt:channelId>para identificar o canal proprietário do vídeo.<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>