Main page
Developer blog
Project page

Other projects


Section: User Manuals (1)
Updated: October 2005


goldenpod - A podcast client written in perl  


goldenpod [OPTIONS]  


GoldenPod is a podcast client (or podcast aggregator, or podcatcher, feel free to pick whichever name you want) written in perl.

It supports reading configuration files in ~/.goldenpod/ and then saving the podcasts to the directory defined there (by default ~/Podcasts/). It also supports just getting thrown into a directory where BashPodder used to be and replacing it automagically, or having its config files in the same directory as itself and then just being run from a random location and detecting and performing a chdir correctly. This, along with being able to run in silent mode by simply adding -s or changing the corresponding option in the configuration file makes GoldenPod both cron-friendly and user-friendly.



GoldenPod has two different configuration files. One is goldenpod.conf the other is the podcasts configuration file. The goldenpod.conf file should hopefully explain itself.

The syntax of the podcasts configuration file is simple; for each podcast you want goldenpod to download you add the URL to the RSS feed on a line by its own to the podcasts configuration file. That is either one of ~/.goldenpod/podcasts.conf, ./podcasts.conf or ./bp.conf. GoldenPod will first check for ./podcasts.conf, then ./bp.conf and lastly ~/.goldenpod/podcasts.conf - it will never read more than one podcasts configuration file.

After adding you can simply run goldenpod to synchronize those feeds. The first time you run goldenpod to synchronize a feed you might want to use --first-only (see further down for more information about --first-only).

Example podcasts.conf

 # Put your podcast feed URLs in this file seperated by newlines 
 # All lines starting with # are ignored 
 # Paranormal podcast 
 # Realm of dreams (short stories) 
 # Perlcast (perl related podcast) 
 # LUG Radio 
 # The delta park project 
 # Jawbone radio 
 # Infidelguy 


-h, --help
Display the help screen
-v, --verbose
Be verbose.
-s, --silent
Be silent.
-l, --nolog
Don't create a message logfile when in non-verbose mode. Has no use with --verbose
Print the configuration and podcast list filenames that GoldenPod would read, in addition to the logfiles it would use and write to.
Print some simple statistics: How many files you currently have in your catalogue, which file is the latest, which file is the oldest and how much space they are using.
-u, --dry-run
Used along with --copy or --rmold. Just display what would be done, don't actually copy or delete anything. Implies --verbose
-w, --no-download
Only write the logfile, don't download anything. Useful when you want to subscribe to a podcast but not download all of the old issues. You can edit the logfile afterwards and remove those you want to download. Implies --verbose
-f, --first-only
Only download the first file in any feed, permanently ignore the others. So running --first-only will fetch the first file in the feed, and then permanently ignore any older ones - but will (unless you use --first-only) download all later files. If you want to download any older you will need to edit the logfile. Unlike --no-download this does not imply --verbose
-c, --copy /path/
Copy the last N downloaded files to /path/ and delete the other files in /path/. This is very useful for synchronizing the latest podcasts with your MP3 player. N is either 4 by default or optionally the value supplied to --files.
-d, --delete
For use with --copy, delete all files in /path/ unless they are one of the files we are about to copy. It will not allow you to delete files directly in your home directory (but all subdirectories except Documents) nor any files in /usr /var /dev /etc /lib /sbin /sys /boot or /proc.
-n, --files N
For use with --copy or --rmold. Copy/delete N files instead of 4.
-o, --rmold
Delete N old podcasts, where N is either 4 or optionally the value supplied to --files. Use this to free up some disk space taken up by old podcasts. This will obey --ignore-pattern but not the $IgnorePattern configuration option. It will always leave at least the latest podcast.
-i, --ignore-pattern
Ignore files matching the regular expression pattern supplied when downloading or copying podcasts.

For example: "--ignore-pattern foo" would ignore any podcast containing the word "foo" in its filename, or for a more advanced example: "--ignore-pattern '(foo|bar|baz)'" would ignore all podcasts containing either of the words foo, bar or baz in it's filename. Like everything else the --ignore-pattern expression is case sensitive. If you would like to match both Foo and foo you could do: "--ignore-pattern [f|F]oo". --ignore-pattern supports standard perl regular expressions (will be executed within m//).



GoldenPod is written by Eskild Hustvedt <zerodogg at skolelinux dot org>  


~/.goldenpod/podcasts.conf or ./podcasts.conf
The file containing a list of podcast feeds, alternatively ./bp.conf
The configuration file for GoldenPod, which contains the location to save streams to, your desired verbosity level, the default IgnorePattern and if you want to use the PodcastFilter.
~/.goldenpod/podcasts.log or ./podcasts.log
The logfile containing the URLs for the podcasts already downloaded. This file will be podcast.log if working in bashpodder compatibility mode.
~/.goldenpod/goldenpod.log or ./goldenpod.log
The logfile written when in silent mode.
This is a file in the same syntax as podcasts.conf. It is copied to ~/.goldenpod/podcasts.conf the first time goldenpod is run if it exists. This file is never read directly, and has no effect whatsoever after the first time goldenpod is run.


Copyright (C) 2005 Eskild Hustvedt.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.




Copyright (C) Eskild Hustvedt 2005 - Some rights reserved
Valid HTML! Best viewed with ANY BROWSER Creative Commons License Created with vim StaticDynamicHtml