The YouTube Data API (v3) supports push notifications via PubSubHubbub , a server-to-server publish/subscribe protocol for Web-accessible resources. Notifications are pushed out to subscribers via HTTP webhooks, which is much more efficient than polling-based solutions. With PubSubHubbub, your server finds out about events in near real-time, without having to determine the optimal polling interval or repeatedly fetching data that hasn't changed.
Ваш сервер обратного вызова PubSubHubbub получает уведомления из Atom-ленты, когда канал выполняет любое из следующих действий:
- загружает видео
- обновляет заголовок видео
- обновляет описание видео
Следующие шаги объясняют, как подписаться на уведомления:
Настройте сервер обратного вызова, способный обрабатывать входящие уведомления из Atom-ленты.
Воспользуйтесь центром Google , чтобы подписаться на получение push-уведомлений:
Установите режим
subscribe. (Или установите режимunsubscribe, чтобы отменить подписку.)Установите URL-адрес обратного вызова на тот же URL-адрес, который вы задали на шаге 1.
Установите URL-адрес темы на
https://www.youtube.com/feeds/videos.xml?channel_id= CHANNEL_ID, гдеCHANNEL_ID— это идентификатор канала YouTube, для которого вы хотите получать push-уведомления.
Обработка уведомлений, отправляемых на ваш сервер обратного вызова. Формат уведомлений показан ниже. Обратите внимание, что вы можете использовать значение элемента
<yt:videoId>для идентификации недавно добавленного или обновленного видео. Вы также можете использовать значение элемента<yt:channelId>для идентификации канала, которому принадлежит это видео.<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>