Armangil's podcatcher is a podcast client for the command line. It provides several download strategies (new shows only, back-catalog allowed, etc), offers cache management, supports BitTorrent, and generates playlists for media player applications. It is written in Ruby, and runs on Linux, Windows, Mac OS X and many other operating systems. Download it here.

Download content To listen to the most popular podcasts, simply type something like podcatcher -v > latest.m3u. This will download the shows into the current directory and generate an M3U playlist named latest.m3u. The -v (or --verbose) option makes the program display informational messages about the steps being performed. On Windows, start the command with ruby (i.e. ruby C:\Path\to\podcatcher).

Manage your cache Use the --size option to specify the local cache size: podcatcher --size 128 feeds.opml downloads at most 128 megabytes of content, and may delete previously downloaded content in order to make place for the new content. The default size is 512 megabytes. Use --size 0 for an unlimited cache size; in this case no content is deleted, and the cache size grows with each podcatching session.

Choose your download strategy By default, at most one content file is downloaded from each podcast. Use the --strategy option to change this behaviour. For example, podcatcher --strategy back_catalog feeds.opml fills the cache as much as possible by downloading more than one content file per podcast if necessary.

Use feeds or subscription lists This program accepts one or more feeds (RSS or Atom) or subscription lists (OPML or iTunes PCAST) as argument, in the form of filenames or URLs (HTTP or FTP). Alternatively, it tries to read one such document from the standard input.

For help, type podcatcher --help.

Version 3.1.6 released 21 Apr 2012

This release includes the following bug fixes:

Red Hat port is now available 10 Dec 2009

I am pleased to announce (belatedly, since this happened several months ago) that podcatcher has landed in the package repositories of Red Hat Enterprise Linux and Fedora Linux. Many thanks to Christof Damian for volunteering to maintain these packages.

Version 3.1.5 released 26 Aug 2009

This release includes a minor feature enhancement: argument files specified with the --arguments option can now contain comments.

Version 3.1.4 released 20 Sep 2008

This release includes minor feature enhancements:

Version 3.1.3 released 19 Aug 2008

This release includes a minor bug fix:

Version 3.1.2 released 24 Jan 2008

This release includes minor feature enhancements. Changes:

Version 3.1.1 released 10 Dec 2007

This is a minor bug fix release:

Version 3.1.0 released 14 Sep 2007

This release adds support for and yyyy formats for the --horizon option. Usage examples: --horizon 2007.06 is equivalent to --horizon 2007.06.01, and --horizon 2007 is equivalent to --horizon 2007.01.01.

Also, this version displays a message from our sponsor when used in verbose mode.

New sponsor: Qworum, the web mashup platform 14 Sep 2007

I am pleased to announce that Armangil's podcatcher is now sponsored by Qworum, which is a new platform for web mashups. With Qworum, websites can provide interactive services that seamlessly integrate into other websites. Disclosure: I am the lead architect of Qworum.

Version 3.0.0 released 17 Jul 2007

This release includes major feature enhancements and some minor bug fixes, as described below.

Download content directly to your media player device Previous podcatcher versions store downloaded content in the cache subdirectory of the directory specified by the --dir option. While this is still the default behaviour, this version introduces the --cachedir option which allows the user to specify another directory for content. For example, a Linux user might issue a command such as podcatcher --dir ~/podcatcher-state --cachedir /media/disk/podcasts feeds.opml. In this case, the podcatcher state (such as the download history) is stored in ~/podcatcher-state, but the downloaded content is directly stored on a media player device available at /media/disk.

Be compatible with Windows and media players The --restrictednames option makes podcatcher use content filenames that are acceptable for restrictive filesystems such as VFAT (used by Windows and many media player devices). You might want to use this option if you encounter filename-related problems.

Ignore old content The --horizon option makes podcatcher ignore content that is older than a given date. For example, a user switching to podcatcher on July 22, 2007 might use a command such as podcatcher --horizon 2007.07.22 feeds.opml in order to avoid re-downloading content that had been downloaded using another podcast client.

Select podcasts by language The --language option takes a comma-separated list of language codes, and makes podcatcher ignore podcasts whose language is not in this list. This option is particularly useful when using subscription lists generated by third parties. For example, a user who only speaks english and german might issue a command such as podcatcher --language en,de

Additional changes include a more robust handling of feeds that use the Media RSS module (in particular when a wrong namespace is specified for this module) and a bug-fix related to update checking.

FreeBSD port now available 15 Jul 2007

I am happy to announce that this software is now also available as a FreeBSD port.

Now distributed by Gentoo Linux 29 Apr 2007

I am pleased to announce that Armangil's podcatcher has been included into the Gentoo Linux distribution.

Version 2.0.1 released 13 Feb 2007

This release fixes an RSS parsing bug for feeds that use the Yahoo Media RSS module.

Version 2.0.0 released 22 Dec 2006

This release includes many major feature enhancements, as described below.

Download any type of content Use the --content option to specify a regular expression that matches the types of content to be downloaded. Examples:

Download content in chronological order Some podcasts, such as audio books, are best consumed in chronological order. This version introduces three new download strategies for that purpose: chron_one, chron and chron_all. For example, podcatcher --strategy chron_one downloads the oldest episode of the audio book 7th son that has not been downloaded before.

Change the order of feeds Here is the problem: if the cache size (specified with the --size option) is small and the list of subscribed podcasts is long, podcasts at the end of the list might never get heard by the user! The new --order option, in particular its random value, is introduced to address this issue: with a command such as podcatcher --order random podcasts.opml, all podcasts have an equal chance when downloading content, regardless of cache size. Other values for this option are alphabetical, sequential (this is the behaviour of previous versions) and reverse. The default value for this option is random: the --order option does not need to be specified when this value is used.

Put arguments in a file Use the --arguments option for specifying the filename or URL (HTTP or FTP) of a text document that contains one argument per line. A sample arguments document is bundled with the software.

Put options in a file Use the --options option for specifying the filename or URL (HTTP or FTP) of a YAML document. A sample options document is bundled with the software.

Other novelties include the --checkforupdate option for informing the user when a new version is available, the --vote option for voting in favour of downloaded podcasts at PodcatcherStats (another website of mine), and support for the Yahoo Media RSS module.

Version 1.3.7 released 7 Sep 2006

This release adds status code and content type check when downloading a media file using HTTP. Upgrading is recommended.

Version 1.3.5 released 7 Sep 2006

This version fixes a minor bug that caused wrong cache filenames to be generated when an HTTP redirection message was received from a server. It was released on july 9th, 2006.

Version 1.3.4 released 24 Jan 2006

This release fixes the description of the -d option in the help message.

Version 1.3.3 released 11 Jan 2006

This release adds the -p option that assigns a separate cache subfolder to each feed.

Version 1.3.2 released 10 Jan 2006

This release fixes a bug that was introduced in version 1.3.1 that prevented the reading of local subscription lists. Upgrading is strongly recommended.

Version 1.3.1 released 9 Jan 2006

This release includes minor bug fixes. Upgrading is recommended. Changes:

Version 1.3.0 released 6 Jan 2006

This release includes a major new feature: search. This function generates a subscription list by querying a set of subscription lists/feeds. Here are some usage examples:

The search function can safely be interrupted (through Control-C keystrokes on Linux): it still generates a valid subscription list.

This release also adds support for the XSPF playlist format.

Version 1.2.0 released 6 Nov 2005

This release includes many feature enhancements and a minor bug fix. Changes:

Also recommended: the new release of Armangil's vodcatcher, the video podcast client.

Version 1.1.1 released 13 Oct 2005

This release adds support for Apple iTunes PCAST subscription files, which are now accepted as arguments alongside OPML files. Here is a usage example: podcatcher *.pcast.

Yahoo! Podcasts is one source of such files: just click on the Subscribe button of a podcast to receive one.

Introducing Armangil's vodcatcher 30 Aug 2005

Armangil's podcatcher now has a sibling that handles video files: Armangil's vodcatcher. They share the same code base, and offer similar features.

Version 1.1.0 released 30 Aug 2005

This release includes a minor feature enhancement: names of audio files downloaded via BitTorrent are now preserved (previous versions assign random names to them).

Version 1.0.4 released 22 Aug 2005

This adds support for RSS feeds that do not list items in reverse chronological order. Upgrading is recommended.

Version 1.0.3 released 10 Aug 2005

This release fixes an RSS reading bug that caused enclosures to be ignored in some feeds that use namespaces. Upgrading is recommended, as this concerns many feedburner feeds.

Version 1.0.2 released 23 Jul 2005

This fixes a small MP3 file naming bug: escaped characters (such as the space character, which is coded as %20 in URLs) are now correctly unescaped in the local cache.

Version 1.0.1 released 9 Jul 2005

This release includes a minor feature enhancement: MP3 filenames are now preserved (for example, is downloaded to a file named DSC-2005-07-08.mp3).

Version 1.0.0 released 29 Jun 2005

This release adds support for Atom feeds. Although Atom is not yet widely used for podcasting, several test feeds, such as this one, are already available online.

I have finally taken Armangil's podcatcher out of beta status, which means that this version robustly implements the features that I personally need in a podcatcher. It also includes some features that have been requested by users.

Subsequent releases will implement:

Tips for subscribing to podcasts 19 May 2005

Armangil's podcatcher requires, as input, one or more OPML files that define subscribed podcasts. But how are these files generated in the first place? Here are some methods currently available for authoring such files:

Version 0.4.0 released 19 May 2005

This release, available here, includes minor feature enhancements. Changes:

Version 0.3.2 released 7 May 2005

This fixes a BitTorrent-related bug that was introduced in version 0.3.1.

Version 0.3.1 released 4 May 2005

This release fixes a serious network exception handling issue. The current fix introduces an unfortunate side effect, which will hopefully be removed in later releases: easy execution termination (using Ctrl-C on Linux) is no longer possible. Upgrading is recommended.

Version 0.3.0 released 3 May 2005

This release features improved robustness and increased integration with the podcasting community:

Review 5 Apr 2005

GeekTime Linux features a well written review of "two strong options for podcast clients" on Linux, one of which is Armangil's podcatcher. The review refers to this software as "podcatcher" which was its original (and obsolete) name. New and potential users will find the installation and usage tips valuable.

Version 0.2.1 released 30 Mar 2005

This release includes some minor bug fixes. Upgrading is recommended as always. Changes:

Version 0.2.0 released 26 Feb 2005

Armangil's podcatcher 0.2.0 has been released on February 18th, 2005. This release adds a new download strategy ("one") that downloads one show of each podcast, adds support for more than one OPML as argument, and fixes an OPML argument issue (arguments that were files -- and not HTTP or FTP URLs -- were not correctly handled).

An independent review 26 Feb 2005

A fairly detailed review of Armangil's podcatcher has been posted over at the "The CodeMode Chronicles" weblog on December 2004. It still applies to the most recent version, because new versions only add features and do not change existing features, at least in theory. It is worth noting that Bittorrent support has since been added.

One quick remark: the -m (download history) option should be set to a considerably greater value than 10, as a too small value increases the likelihood that podcasts will be downloaded twice. The default value of 1'000 seems more reasonable. An infinite value is allowed yet not practical, as this leads to an unbounded history file size (which is hardly desirable for a robust system).

In conclusion, this review is a great starting point for users of "Armangil's podcatcher".

Version 0.1.7 released 26 Feb 2005

Armangil's podcatcher 0.1.7 has been released on January 28th, 2005. The big new feature in this release (compared to v0.1.5) is internal BitTorrent support, which actually works for podcasts like Evil Genius Chronicles, despite the alpha status of the RubyTorrent library (which I am using). This is the best Armangil's podcatcher yet, so there is no reason not to upgrade..

Version 0.1.5 released 26 Feb 2005

Armangil's podcatcher 0.1.5 has been released on December 24th, 2004. This release adds support for BitTorrent-enabled podcasts through external Bittorrent clients.

Version 0.1.4 released 26 Feb 2005

Armangil's podcatcher 0.1.4 has been released on November 23th, 2004. This release includes robust handling of incorrect RSS files, and some bugfixes.

Version 0.1.3 released 26 Feb 2005

Armangil's podcatcher 0.1.3 has been released on November 19th, 2004. This version implements several podcast download strategies, allows download retries, and includes some critical bugfixes.

Version 0.1.2 released 26 Feb 2005

Armangil's podcatcher 0.1.2 has been released on November 12th, 2004. This version adds support for the TOX playlist format (M3U is still the default), adds HTTP and FTP support for the OPML command line parameter, and includes some code cleanups.