[colug-432] podcasts script in bash
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
> 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
> 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