Qworum - A platform for web-based services
Qworum allows web applications to be divided into reusable interactive services.
Sell and buy services: Host your services on your own domain; sell them to websites or businesses on the service marketplace.
Build enterprise information systems: Use Qworum in your information system, and enjoy the benefits of a powerful SOA technology.
Download content To listen to the most popular podcasts, simply type something like podcatcher -v http://podcastalley.com/feeds/PodcastAlleyTop10.opml > 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:
- fix ruby 1.9 compatibility bug
- fix a bug whereby a failed content download caused all other content from the same feed to be ignored.
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:
- The generated playlists are now more informative (publication date information has been added to content titles),
- Some faulty feeds and subscription lists are now handled more gracefully (invalid URLs in such documents are now simply ignored instead of causing the whole document to be skipped).
Version 3.1.3 released 19 Aug 2008
This release includes a minor bug fix:
- Fixed a bug that failed to filter out some illegal characters in directory names when using the --restrictednames option,
- The --restrictednames option is now enabled by default,
- Updated the sponsor message that appears in verbose mode.
Version 3.1.2 released 24 Jan 2008
This release includes minor feature enhancements. Changes:
- Updated the help text that appears when the --help option is used,
- Updated the sponsor message that appears in verbose mode.
Version 3.1.1 released 10 Dec 2007
This is a minor bug fix release:
- A bug that caused content to be listed twice in verbose mode if it is declared as both RSS enclosure and Media RSS content has been fixed.
- The sponsor message displayed in verbose mode has been updated.
Version 3.1.0 released 14 Sep 2007
This release adds support for yyyy.mm 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 http://www.podcatcherstats.com/top_audio_podcasts.opml http://www.podcatcherstats.com/top_video_podcasts.opml.
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:
- podcatcher --content '^audio/mpeg$' http://www.podshow.com/feeds/dailysourcecode.xml downloads MP3 content from Adam Curry's Daily Source Code,
- podcatcher --content '^audio/' http://www.podtech.net/home/feed/ downloads audio content from PodTech.net,
- podcatcher --content '^audio/|^video/' http://www.podtech.net/home/feed/ downloads audio and video content from PodTech.net,
- podcatcher --content '' 'http://api.flickr.com/services/feeds/photos_public.gne?tags=green&format=rss_200' or podcatcher 'http://api.flickr.com/services/feeds/photos_public.gne?tags=green&format=rss_200' downloads any content from Flickr photos tagged with "green".
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 http://www.jchutchins.net/7thSonPodcast.xml 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:
- media file URLs listed in subscription files or used as arguments are now ignored,
- interrupted searches now generate more reliable results.
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 command podcatcher -F search "music daily source code" 'http://www.ipodder.org/discuss/reader$4.opml' > result.opml queries the iPodder podcast directory, and (hopefully) generates a list of music podcasts and The Daily Source Code, among others,
- the command podcatcher -F search -f 22 book http://www.podfeed.net/opml/directory.opml | podcatcher > latest.m3u queries Podfeed.net for book podcasts (22 at most), and downloads their latest shows.
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:
- added support for RSS/Atom feeds as command line arguments,
- added support for decentralized subscription lists such as the iPodder podcast directory,
- added the -f option that puts an upper limit to the number of downloaded RSS/Atom feeds,
- added support for Extended M3U and Extended PLS playlist formats,
- added support for Atom feeds that do not list items in reverse chronological order,
- added "cache" strategy which deprecates the -c option,
- fixed a bug that sometimes caused an invalid Referer header to be sent in HTTP requests.
Version 1.1.1 released 13 Oct 2005
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
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, http://mp3.dailysourcecode.podshow.com/DSC-2005-07-08.mp3 is downloaded to a file named DSC-2005-07-08.mp3).
Version 1.0.0 released 29 Jun 2005
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:
- future podcasting specifications that are relevant for podcatchers,
- features deemed interesting by users.
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:
- OPMLs generated by third parties: An increasing number of websites publish podcast subscription lists that are ready to use, such as this or this. Google is useful for finding these lists.
- OPML generation service: PodNova allows its users to search and subscribe to podcast feeds. The resulting list is available at a fixed URL.
- Manual authoring: This is the most obvious (yet the most tedious) method.
Version 0.4.0 released 19 May 2005
This release, available here, includes minor feature enhancements. Changes:
- Added support for OPML arguments containing overlapping feed sets,
- Added -i option that allows group-downloading of short shows, thus increasing the "visibility" of podcasts that update frequently.
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:
- OPML files available at sites such as Podcast Alley are now supported. The previous versions only support OPML files that follow these guidelines.
- This version can also remember a much greater number of URLs (of downloaded shows) than is practical in previous versions, as the history files that contain these URLs are no longer entirely loaded in memory. The -m option can then safely be set to a considerably larger value.
- Playlists and history files are now generated incrementally, so that an interrupted execution still produces usable results.
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:
- added support for Ctrl-C to terminate execution,
- [James Carter patch] fixed the "OPML truncation" issue where a bad RSS feed was considered the last of the list,
- added robust handling of some illegal command line arguments.
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.