YouTube Data API (v3) 支持通过 PubSubHubbub 推送通知,PubSubHubbub 是一种服务器到服务器发布/订阅协议,适用于网络可访问的资源。通知通过 HTTP 网络钩子推送给订阅者,比基于轮询的解决方案更高效。借助 PubSubHubbub,您的服务器可以近乎实时地了解事件,而无需确定最佳轮询间隔,也无需重复提取未更改的数据。
当某个频道执行以下任意活动时,您的 PubSubHubbub 回调服务器会收到 Atom Feed 通知:
- 上传视频
- 更新视频的标题
- 更新视频的说明
以下步骤说明了如何订阅通知:
-
设置可以处理传入的 Atom Feed 通知的回调服务器。
-
使用 Google Hub 订阅以接收推送通知:
-
将 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>