Podsh is a podcast downloader that does things the way its benevolent dictator wants (me). I once looked around for a command line podcast client, but I could not find anything I liked. So I wrote my own. It is written in plain Bourne shell.

Note: this tool was recently renamed to “podsh” from “posh” to avoid some conflicts with other software.

Summary of features:

  • Few dependencies (curl, xsltproc), easy installation.
  • Robust feed fetching and parsing, tracking of downloaded content, proper chronological ordering, sensible naming of downloaded files (audio or video) and expiry support.
  • Supports both RSS and Atom 1.0 feeds.
  • Easy configuration and feed subscription management. Self documenting (help, -h).
  • OPML file support (import, delete, export).
  • Suitable to set up as a cron job for periodic automatic updating of podcasts or interactive use.


  • 0.9: Added support for Atom 1.0 feeds.
  • 0.8: Initial release.

Get it here: podsh-0.9.1.tar.gz, version 0.9.1, 2012-07-22 [PGP signature: podsh-0.9.1.tar.gz.asc]

[GitHub repository]

Feedback, bug reports and/or patches welcome, use email or GitHub.

Command examples

Add a couple of feeds to config:

$ podsh -a http://somewhere.com/feed.rss -a http://foo.feed.com/?rss "Foo Feed"

Update all feeds, download only the most recents item for each feed:

$ podsh -u

Downloaded episodes can now be found under ~/Podcasts/, each podcast in its own

Update feeds matching 'bbc', download and keep at most 5 items for each
feed, older items are expired:

$ podsh -u bbc -l5 -e

Remove feeds from config matching 'bbc.co.uk' and delete them from local cache:

$ podsh -r bbc.co.uk -X

Show list of all podcast subscriptions:

$ podsh -s

Show status of all podcast subscriptions:

$ podsh -S