As already hinted at in the Tracking Newsfeed changes post, I have written a small tool that reads an OPML file, reformats it in a reproducible way, and then outputs it back again into the same file.

It was deeply entangled with the greater RSS project I am working on in the background. But I got it successfully separated and put a minimal Amper wrapper1 around it, which is way more lightweight than a comparable Gradle-based build.

You can grab it here and try for yourself:

  1. Clone the repo
    git clone git@github.com:janseeger/kotlin-opml.git
    
  2. Export the OPML file from your RSS reader of choice and put it in an empty directory
     mkdir rss
     mv feeds.opml rss/
     git init rss
    
  3. Format the OPML
     cd kotlin-opml
     ./amper run ../rss/feeds.opml
     cd ..
    
  4. Track changes using git
     cd rss
     git add feeds.oml
     git commit -m "initially adding feed"
    

From now on, you can repeat steps 3 and 4, and depending on the cadence and quality of your change messages you’ll get a nice record of what happened to your subscriptions:

  • You subscribed/unsubscribed a Feed
  • Author changed the name of the Feed
  • Feed URL or even Domain changed
  • Removed broken Feed that couldn’t be retrieved anymore

And now?

I get that this won’t fix all your problems, but at least, if done regularly can provide interesting insights into your feed, and if nothing else serves as a nice backup.

  1. While Amper is not yet ready for large projects, it works wonderfully for small ones like this.