<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://community.moertel.com/ss/rdf'>
    <s:Snip rdf:about='http://community.moertel.com/ss/rdf#start/2005-02-26/1'
         s:name='start/2005-02-26/1'
         s:cUser='tmoertel'
         s:oUser='tmoertel'
         s:mUser='tmoertel'>
        <s:content>1 Radio VCR + podcatching = NPR to go, anytime {anchor:Radio VCR plus podcatching equals NPR to go, anytime}&#xA;A year ago I wrote (in {link:My New Radio VCR|http://community.moertel.com/ss/space/2004-02-20|img=none}) that I&#xA;had written a bit of software to record all of my&#xA;favorite NPR broadcasts and store them in a file-based archive.  Thanks to that software, I now&#xA;have over a year of NPR (about 16 GB) on one of my&#xA;servers, and I can listen to it whenever I want.&#xA;&#xA;To make my time-shifted listening more convenient, I decided&#xA;to maintain a subset of the archive on my iPod.  (Think&#xA;of it as single-source, private&#xA;{link:podcasting|http://en.wikipedia.org/wiki/Podcasting}.)&#xA;To make it happen, I wrote some more software that &amp;#8211;&#xA;&#xA;1. examines my NPR archive;&#xA;1. selects a subset that is ideal for iPod listening;&#xA;1. pushes this subset down to a server-based iPod &quot;landing zone&quot;; and&#xA;1. synchronizes the landing zone with an &quot;NPR&quot; playlist on iTunes.&#xA;&#xA;Steps 1&amp;#8211;3 are performed by a shell script and a Perl&#xA;script that together run as an hourly cron job on a burly server. The&#xA;shell script reads a simple configuration file that contains&#xA;rules like, keep the last 7 days worth of &quot;Marketplace&quot; on&#xA;the iPod.  The shell script then factors in some&#xA;NPR-specific constant values and then invokes the&#xA;general-purpose Perl script, ~~podcast-archive.pl~~, which&#xA;performs the heavy lifting.  It searches the archive&#xA;for desirable shows, converts the archive&apos;s&#xA;{link:Speex|http://www.speex.org/} encoding into something&#xA;more palatable to the iPod, and pushes the results into the&#xA;landing zone.&#xA;&#xA;The final step is handled by an AppleScript that runs on my&#xA;iBook.  It synchronizes&#xA;the &quot;NPR&quot; playlist in iTunes with the contents of the landing&#xA;zone.  I kick off the script by hand just before I am about&#xA;to leave the office.  In a few seconds, it syncs up my iPod,&#xA;and I am ready to roll with up-to-the hour recordings.&#xA;&#xA;The iPod organizes the tracks automatically because of&#xA;the way I set the ID3v2 tags on the files in the landing zone.&#xA;For example, today&apos;s &quot;Car Talk&quot; is tagged like this:&#xA;&#xA;{code:none}&#xA;=== TPE1 (Lead performer(s)/Soloist(s)): NPR&#xA;=== TALB (Album/Movie/Show title): Car Talk&#xA;=== TIT2 (Title/songname/content description): CT 2005-02-26 Sat&#xA;=== TYER (Year): 2005&#xA;{code}&#xA;&#xA;When all of the tracks are loaded, they end up under the&#xA;&quot;NPR&quot; hierarchy like so:&#xA;&#xA;{code:none}&#xA;NPR (~~artist~~)&#xA;  Car Talk (~~album~~)&#xA;    CT 2005-01-29 Sat (~~track~~)&#xA;    CT 2005-02-05 Sat&#xA;    CT 2005-02-12 Sat&#xA;    CT 2005-02-19 Sat&#xA;    CT 2005-02-26 Sat&#xA;  Day to Day&#xA;    DTD 2005-02-21 Mon&#xA;    DTD 2005-02-22 Tue&#xA;    DTD 2005-02-23 Wed&#xA;    DTD 2005-02-24 Thu&#xA;    DTD 2005-02-25 Fri&#xA;  ~~and so on~~&#xA;{code}&#xA;&#xA;This makes iPod-based navigation a snap.&#xA;&#xA;I enjoy my new NPR mobility.  Now I can listen to any show I want, when I want, and ~~where~~ I want.  It is so convenient that I can&apos;t help but wonder if this isn&apos;t the future of radio.  I suspect that the folks at {link:Odeo|http://odeo.com/} (think Blogger for audio) would like to think that it is.</s:content>
        <s:mTime>2005-03-03 15:28:22.919</s:mTime>
        <s:cTime>2005-02-26 13:30:33.178</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='#tmoertel'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='http://community.moertel.com/ss/rdf#'/>
                <rdf:li rdf:resource='http://community.moertel.com/ss/rdf#2004-02-20'/>
                <rdf:li rdf:resource='http://community.moertel.com/ss/rdf#space/start/2005-02-26/1'/>
                <rdf:li rdf:resource='http://community.moertel.com/ss/rdf#2003-11-15'/>
                <rdf:li rdf:resource='http://community.moertel.com/ss/rdf#A Coder&apos;s Guide To Coffee'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
    </s:Snip>
</rdf:RDF>
