Curating and Filtering RSS Feeds

2 days ago 1

I recently found myself actively staying as away as possible from sites relying on infinite scroll to keep you hooked up, such as YouTube or Reddit. While I ended up leaving Reddit due to its rampant enshittificaton, I'm still a pretty avid YouTube (paying) user. A key factor in avoiding getting sucked into a spiral of videos was to subscribe to the RSS feeds of the content I wanted to see, and filtering out the one I did not want to see.

RSS feeds are one of my favorite features of the Internet of Yore. Simply put, they allow you to subscribe to sites you like, into an aggregator. Instead of visiting all these sites in search for something new, you simply subscribe to these sites in your aggregator, and you'll see new articles come in. While RSS aggregators have sadly waned since Google killed Google Reader in 2013, RSS feeds themselves continue to be found throughout the web, if you know where to look. Your favorite podcast app feed is really nothing but a bunch of RSS subscriptions, each containing a list of episodes. Each YouTube channel can be subscribed to as RSS feed, and so does each of is associated podcasts. Your beloved niche subreddit? Add .rss to the URL and subscribe to it in your aggregator.

I use yarr as my aggregator, because it's simple and feature-complete.

I use yarr as my aggregator, because it's simple and feature-complete.

You can turn any YouTube channel, podcast and such into an RSS feed by using https://www.youtube.com/feeds/videos.xml?channel_id=<id>, where id is the channel id displayed in ytpeek.com.

While that worked nicely, I wanted to be able to filter out feed entries I didn't care about, to avoid drowning in unread videos and articles.

To, that end, I cobbled up together feedzgerald, a small CLI that does just that: takes a list of feeds URLs, and generate a new one with only entries matching a set of filters.

For example, I currenly run it with :

[core] output_folder = "/feeds" [feeds.kexp_full_concerts] name = "KEXP - Full Performances" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC3I2GFN_F8WudD_2jUZbojA" title_filter = "Full Performance" [feeds.knights_of_last_call] name = "Knights of Last Call" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCIVOFu4geQx5KrTTQwtIyMg" negative_title_filter = "Torchbearer" [feeds.roll_for_combat] name = "Roll for Combat" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCU4p5Dgq5G8cA2OMU1SLpXw" negative_title_filter = "Jewel of the Indigo Isles" [feeds.backseat] name = "Backseat" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC2ijB3_Fg2pIW1g6FeIiYKA" title_filter = "BACKSEAT - S0" [feeds.dm_lair] name = "The DM Lair" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UCk9dtbM-wjpLk134r55OUbg" negative_url_filter = "youtube.com/shorts/" negative_title_filter = "Q&A" [feeds.tiny_desk_concerts] name = "Tiny Desk Concerts" url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC4eYXhJI4-7wSWc8UNRwD4A" title_filter = "Tiny Desk Concert"

and run it daily on my server with

docker run -it --rm \ -v /home/br/feedzgerald/config.toml:/app/config.toml \ -v /var/www/page/public/feedzgerald:/feeds \ brouberol/feedzgerald \ --config /app/config.toml [20:44:26] INFO - Processing feed KEXP - Full Performances [20:44:26] INFO - Processing feed Knights of Last Call [20:44:26] INFO - Processing feed Roll for Combat [20:44:26] INFO - Processing feed Backseat [20:44:26] INFO - Processing feed The DM Lair [20:44:27] INFO - [Roll for Combat] Keeping feed Stop Making Boring D&D Dungeons! Do This Instead! [20:44:27] INFO - [Roll for Combat] Keeping feed Why the D&D Community Is Truly Special! [20:44:27] INFO - [Roll for Combat] Keeping feed Running a Game Company: The Untold Story [20:44:27] INFO - [Roll for Combat] Keeping feed When Your Favorite Franchise Becomes a TTRPG… Does It Work? (take 2) ...

That generates feeds specifically focused on what I'd like to subscribe to, and outputs the new RSS files under https://balthazar-rouberol.com/public/feedzgerald/. I can then simply subscribe to these feeds in Yarr, and enjoy a more curated reading and viewing experience.

Read Entire Article