訂閱推播通知

YouTube Data API (v3) 支援透過 PubSubHubbub 傳送推播通知,PubSubHubbub 是適用於網路存取資源的伺服器對伺服器發布/訂閱通訊協定。系統會透過 HTTP Webhook 將通知推送至訂閱者,比起輪詢型解決方案更有效率。有了 PubSubHubbub 時,您的伺服器就能以近乎即時的方式找出事件,不必判斷最佳輪詢間隔,或重複擷取未變更的資料。

當頻道進行下列任何活動時,PubSubHubbub 回呼伺服器會收到 Atom 動態消息通知:

  • 上傳影片
  • 更新影片標題
  • 更新影片說明

下列步驟說明如何訂閱通知:

  1. 設定可處理收到的 Atom 動態消息通知的回呼伺服器。

  2. 前往 Google 中心訂閱推播通知:

    • 將「mode」設定為 subscribe。(或將模式設為 unsubscribe 即可取消訂閱)。

    • 回呼網址設為您在步驟 1 設定的網址。

    • 主題網址設為 https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID,其中 CHANNEL_ID 是要擷取推播通知的 YouTube 頻道 ID

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