castgetrc - configuration file for castget
The configuration file
.castgetrc should be located in a user's home
directory. It defines the behaviour of the RSS enclosure downloader
and in particular the list of channels it operates on.
The file is based on a simple key-value format. It consists of a channel
definition for each RSS feed
castget should process. A channel definition
starts with a line containing a channel identifier enclosed in brackets. The
channel identifier can be freely chosen by the user and is used for all
subsequent operations on the channel. Following this are one or more key-value
pairs on the form
key=value that define
castget's behaviour when operating
on the channel. A channel definition ends when another channel definition is
started or at the end of the file.
Lines beginning with a hash character (`#') and blank lines are considered comments. All identifiers, keys and values should be UTF-8 encoded.
Key-value pairs in a channel definition define the behaviour of
processing the channel. The channel definition
[fooc] url=http://downloads.bbc.co.uk/podcasts/radio4/fooc/rss.xml spool=/home/joe/podcasts
for example, instructs
castget to use
/home/joe/podcasts as a download
directory when processing the channel
Retrieve RSS feed from this URL. The field is mandatory for all channel definitions.
Download enclosures to this directory.
Write the fully qualified file names of all downloaded enclosures to an m3u style playlist file with this name.
Restrict operation to enclosures whose URLs match this regular expression.
Add or overwrite the `lead artist' (TPE1) ID3v2 tag in enclosures that support this.
Add or overwrite the `content group' (TIT1) ID3v2 tag in enclosures that support this.
Add or overwrite the `title' (TIT2) ID3v2 tag in enclosures that support this.
Add or overwrite the `album' (TALB) ID3v2 tag in enclosures that support this.
Add or overwrite the `content type' (TCON) ID3v2 tag in enclosures that support this.
Add or overwrite the `year' (TYER) ID3v2 tag in enclosures that support this.
Add or overwrite the `comment' (COMM) ID3v2 tag in enclosures that support this.
Save downloads using the given filename pattern instead of deriving it from the URL of the enclosure. See FILENAME PATTERNS.
A channel definition with the channel identifier
* will define a global
configuration affecting all channels. The global configuration
for example, is equivalent to adding the key-value pair
id3contenttype=Podcast to all other channel definitions.
Key-value pairs in channel definitions override the global configuration.
Filename patterns can contain patterns on the form
%(parameter), which are expanded to form a complete filename. Patterns are expanded once for each enclosure download and can therefore be used to generate filenames that are unique to each download.
Anything that is not a pattern is as a literal that will be reproduced verbatim (subject to some sanity checking). The complete pathname of a download is determined by concatenating the channel's spool directory with the filename.
castget will refuse to overwrite files that already exist except when it is invoked with the
-r option to resume downloads. Some RSS feeds reuse the same filename for all enclosures. In such cases the
-r option will corrupt existing downloads unless you use filename patterns to construct unique filenames.
The following patterns take information from the
item element or the enclosure in the RSS feed:
%(date): date (by default on the format YYYY-MM-DD)
The following take information from the
channel element or the enclosure in the RSS feed:
%(channel_title): channel title
If any of the information required by a pattern is missing from the RSS feed or is invalid the pattern will be ignored and removed from the resulting filename.
If a channel configuration is removed, the channel status remains the same so that if the channel is subsequently re-added, any enclosures marked as already downloaded will not be downloaded again.
The source distribution includes a sample configuration file demonstrating all supported settings.
Marius L. Jøhndal.