YouTube Data API (v3) 支援透過 PubSubHubbub 傳送推播通知,PubSubHubbub 是適用於網路存取資源的伺服器對伺服器發布/訂閱通訊協定。系統會透過 HTTP Webhook 將通知推送至訂閱者,比起輪詢型解決方案更有效率。有了 PubSubHubbub 時,您的伺服器就能以近乎即時的方式找出事件,不必判斷最佳輪詢間隔,或重複擷取未變更的資料。
當頻道進行下列任何活動時,PubSubHubbub 回呼伺服器會收到 Atom 動態消息通知:
- 上傳影片
- 更新影片標題
- 更新影片說明
下列步驟說明如何訂閱通知:
-
設定可處理收到的 Atom 動態消息通知的回呼伺服器。
-
前往 Google 中心訂閱推播通知:
-
將「mode」設定為
subscribe
。(或將模式設為unsubscribe
即可取消訂閱)。 -
將回呼網址設為您在步驟 1 設定的網址。
-
將主題網址設為
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
,其中CHANNEL_ID
是要擷取推播通知的 YouTube 頻道 ID。
-
-
傳送至回呼伺服器的程序通知。通知的格式如下所示。請注意,您可以使用
<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>