訂閱推播通知

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> 元素的 value,識別新加入或更新的影片。您也可以使用 <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>