My Approach to RSS/atom Feed Reading
In 2025, there really is not a lot of guides out there to approach efficient feed reading. There are pay-walled feed readers out there, that can sync data efficiently for all your preferred devices. I don't recommend my approach, unless you are open to a few steps... otherwise, using other methods might be nice. Personally, I do not prefer using feed readers that read based off of someone else's server, as I've encountered a lack of control in updates in feeds (namely: I can't refresh the feed myself, and that less-frequented websites do not update as quick as larger/high-traffic webpages... not good for my use at all as I love a lot of de-centralized pages and small-scale blogs/BBS/etc.)
The feed readers I use are:
(1) Feedbro reader, a Firefox extension [ link here ]
(2) Capy reader, a reader app for Android (through F-droid) [ link here ] ...
The first thing that I do to keep my readers in sync is that, I primarily add feeds through Feedbro. It is a lot less tedious to use PC for adding RSS/atom feeds, and Feedbro can detect feeds on pages easily. I can then export my feeds as an OPML file, for my mobile device.
ONLY ONE ISSUE!! The way that Feedbro exports seems to export tags and other data improperly. This is mostly a problem when I rename the title of feeds. This is an issue when I want a nice and organized set of feeds on Capy reader app on Android!!! I took it upon myself to make a python script, which I will share, to fix these OPML files from Feedbro.
I put my script in a directory ~/rss_scripts
and I also save my OPML files in that same directory, as this script READS all OPML and XML files in the directory. This script will go through all files and clean them if necessary, so that your title/name changes to your feeds will sync up correctly in Capy reader.
Please note that this script always outputs XML files, so that can be an indicator of which file is which. Another note, all output files will end with _synced.xml
as well. You can move your synced XML file over to your Android device and import with Capy reader.
import os import xml.etree.ElementTree as ET folder_path = os.path.dirname(os.path.abspath(__file__)) for filename in os.listdir(folder_path): if filename.endswith(".xml") or filename.endswith(".opml"): full_path = os.path.join(folder_path, filename) tree = ET.parse(full_path) root = tree.getroot() changed = False for outline in root.iter("outline"): display_text = outline.attrib.get("text") feed_title = outline.attrib.get("title") if display_text and feed_title and display_text != feed_title: outline.set("title", display_text) changed = True if changed: output_path = os.path.join(folder_path, f"{os.path.splitext(filename)[0]}_synced.xml") tree.write(output_path, encoding="utf-8", xml_declaration=True) print(f"Updated: {filename} -> {os.path.basename(output_path)}") else: print(f"{filename} has no necessary changes. File not updated.")
I hope this guide can be helpful to some people interested in RSS/atom reading, without the need to pay for a feed reader. This doesn't fix a lot of problems with RSS/atom reading as it stands in 2025. (The pessimistic side of me would say RSS/atom is dying the slow death...) There is still the issue of not syncing up Read/Unread posts. For me, I don't mind leaving lots of my feeds unread, and I generally keep track or remember what I have read. It isn't a major inconvenience for me to have to mark all as read on the other devices if I have to. There are settings to reduce number of posts per feed, and other tweaks that I recommend that the user decide for themselves. My main objective is that I can have access to all my feeds IN AN ORGANIZED MANNER no matter what device I am using. Overtime, I will add more to my rss cleaning script as I see fit. If I find new ways to make RSS/atom reading efficient in a de-centralized and alternative way, I'll always be sure to share!
Summary:
- Add feeds using Feedbro extension on Firefox
- Export OPML from Feedbro
- Run Python script to output newly cleaned XML file
- Transfer XML file to my Android device
- Import XML to Capy reader