[colug-432] podcasts script in bash

Rob Funk rfunk at funknet.net
Thu Aug 11 13:43:33 EDT 2011

On Thursday, August 11, 2011 01:02:53 PM Vince Herried wrote:
> On Thu, Aug 11, 2011 at 11:06 AM, Rob Funk <rfunk at funknet.net> wrote:
> > I've obviously missed some context, but I'm not clear on how you use it.
> > It looks overly interactive to me....
> Geeks should not write documentation, OK, this geek should not.
> I run it by using Google reader to let me know when updates happen to my
> subscriptions.
> I then go to that episode in Google reader and copy the link address
> and past it as the first argument to my podcast script. Yea a lot of
> interaction.
> I'd love to see examples where the interaction is  not required.

The key is that a true podcast uses an RSS 2.0 feed with <enclosure> tags that 
tell where the mp3 is. And of course cron can start a program every night. 
That program (say, get_enclosures.pl) can go down its list of feed URLs. For 
each feed it grabs the RSS, finds the unseen entries, finds the enclosure URLs 
in those, then downloads the files at those URLs.

That happens every night without me thinking about it.

(Originally I was saving those by date, and then listening in purely date 
order. Later I switched to saving by podcast name.)

My weekly update-podcast-cd script looks in a CD staging directory for podcast 
directories, then looks in the download area for matching podcast directories. 
(My actual directory naming is more complex and involves symlinks and numbers 
for ordering, but I'll keep it simple here.) For each podcast that goes to the 
CD, the script asks whether I want to delete the files already in the CD 
staging area (i.e. were on last week's CD), then asks if I want to copy all 
the newer files from the download area to the staging area. (I should probably 
add an all-yes option for those weeks when I know I've finished last week and 
want all of the new ones.)

Then I have a separate script that erases my CDRW and burns the contents of 
the staging area to the disc. It's separate because I sometimes want to tweak 
what's in the staging area before burning.

I leave the ID3 tags alone (these days my podcasts all have them filled in), 
though it wouldn't be hard to add code to the nightly script that looks at the 
filename, the existing ID3 text, and the text in the RSS, and uses that to 
generate custom tags for certain podcasts.

More information about the colug-432 mailing list