我们正在更新 Data API,以便与 YouTube 统计 Shorts 短视频观看次数的方式保持一致。
了解详情
订阅推送通知
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
YouTube Data API (v3) 支持通过 PubSubHubbub 推送通知,PubSubHubbub 是一种服务器到服务器发布/订阅协议,适用于网络可访问的资源。通知通过 HTTP 网络钩子推送给订阅者,比基于轮询的解决方案更高效。借助 PubSubHubbub,您的服务器可以近乎实时地了解事件,而无需确定最佳轮询间隔,也无需重复提取未更改的数据。
当某个频道执行以下任意活动时,您的 PubSubHubbub 回调服务器会收到 Atom Feed 通知:
以下步骤说明了如何订阅通知:
-
设置可以处理传入的 Atom Feed 通知的回调服务器。
-
使用 Google Hub 订阅以接收推送通知:
-
处理向您的回调服务器发送的通知。通知格式如下所示。请注意,您可以使用 <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>
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-10-26。
[null,null,["最后更新时间 (UTC):2023-10-26。"],[[["\u003cp\u003eThe YouTube Data API v3 uses PubSubHubbub for push notifications, enabling near real-time updates without the need for constant polling.\u003c/p\u003e\n"],["\u003cp\u003eYour server will receive notifications when a YouTube channel uploads a video or updates a video's title or description.\u003c/p\u003e\n"],["\u003cp\u003eTo subscribe, set up a callback server, use the Google hub with the 'subscribe' mode, provide your callback URL, and specify the YouTube channel ID in the topic URL.\u003c/p\u003e\n"],["\u003cp\u003eNotifications are sent as Atom feeds, and the \u003ccode\u003e<yt:videoId>\u003c/code\u003e and \u003ccode\u003e<yt:channelId>\u003c/code\u003e elements within these feeds can be used to identify the specific video and channel.\u003c/p\u003e\n"]]],["The YouTube Data API uses PubSubHubbub for push notifications, sending Atom feed updates to subscribers' HTTP webhooks when a channel uploads a video, or updates a video's title or description. To subscribe, set up a callback server, then use the Google hub with `subscribe` mode, your server's callback URL, and a YouTube channel's ID-specific topic URL. Notifications, sent as Atom feeds, include the video and channel IDs, as well as video titles and other information.\n"],null,["# Subscribe to Push Notifications\n\nThe YouTube Data API (v3) supports push notifications via [PubSubHubbub](https://github.com/pubsubhubbub/), a server-to-server publish/subscribe protocol for Web-accessible resources. Notifications are pushed out to subscribers via HTTP webhooks, which is much more efficient than polling-based solutions. With PubSubHubbub, your server finds out about events in near real-time, without having to determine the optimal polling interval or repeatedly fetching data that hasn't changed.\n\nYour PubSubHubbub callback server receives Atom feed notifications when a channel does any of the following activities:\n\n\u003cbr /\u003e\n\n- uploads a video\n- updates a video's title\n- updates a video's description\n\n\u003cbr /\u003e\n\nThe following steps explain how to subscribe to notifications:\n\n1. Set up a callback server that can handle incoming Atom feed notifications.\n\n2. Use the [Google](https://pubsubhubbub.appspot.com/subscribe) hub to subscribe to receive push notifications:\n\n - Set the **mode** to `subscribe`. (Or set the mode to `unsubscribe` to cancel a subscription.)\n\n - Set the **callback URL** to the URL that you set up in step 1.\n\n - Set the **topic URL** to `https://www.youtube.com/feeds/videos.xml?channel_id=`**CHANNEL_ID**, where **CHANNEL_ID** is the [YouTube channel ID](/youtube/v3/docs/channels#id) for which you want to retrieve push notifications.\n\n3. Process notifications sent to your callback server. The notification format is shown below. Note that you can use the `\u003cyt:videoId\u003e` element's value to identify the newly added or updated video. You can also use the `\u003cyt:channelId\u003e` element's value to identify the channel that owns that video.\n\n ```\n \u003cfeed xmlns:yt=\"http://www.youtube.com/xml/schemas/2015\"\n xmlns=\"http://www.w3.org/2005/Atom\"\u003e\n \u003clink rel=\"hub\" href=\"https://pubsubhubbub.appspot.com\"/\u003e\n \u003clink rel=\"self\" href=\"https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID\"/\u003e\n \u003ctitle\u003eYouTube video feed\u003c/title\u003e\n \u003cupdated\u003e2015-04-01T19:05:24.552394234+00:00\u003c/updated\u003e\n \u003centry\u003e\n \u003cid\u003eyt:video:VIDEO_ID\u003c/id\u003e\n \u003cyt:videoId\u003eVIDEO_ID\u003c/yt:videoId\u003e\n \u003cyt:channelId\u003eCHANNEL_ID\u003c/yt:channelId\u003e\n \u003ctitle\u003eVideo title\u003c/title\u003e\n \u003clink rel=\"alternate\" href=\"http://www.youtube.com/watch?v=VIDEO_ID\"/\u003e\n \u003cauthor\u003e\n \u003cname\u003eChannel title\u003c/name\u003e\n \u003curi\u003ehttp://www.youtube.com/channel/CHANNEL_ID\u003c/uri\u003e\n \u003c/author\u003e\n \u003cpublished\u003e2015-03-06T21:40:57+00:00\u003c/published\u003e\n \u003cupdated\u003e2015-03-09T19:05:24.552394234+00:00\u003c/updated\u003e\n \u003c/entry\u003e\n \u003c/feed\u003e\n ```"]]