Python tool for downloading music and podcasts from feeds
Go to file
Mike Lynch cf8f7752d4 Merge remote-tracking branch 'origin/main' 2023-12-10 10:05:18 +11:00
autoradio Fetch most recent N files for each feed if they aren'y already downloaded 2023-12-09 12:48:54 +11:00
tests Initial commit 2023-10-03 09:52:05 +11:00
.gitignore Initial commit 2023-10-03 09:52:05 +11:00
README.md Put more details in the README 2023-12-10 10:03:34 +11:00
config.json Fetch most recent N files for each feed if they aren'y already downloaded 2023-12-09 12:48:54 +11:00
poetry.lock Added pycurl as a poetry dependency and a note in the README to explain 2023-12-09 15:22:44 +11:00
pyproject.toml Added pycurl as a poetry dependency and a note in the README to explain 2023-12-09 15:22:44 +11:00

README.md

autoradio

A little Python script to download audio files from RSS feeds. Installation is messy and I have tested this on exactly two feeds, so it's my no means finished software.

Installation

I packaged this project with poetry and then discovered that poetry can't install pycurl properly, as the latter requires command-line options to compile it with the correct SSL backend. Here's the manual workaround:

> git clone https://git.tilde.town/bombinans/autoradio.git
> cd autoradio
> poetry install
> poetry shell
> pip uninstall pycurl
> pip install --compile --install-option="--with-openssl" pycurl
> poetry run autoradio --config config.json

The config file looks like this.

{
    "feeds": {
        "Utility Fog": {
            "url": "https://www.frogworth.com/utilityfog/feed/",
            "dir": "/media/pi/Storage/Music/Utility Fog"
        },
        "RA Podcast": {
            "url": "https://ra.co/xml/podcast.xml",
            "dir": "/media/pi/Storage/Music/RA_Podcast"
        }
    },
    "max": 10
}

Each feed has a URL and a directory where the files will be downloaded. If a file with the same name is already present, it won't be re-downloaded.

The value in "max" is the number of entries to look at from each feed, starting from the latest. The script parses the RSS feed and looks for links which seem likely to contain audio and tries to fetch them using pycurl (this handles things like redirects, hopefully).