Software

Automatic Updating of New Podcasts with Radio DJ

That has to be one of the lamest topics I’ve ever made for a blog post but it’s at least descriptive.

This is a short guide for users of the Free RadioDJ software who want to automate the process of adding new podcasts to the rotation.  This is mildly complicated but not overly so and it does require the use of outside programs to make it work.  For this example, I’ll be using the NoAgenda podcast.

The first thing you’ll need is a pod catching program.  I use gPodder but if you have a preferred alternative you can use whatever you like.  The key here is that the program needs to download the files into one regular location that you can reference with some batch files.

For those who are less familiar with the old school DOS environment and batch files, basically, a batch file, or .bat is a file which contains command line commands which will be executed in order.  It’s similar to making scripts in Linux only for Windows/DOS.  For simplicity, I recommend making a single .bat file for each show you want to run and naming them something like renameSHOW.bat.  I keep mine in the c: Root directory but you can put them in a folder somewhere if you’d like.  It’s probably better to try to keep all files in folders without spaces since DOS and the command line can get funny when spaces are involved.  This goes for your downloaded Podcasts as well.

To change the default download directory in gPodder, right click a Podcast and change the name description to one without spaces.  For example, if the default picked up is “No Agenda”, change it to “NoAgenda”.  For other programs you’ll have to figure this out on your own.

Next, create a batch file.  If you have file extensions turned on you can right click in the c: directory and do a “Create new –> Text File” then name it, for example “renamenoagenda.bat”  Alternately, simply open up Notepad, then save as “renamenoagenda.bat” in the appropriate directory.

Edit the file with Notepad or any preferred basic ASCII editor.  Add the lines shown below.

if exist d:PodcastsNoAgendanoagenda*.mp3 del d:PodcastsNoAgendanaradio.mp3

rename d:PodcastsNoAgendanoagenda*.mp3 naradio.mp3

You’ll want to replace the paths in this manner. “d:PodcastsNoagenda is the directory where the Podcasts are stored.  This will be dependant on your program and settings.  I have a second drive in my Pc where I store all the music RadioDJ uses.

“noagenda*.mp3” is the generic name of what’s downloaded by gPodder.  Each episode is something like “Noagenda-Episode-Date-Whatever.mp3.  They ALL start with “noagenda” and all end with “.mp3”.  using this will pick any episodes in the directory.

The file “naradio.mp3” is the file used by RadioDJ.  It is a generic file that RadioDj has in it’s list and it is of the type “Variable Length Audio”.  This will make RadioDJ get the length when it goes to play this file.  i use this format “radioXXXX".mp3” for simplicity.  For example, I’m also rotating FLOSS Weekly, which is called “radiofw.mp3”.  The key here is that the file CANNOT have the same starting name as the downloaded podcasts.  If I were to call it “noagendageneric.mp3” for example, then it would be picked up by the “noagenda*.mp3” call which would screw everything up.

Now, the essense of what this file is doing. 

if exist d:PodcastsNoAgendanoagenda*.mp3 del d:PodcastsNoAgendanaradio.mp3

 

This line says “if there is a file named noagenda*.mp3*, then delete the generic file.  I had trouble originally because I simply had the .bat delete the generic file.  This presents and issue if a Podcast has not been updated and there is not a new file to replace it.

rename d:PodcastsNoAgendanoagenda*.mp3 naradio.mp3

This line says “Rename noagenda*.mp3 to the generic file.”  This will create the new generic file that Radio DJ will use.  Also of note, this will “consume” the new episode.  This whole process requires that there is only one new episode.  if you’re clever this script COULD be adopted to create a series of rotating episodes.  I’m not going to get into that detail here however.  Essentially it would be a series of scripts that run daily.

Which brings up the next step.  You’ve created a batch file, now you need to schedule it to run using Windows task scheduler.  Simply set it up to run as needed.  For example, i run new episodes at 7PM, so i run the file at 6:30 PM on the day it’s needed.  The changes are essentially instantaneous so i could run them as 6:59 if I wanted.  I also have a short new segment which runs hourly.  This one runs at 4AM.

The thing that will sort of break this is if the downloaded new episodes do not use a regular file name.  Also if your Podcast feed isn’t updated in time.  The result hwoever will be that the generic file won’t change and an old episode will run in it’s place, so at least something should run.