CASTGETRC(5)
π CASTGETRC(5) β the castget config file, bestie edition π
okay so this is the manual page for castgetrc (that's the 5 in CASTGETRC(5), iykyk β section 5 means file formats, and this is the file format for castget). Pull up a chair, we're configuring a podcast downloader and it's gonna be adorable. π
β¨ NAME β¨
castgetrc β the configuration file for castget π¦
πΈ DESCRIPTION πΈ
Bestie, listen. The configuration file .castgetrc should live in your home directory. It defines how the RSS enclosure downloader castget behaves, and β most importantly β it holds the list of channels it operates on. It's giving main character energy for your whole podcast setup. π
The file is built on a super simple key-value format. It's made of a channel definition for every RSS feed that castget should process. Here's how a channel definition works, step by step:
- It starts with a line containing a channel identifier wrapped in brackets, like
[this]. You can pick the channel identifier freely β it's yours, name it whatever β and it gets used for all subsequent operations on that channel. - Next come one or more key-value pairs on the form
key=valuethat define howcastgetbehaves when it operates on that channel. - The channel definition ends when another channel definition starts, or when you hit the end of the file. That's it. No closing tag, no goodbye, she just leaves. π
Lines beginning with a hash character (#) and blank lines are considered comments. All identifiers, keys and values should be UTF-8 encoded β no cap.
Key-value pairs inside a channel definition define the behaviour of castget when processing that channel. So, for example, this channel definition:
[fooc]
url=http://downloads.bbc.co.uk/podcasts/radio4/fooc/rss.xml
spool=/home/joe/podcasts
...instructs castget to use /home/joe/podcasts as a download directory when processing the channel fooc. Iconic. β¨
π KEYS π
Every key, every detail, no skipping, periodt. π
urlβ Retrieve the RSS feed from this URL. This field is mandatory for all channel definitions β like, you literally cannot skip it. π¨spoolβ Download enclosures to this directory. πplaylistβ Write the fully qualified file names of all downloaded enclosures to an m3u style playlist file with this name. π΅filterβ Restrict operation to enclosures whose URLs match this regular expression. Fancy. πid3leadartistβ Add or overwrite thelead artist(TPE1) ID3v2 tag in enclosures that support this. π€id3contentgroupβ Add or overwrite thecontent group(TIT1) ID3v2 tag in enclosures that support this. ποΈid3titleβ Add or overwrite thetitle(TIT2) ID3v2 tag in enclosures that support this. π·οΈid3albumβ Add or overwrite thealbum(TALB) ID3v2 tag in enclosures that support this. πΏid3contenttypeβ Add or overwrite thecontent type(TCON) ID3v2 tag in enclosures that support this. π§id3yearβ Add or overwrite theyear(TYER) ID3v2 tag in enclosures that support this. πid3commentβ Add or overwrite thecomment(COMM) ID3v2 tag in enclosures that support this. π¬filenameβ Save downloads using the given filename pattern instead of deriving it from the URL of the enclosure. See FILENAME PATTERNS below, bestie, don't skip it. π
π GLOBAL CONFIGURATION π
A channel definition with the channel identifier * defines a global configuration affecting all channels. So this global configuration:
[*]
id3contenttype=Podcast
...for example, is equivalent to adding the key-value pair id3contenttype=Podcast to all other channel definitions. It's the "apply to all" button of your dreams. π«Ά
And important: key-value pairs in channel definitions override the global configuration. The specific one wins. Slay. π
π¦ FILENAME PATTERNS π¦
Filename patterns can contain patterns on the form %(parameter), which get 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. Chef's kiss. π
Anything that is not a pattern is treated 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.
β οΈ Careful, bestie. Note thatcastgetwill refuse to overwrite files that already exist except when it is invoked with the-roption to resume downloads. Some RSS feeds reuse the same filename for all enclosures. In such cases the-roption will corrupt existing downloads unless you use filename patterns to construct unique filenames. That is not a drill. π
The following patterns take information from the item element or the enclosure in the RSS feed:
%(date): date (by default on the formatYYYY-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. She simply ghosts it. π
π CHANNEL REMOVAL π
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. Your bandwidth said "thank you". π§
β NOTE β
The source distribution includes a sample configuration file demonstrating all supported settings. Go peek, bestie, it's basically the cheat sheet. π
π SEE ALSO π
π AUTHOR π
Marius L. JΓΈhndal.
and that's the whole page, fr fr β this was castget 2.0.0, dated December 2018. π Go forth and download your little podcasts, bestie, you're gonna eat. β¨π§π¦
π¦ where this page comes from
- arch rolling: castget 2.0.1-4 Β· LGPL-2.1-or-later
- fedora 43: castget 2.0.1-23.fc43 Β· LGPL-2.1-or-later
- fedora 44: castget 2.0.1-25.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms