Maker tech hub — AI · 3D print · Pi · ESP32 · plus the classic tech archive.

Free ESP32 kit · Books · Network Ninja · Archive

Classic tech archive. From the original averyjparker.com tech blog — historical context; pair with modern guides where noted. Full archive · Maker projects · Network Ninja

Classic tip · Classic

Automatically downloading a file mp3 with a bash script

Linux systems give you many possibilities and one of them is good scheduling (cron), another is good scripting capabilities. I've done things with linux fairly easily that with Windows would have bee…

Written by

Avery J. Parker

IT veteran, maker educator, and author of Network Ninja, 3D Printing Mastery, and AI Workflow Mastery. Business IT: Diversified Tech Solutions.

Linux systems give you many possibilities and one of them is good scheduling (cron), another is good scripting capabilities. I've done things with linux fairly easily that with Windows would have been next to impossible and required me to download several other things to make it happen. Anyway, I recently saw mention of a linux, bash scripted podcatching client. Basically you tell what podcasts you subscribe to and it downloads them on a schedule. It reminded me of a couple scripts I've got running that do similar things, but not from a true rss/podcast feed. First up, I've mentioned before that I've been brushing up on my spanish the last couple of years. I've found shortwave news broadcasts to be helpful. One such is the Voice of America buenos dias America broadcast. Of course, many shortwave broadcasters make their shows available online. I found the place online where it's updated each day and did a very simple script....
#!/bin/bash date=`/bin/date +%m%d%y` cd /home/userdirectory/mp3downloads/ /usr/bin/wget ftp://8475.ftp.storage.akadns.net/mp3/voa/latam/span/buenos.mp3 -O buenos_$date.mp3
It's a simple wget, the file at their end changes each day, I get the date in a format I want and wen wget pulls the file down it saves it with the date so I can keep track of deleting old ones. Nice and simple. I've done an almost identical script for radio Nederlands noticias... the only difference being a different web server for the wget. The only thing now to do is to set the script as executable and schedule it with cron (or kcron) for a daily download. One warning, there will be no size limitations, so you'll have to clean up/archive old ones on your own. Some will not be as straightforward as the above. I have a couple for instance that use lynx to dump the source of a webpage and then grep for mp3 and then pipe through sed to get the address to the mp3 file, a bit tricky and site specific, but it works.