Subscribe to Push Notifications
Stay organized with collections
Save and categorize content based on your preferences.
The YouTube Data API (v3) supports push notifications via 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.
Your PubSubHubbub callback server receives Atom feed notifications when a channel does any of the following activities:
- uploads a video
- updates a video's title
- updates a video's description
The following steps explain how to subscribe to notifications:
-
Set up a callback server that can handle incoming Atom feed notifications.
-
Use the Google
hub to subscribe to receive push notifications:
-
Set the mode
to subscribe
. (Or set the mode to unsubscribe
to cancel a subscription.)
-
Set the callback URL
to the URL that you set up in step 1.
-
Set the topic URL
to https://www.youtube.com/feeds/videos.xml?channel_id= CHANNEL_ID
, where CHANNEL_ID
is the YouTube channel ID
for which you want to retrieve push notifications.
-
Process notifications sent to your callback server. The notification format is shown below. Note that you can use the <yt:videoId>
element's value to identify the newly added or updated video. You can also use the <yt:channelId>
element's value to identify the channel that owns that video.
<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>
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License
, and code samples are licensed under the Apache 2.0 License
. For details, see the Google Developers Site Policies
. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\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 ```"]]