Подпишитесь на push-уведомления

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-ленты, когда канал выполняет любое из следующих действий:

  • загружает видео
  • обновляет заголовок видео
  • обновляет описание видео

Следующие шаги объясняют, как подписаться на уведомления:

  1. Настройте сервер обратного вызова, способный обрабатывать входящие уведомления из Atom-ленты.

  2. Воспользуйтесь центром Google , чтобы подписаться на получение push-уведомлений:

    • Установите режим subscribe . (Или установите режим unsubscribe , чтобы отменить подписку.)

    • Установите URL-адрес обратного вызова на тот же URL-адрес, который вы задали на шаге 1.

    • Установите URL-адрес темы на https://www.youtube.com/feeds/videos.xml?channel_id= CHANNEL_ID , где CHANNEL_ID — это идентификатор канала YouTube, для которого вы хотите получать push-уведомления.

  3. Обработка уведомлений, отправляемых на ваш сервер обратного вызова. Формат уведомлений показан ниже. Обратите внимание, что вы можете использовать значение элемента <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>