Home > Projects > Cmdpod > Download

Cmdpod (command pod) is a command line podcatcher that plays, downloads and streams your favorite podcast feeds. Written in classic Bourne shell script, cmdpod happily runs under most operating systems including: BSD, Linux, OSX and Busybox for Windows. And yes, here's a screenshot.

News: Feed list updated & expanded!

Usage

syntax: cmdpod [-l NUM | -p NUM | -d NUM] [-s | -v | -m]

-l 0|1  list newest '0' or all '1' episode URLs
-p 0|1  play newest '0' or all '1' episodes
-d 0|1  download newest '0' or all '1' episodes
-s      spider current index
-v      view current index
-m      view manual

Options
-l 0|1List newest '0' or all '1' episode URLs in the current index. Use this option to create M3U playlists ('cmdpod -l 0 > playlist.m3u') for players that can stream online content.
-p 0|1Play newest '0' or all '1' episodes in the current index.
-d 0|1Download newest '0' or all '1' episodes in the current index to the current directory.
-sCrawls the current index reporting each feed server's HTTP status code. Export results to file ('cmdpod -s > spider.csv') to create a pipe delimited database. A status code of '200 OK' indicates the feed is available and ready, elsewise an error occurred.
-vView the current index using the system pager as defined by the environment variable $PAGER, defaulting to 'less'.
-mView this manual as described by option '-v'.

Index Files

When the script starts, it scans the current directory for the existence of a cmdpod index file named after the current day of the week:

monday.cpx, tuesday.cpx, wednesday.cpx...

If cmdpod can't find or otherwise can't read an index file representing the current day of the week, index 'default.cpx' is parsed instead. Index file names are always lower cased and have an extension of '.cpx'. Thus, 'default.cpx' is correct, while 'DEFAULT.CPX' is not. Lines are terminated in typical Unix fashion (hex: 0x0A).

An index file contains a list of podcast RSS/XML feeds, with one feed URL per line for each podcast you want to subscribe to. Empty lines and those beginning with a hash character are ignored. For example...

# ted talks daily
http://feeds.feedburner.com/tedtalks_audio

# bbc global news
https://podcasts.files.bbci.co.uk/p02nq0gn.rss

# mysterious universe
http://mysteriousuniverse.org/feed/podcast/

Portability

A nifty way of using cmdpod is by running it directly from your MP3 player. That way, downloaded episodes are always available for play. Also its wise to monitor free space as some episodes are quite large. In that case, its likely best to limit downloads to newest episodes only ('cmdpod -d 0') or estimate the duration of play based on an MP3's file size.

Requirements

Under Unix-like operating systems you'll need: sed, awk, grep, cat, rev, date, less, xargs, wget, mpg123.

Under Windows you'll need: Busybox (tiny Unix substrate), Wget (scriptable downloader), Mpg123 (scriptable mp3 player). Assuming all files are located in the current directory, you can launch cmdpod as well as pass along arguments using a native Windows batch file:

@echo off & title cmdpod
set path=%path%;./
busybox.exe sh -c "cmdpod %*"

License

[c]2018 Mike Sanders <https://busybox.hypermart.net>

Reprint freely so long as nothing is modified.