Repair Broken RSS/ATOM with The Feed Sanitizer

Web feeds are a standardized yet widely underestimated way to attach software systems to content providers. You can both bind a news portal of any publisher to you very own piece of software or aggregate and filter several twitter feeds with the very same underlying technology. While giving presentations, I am often tempted to reuse an arbitrary ATOM or RSS feed to build a content-driven mobile application within minutes (next stop: EclipseCon, Santa Clara). Unfortunately, many of those feeds in the wild do not conform to their pretended format when it comes to the details. In order to minimize the risk of a broken live-demo and to make mash-ups of services a bit safer in general, I came up with a free service called The Feed Sanitizer.

The Feed Sanitizer normalizes your invalid web feed

Here’s a short description of what the service actually does. Please don’t feel offended by these words. They had been taken directly from the project’s website and try to provoke a more personal relationship to its users:

The Feed Sanitizer takes any news or web feed and turns it into straight, normalized RSS 2.0 / ATOM 1.0. This comes in handy if you are confronting with tangled or messed or knocked up feeds that are barely well-formed and want to parse these with a not-so-solid piece of software. The Feed Sanitizer scrubs off the dirt and returns germ-free feeds.

You could simply pass through a given URL to receive a normalized feed of the desired format, download the result once, or just look at the pretty-printed output with the embedded XML viewer.

For those of you interested in the technical details, the service has been written with Python and runs on Google App Engine. It uses several open source libraries such as djangoappenginefeedparser and SyntaxHighlighter.

The Feed Sanitizer is free and ready to serve you. It’s open source, too! Feel free to fork it on GitHub.

Support my Work

Writing an article like the one you have just read takes me quite an amount of my personal time. Way too often, I invest this time in different interests and decide against another blog post. On the other hand, you can motivate me with your feedback, your thoughts and your ideas. Please leave a comment below or flattr this post if you think it's worth it.

Leave a Reply