Headwater

How to follow YouTube channels by RSS

Updated 25 September 2026

Every YouTube channel publishes a public feed of its recent uploads, in the same format blogs use. Nothing about it is hidden or unofficial, it needs no account and no API key, and it has no recommendation algorithm attached. If you want to know what a creator published without opening YouTube, this is the free way to do it.

Everything below was checked against live feeds on 25 September 2026. YouTube changes these things without announcement, so if something here stops working, it changed.

The feed address

https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID

A channel ID starts with UC and is 24 characters long. For example, TED's is UCAuUUnT6oDeKwE6v1NGQxug, so its feed is at https://www.youtube.com/feeds/videos.xml?channel_id=UCAuUUnT6oDeKwE6v1NGQxug.

There is a second form that takes a playlist instead of a channel:

https://www.youtube.com/feeds/videos.xml?playlist_id=PLAYLIST_ID

That one is useful when a creator runs a series you want and not the rest of their output.

An older form using a username, ?user=SOMENAME, no longer works. It returns a 404 now, so any guide still recommending it is out of date.

Finding the channel ID

Handles are not channel IDs. A URL like youtube.com/@TED does not contain one, so you have to resolve it. Three ways, easiest first:

  1. If the URL already has it. Some channel URLs are in the form youtube.com/channel/UC.... The part after /channel/ is the ID.
  2. From the page source. Open the channel page, view source, and search for channelId or externalId. The UC... string next to it is the one you want.
  3. From any video on the channel. Video pages carry the same channelId field in their source.

There are also free lookup tools that take a handle and return the ID, which is faster if you are adding several.

A useful trick: change the leading UC of a channel ID to UU and you have the ID of that channel's uploads playlist. So UCAuUUnT6oDeKwE6v1NGQxug becomes UUAuUUnT6oDeKwE6v1NGQxug, and the playlist feed form above works with it. The result is effectively the same list, which is handy if one form is being awkward.

What is actually in the feed

The feed is Atom, not RSS 2.0, though every reader handles both. It carries the channel name and ID at the top, then one entry per video. Each entry has:

  • The video ID, in a yt:videoId field, and again inside the entry's id as yt:video:VIDEOID
  • The title, twice: once as the Atom title and once inside a media block
  • A link to the video
  • The publication time, and a separate last-updated time
  • The channel name and a link to the channel
  • A thumbnail URL
  • The full video description, which is often long
  • A view count and a star rating, inside a community block

That is more than most people expect. The description in particular means a feed reader can show you what a video claims to be about, not just its title.

What it leaves out, and this is the important part

No duration. Nothing in the feed tells you whether a video is two minutes or three hours. That is the single most useful thing for deciding whether to watch, and it is not there. Anything that wants it has to fetch the video page separately.

Only the fifteen most recent videos. There is no pagination and no history. If a channel posts twenty times between your checks, you lose five. For most channels that is never a problem, and for a daily news channel it can be.

Shorts are mixed in with everything else. They are distinguishable, though: a Short's link points at youtube.com/shorts/... while a normal video's points at youtube.com/watch?v=.... In one TED feed checked today, seven of fifteen entries were Shorts. If you follow a channel that posts a lot of them and you only want the long videos, filtering on that link path is how you do it.

No filtering on YouTube's side. You get the last fifteen items and that is the entire API. Everything else happens in your reader.

A short delay. New videos appear in the feed within minutes to about an hour of publication, not instantly.

Readers that work

Any feed reader handles these: Feedly, Inoreader, NetNewsWire, Reeder, Miniflux, FreshRSS, Thunderbird. Some of them also accept a channel or video URL directly and resolve the feed for you, which saves the channel-ID step.

If you self-host, Miniflux and FreshRSS are both small and will happily poll a hundred of these.

Where RSS stops being enough

RSS solves the delivery problem completely. You get exactly the channels you chose, in order, with no recommendations, no autoplay and no thumbnails engineered to make you click. For a lot of people that is the whole answer, and it costs nothing.

What it does not solve is the decision problem. A title is the creator's pitch, not a description, and the feed gives you no duration, so you still cannot tell a ten-minute explainer from a three-hour interview, or a video that delivers on its title from one that does not. You end up opening videos to find out, which is the thing you were trying to avoid.

That is the gap summaries fill. Something reads each new video and tells you what it actually argued, so the decision happens in text rather than by sampling the video. Every approach to this, including the free ones, covers the options.

Headwater, whose site this is, works from exactly these feeds. It polls them for the channels you follow, fetches each new video's transcript, and writes a complete account of the argument with timestamps and exact quotes, delivered as one morning email. It also filters Shorts per channel, using the link difference described above, and caches durations separately because the feed does not provide them. More about it.