Subskrybuj powiadomienia push

Interfejs YouTube Data API (wersja 3) obsługuje powiadomienia push za pomocą protokołu PubSubHubbub, czyli protokołu publikowania i subskrybowania między serwerami dla zasobów dostępnych w internecie. Powiadomienia są wysyłane do subskrybentów za pomocą webhooków HTTP, co jest znacznie wydajniejsze niż rozwiązania oparte na sondowaniu. Dzięki PubSubHubbub serwer dowiaduje się o zdarzeniach niemal w czasie rzeczywistym, bez konieczności określania optymalnego interwału odpytywania lub wielokrotnego pobierania danych, które się nie zmieniły.

Serwer wywołania zwrotnego PubSubHubbub otrzymuje powiadomienia o kanale w formacie Atom, gdy wykona on jedną z tych czynności:

  • przesyła film,
  • aktualizuje tytuł filmu,
  • aktualizuje opis filmu,

Aby zasubskrybować powiadomienia:

  1. Skonfiguruj serwer wywołania zwrotnego, który może obsługiwać przychodzące powiadomienia z pliku danych Atom.

  2. Aby subskrybować powiadomienia push, użyj centrum Google:

    • Ustaw mode na subscribe. (Możesz też ustawić tryb na unsubscribe, aby anulować subskrypcję).

    • Ustaw adres URL wywołania zwrotnego na adres URL skonfigurowany w kroku 1.

    • Ustaw adres URL tematu na https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, gdzie CHANNEL_ID to identyfikator kanału w YouTube, dla którego chcesz pobierać powiadomienia push.

  3. Przetwarzaj powiadomienia wysyłane na serwer zwrotny. Format powiadomienia jest widoczny poniżej. Pamiętaj, że możesz użyć wartości elementu <yt:videoId>, aby zidentyfikować nowo dodany lub zaktualizowany film. Możesz też użyć wartości elementu <yt:channelId>, aby zidentyfikować kanał, który jest właścicielem danego filmu.

    <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>