The configuration file .castgetrc should be located in a user´s home directory. It defines the behaviour of the RSS enclosure downloader castget, 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 castget when 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 fooc.
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.
Note that 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)
- %(title): title
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.