Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-top1.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 13
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-top1.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 13
Warning: include() [function.include]: Failed opening 'c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-top1.php' for inclusion (include_path='.;C:\php5\pear') in E:\hosting\member\jgoeres\did\scripting\radio.php on line 13
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/radiotop.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 17
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/radiotop.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 17
Warning: include() [function.include]: Failed opening 'c:\hosting\webhost4life\member\jgoeres\/htmlf/radiotop.php' for inclusion (include_path='.;C:\php5\pear') in E:\hosting\member\jgoeres\did\scripting\radio.php on line 17
Introduction
If you're like me, you've got an iPod, a love of
Public Radio, and a distaste for the idea of paying about
$2 per program per episode to Audible.com for the
privilege of time-shifting all the best shows that are
on at times that just don't fit into your hectic schedule.
This page describes a set of shell- and AppleScripts I've cobbled together that, when combined with a wee bit
of patience and Terminal magic, allow you to record any program from any of several NPR
internet audio streams right on schedule, every day/week/etc. I'll also demonstrate
how some clever Smart Playlists
can give you access to just the shows you're looking for with just a flick of the scroll wheel.
Finally, the main recording script is intended to be understandable
and easy to extend, so you can add your own favorite NPR stations and/or suggest them
to me for inclusion in the scripts.
Requirements baby, you've got what I need...
First
and foremost, these instructions assume a fair amount of comfort inside the MacOS. I've tried to make
everything clear, concise, and simple, but you're going to need at least a passing familiarity with
Terminal.app and some comfort with common Unix utilities.
In addition to your sense of adventure and a positive attitude, please remember to pack the following:
- Mac OS X (10.1 and above is probably sufficient, but I've only tested on 10.2.8 and above.)
- AppleScript (probably installed with OS X).
- iTunes (if you don't have iTunes, what kind of Mac user are you?)
- CronniX (nice GUI for cron, unless you like configuring it by hand)
- About 100 MB of free space on the same partition as your home directory. This will vary greatly
depending on the length & bitrates of the programs you're recording.
Features & Limitations every rose has its thorn...
The Good
- Records directly to MP3 format.
- Automatically imports recordings into iTunes Library and tags them reasonably (program, station, date).
- Records silently, rather than playing through speakers.
- Once configured, runs entirely without user intervention.
- Constructed entirely from free software (some as in beer, some as in speech)
The Bad
- Only records ShoutCast/WinAmp streams. Most NPR streams are Windows Media or RealPlayer now. Sorry.
- Does not always recover well from dropped packets. This appears to be a limitation of streamripper, so
there's nothing I can do about it. Some streams perform very well, while others are less reliable.
- Only records silently -- cannot listen to a stream while recording.
- Is slightly obtrusive (it opens a Terminal window and manipulates iTunes windows).
- Does not play well with fast user switching. I haven't
actually tested how badly this will go, but I know that the iTunes import script will choke if a user other than the
current one already has iTunes running. NOTE: I've taken a bit of a look at this now, and I'm going to rewrite
a significant bit of the script to play nicer. No ETA on this, but it's definitely something I want to do (7 Dec 03).
- Does not automatically delete old recordings. This is more a limitation of iTunes's AppleScript support, as far as I know.
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/radiobar.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 80
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/radiobar.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 80
Warning: include() [function.include]: Failed opening 'c:\hosting\webhost4life\member\jgoeres\/htmlf/radiobar.php' for inclusion (include_path='.;C:\php5\pear') in E:\hosting\member\jgoeres\did\scripting\radio.php on line 80
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-bottom1.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 85
Warning: include(c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-bottom1.php) [function.include]: failed to open stream: No such file or directory in E:\hosting\member\jgoeres\did\scripting\radio.php on line 85
Warning: include() [function.include]: Failed opening 'c:\hosting\webhost4life\member\jgoeres\/htmlf/chewtoy-standard-bottom1.php' for inclusion (include_path='.;C:\php5\pear') in E:\hosting\member\jgoeres\did\scripting\radio.php on line 85