rss2File does exactly what it says on the tin, and a bit more besides. It’s a program I wrote to grab blogs and save the articles as text files locally. It can also download podcasts, although not at the same time as blogs as you have to specify one mode or the other in the config file.

Download the stable version. Or grab the latest version from my subversion repo at

Basically I wanted a way to merge the dozens of blogs I read into a few category based feeds. The way I came up with to do this was to pull everything onto my own server and then use blosxom to generate new feeds from the files. There was a program called blagg that I originally used to pull the data down but I found it somewhat lacking, and because it’s in Perl (horrid language) was unable to fix it. So I reimplemented it in Python, adding a few features along the way.

I have now added podcast reception functionality to the program too, so it needs to be told which mode to operate in, blog or podcast. I plan on adding torrent support also, but that is a fairly difficult job and so will take some time. It will resume downloads now, so if a download is interrupted for some reason (net connection dies or whatever) then the next time it runs it should finish off the file rather than skipping it like it did previously.

I used Universal Feed Parser by Mark Pilgrim as the basis rather than roll my own xml code, so you need to have that installed to run this.

The program needs to be given the path to a configfile as an argument and optionally a datadir, statusfile and logfile (these will be inferred from the location of the config file if not set).
e.g. " -c Music/Casts/cast2file.cfg -l log/cast2file.log"

The configfile needs to the first line to be set to “Blog” or “Podcast” (without the quotes) and then has one feed per line with the format of “Nickname URL Category”, with category being an optional subdirectory to use. The feed entries will be saved in a dir called Nickname (which will be created if needed) if it is set to blog. If it is set to podcast then the mp3s (or whatever) will be downloaded instead of the entries and placed in the Nick dir.

As an example, here is the config file I use for blogs:

Aquarius Personal
Senji Personal
Kamion Personal
Ant Personal
Aquarion Personal
Khendon Personal
AdamSweet Personal
Fuzzix Personal
Davee Personal
JediMoose Personal
JonoBacon Personal
Joel Gurus
Sutter Gurus
Cvsgui Software
CodeProject Articles
TomsHardware Articles
Slashdot News
Zotnix Personal
SamRuby Gurus
Schwuk Personal
CodingSlave Gurus
Xalior Personal
BBCNewsTech News
LazyWeb Articles
Foxylicious Software
PerfDave Personal
Omahn Personal
LUGRadioLive Personal
Ade Personal
Sparkes Personal

and for podcasts:


You can also import and export the list of feeds as OPML using the "--import-opml" or "--export-opml" options. This OPML support was added with the help of some opml parsing code from Juri Pakaste.