- Scan YouTube RSS feeds without the YouTube API
- Detect newly uploaded videos
- Parse channel and playlist feeds
- Lightweight and fast
- Works with:
- Channel URLs
@handles- Channel IDs
- Playlist URLs
- JSON output support
- Easy to self-host
- Perfect for:
- RSS readers
- Automation tools
- Archiving workflows
YouTube still provides RSS feeds for channels and playlists, making it possible to track uploads without using the official API.
This project makes it easy to:
- Convert YouTube URLs into RSS feeds
- Monitor channels for new uploads
- Build automation around YouTube content
- Avoid API quotas and API keys
- Integrate YouTube feeds into custom workflows
Get the project running in just a few minutes.
git clone https://github.com/DisabledAbel/YouTube-RSS-Feed-Scanner.gitcd YouTube-RSS-Feed-Scannernpm installnpm startnpm start "https://www.youtube.com/@LinusTechTips"Access a YouTube channel's RSS feed by passing the channel URL in the path.
Important: The channel_url parameter must be URL-encoded (percent-encoded) to avoid 404 errors.
Example with encoding:
// URL-encode the full YouTube URL
const channelUrl = 'https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw';
const encodedUrl = encodeURIComponent(channelUrl);
// Result: https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCXuqSBlHAE6Xw-yeJA0Tunw
// Use in request
fetch(`/feed/${encodedUrl}`)Alternative (recommended): Use query parameters to avoid encoding issues:
/feed?channel_url=https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunwnpm start "https://www.youtube.com/playlist?list=PLxxxxxxxx"npm start --jsonpython rss_scanner.py "https://www.youtube.com/@LinusTechTips" --include-api-endpoints --base-url "https://your-domain.com"https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxxxxx
{
"title": "New Video Title",
"videoId": "abc123",
"published": "2026-05-11T12:00:00Z",
"channel": "Example Channel"
}Track uploads in:
- Feedly
- FreshRSS
- Miniflux
- NewsBlur
Monitor and archive newly uploaded videos automatically.
Deploy instantly with Vercel.
Pull requests are welcome.
If you find a bug or want a feature added, open an issue.
This project is not affiliated with or endorsed by YouTube or Google.
Users are responsible for complying with YouTube’s Terms of Service.