Podget

is Article description:: A simple podcast aggregator optimized for running as a scheduled job written in Bash. Despite its size and complexity podget only has two significant dependencies: and. It supports downloading media from the following feed types:


 * RSS.
 * ATOM.
 * iTunes PCAST.

Configuration
Configuration is mostly handled through the podgetrc and serverlist files located in the user's home directory. It's also possible to override the defaults set in these files via command line switches at runtime.

Files

 * — the configuration file location for podget.
 * — the list of podcast feeds by URL, category, and podcast name.
 * — the default location where podget drops fetched podcast media.

Unfortunately, podget does not obey XDG paths by default. For the configuration file, it's possible to fake support for XDG paths by passing ; assuming the file already exists. In order to redirect podget to do the same with the serverlist file, the option config_serverlist=${XDG_CONFIG_HOME}/podget/serverlist must be set the podgetrc file.

Usage
Typically is run in the background via task scheduler such as a  task or systemd timer.

cron
A typical crontab for podget might look something like this:

02 15 * * * /usr/bin/podget --silent

The above fetches podcast media files at 02:15. The --silent option is required to suppress output.

systemd
The first step is to create a unit file to tell systemd what to run:

[Unit] Description=A service for fetching podcast media. [Service] Type=simple ExecStart=/usr/bin/podget --silent [Install] WantedBy=default.target

With the unit file created it's time to create the timer file to tell systemd when to run the podget service.

[Unit] Description=Fetch podcast media once per day. [Timer] Persistent=true OnCalendar=*-*-* 02:15:00 Unit=podget.service [Install] WantedBy=timers.target

Similar to the cron example the above systemd example fetches podcast media at 02:15. If the server is not online at 02:15 then the media is fetched the next time the server comes up.