Ripping NPR to MP3 for an iPod

I bought an iPod Photo just before Thanksgiving and I’ve been enjoying it ever since. I bought it primarily for the gym and for traveling, and it’s worked well for both of those. However, I thought the sessions on the elliptical machine might be more fun with some news or a talk show to listen to.

I listen to NPR in the car anyway and have often wished that I could time shift their shows (a “TiVo for radio”, if you will). Of course, none of their shows are available in MP3 format (well, except for On The Media). I was aware that many NPR stations offered MP3 streams off their websites, but I still didn’t have a way to record and schedule recordings.

After some searching, I discovered Streamripper, a command line utility that records MP3 streams. I then found PublicRadioFan.com which lists the MP3 streams for hundreds of NPR stations. Putting those together, I’ve been able to record NPR as MP3s and, with some scheduling, grab individual shows for my iPod.. Here’re the steps which I went through, in case you wanted to try this on your own. I run this on my PC but this process may be adaptable to other platforms as well (in particular, I’m pretty sure Linux or FreeBSD could be made to work).

  1. First, download the latest version of Streamripper and extract the zip to a directory of your choice (I put mine in “C:\Program Files\Internet\Streamripper\”).

  2. Then, load up PublicRadioFan and set your time zone and, if you like, you can set some other preferences as well. But, be sure to set your time zone — if you don’t, none of this will work.

  3. After that, it’s time to start looking for programs which you’d like to record. So, head over to the Schedule Grid: Advanced Options page. Here’re the settings which I’d recommend:

    • What time? — choose the “starting at” radio button along with “6 hours”. Then, it’s just a matter of choosing a day and time which is kinda close to a program which you’d like to record. So, for Morning Edition, you could choose 5:00am; or, for Marketplace, you could try 2:00pm (keeping in mind that those represent 5:00-11:00am and 2:00-8:00pm, respectively).

    • What Stations? — you could leave this at the default or you may find that setting it to “USA” (assuming you live in the USA) may yield more relevant results (since Europe probably doesn’t have many NPR affiliate stations).

    • What audio formats? — since Streamripper can only grok mp3s, you should uncheck all of these except for “mp3”.

    • What programs? — feel free to narrow this down but “all programs” is probably fine to start; you can always narrow it down later if you end up with too many results.

    • Display format — I find that the “grid” is easiest to work with.

  4. After all that, click on “display listings” to get a list. Look through the programs to find one which you’d like to record and, once you’ve found one, right click on the lightning-bolt icon next to it (the Winamp logo) and choose “Save Link As” to save the link to your local drive. Yeah, this may seem a bit weird, but those links only point to a playlist and we need the URI for the actual mp3 stream.

  5. At this point, it may be helpful to open up a text editor to make a few notes. Anyhow, once you’ve downloaded the playlist file (which should have the extension “m3u”), open that file in another text editor window and copy the path in there to your “notes” text file. Then, going back to your web browser, make a note of these attributes from the show which you’d like to record:

    • Its name
    • Its starting time
    • The recording time, in seconds (which would be 60 x the time in minutes)
  6. Now it’s time to build the batch file (we’re almost there!). Open a third text editor window and enter these two lines:

    • C:\path\to\streamripper.exe http://servername.net:12200 -a D:\path\to\name-of-the-show.mp3 -s -l 7200 -o
    • del D:\path\to\*.cue

    Of course, the “\path\to\” bits represent your respective paths for streamripper and the path you’d like to use for the mp3 file. And, servername.net is the server which you extracted from the .m3u file earlier. The port “12200” is just hypothetical — use whichever port was listed in the m3u file (which may be a different number or there may be none at all). And, you'll also need to specify the time length to record (in seconds) which is the “7200” above.

    So, what’s the “del” statement in there? Well, “.cue” files are a meta-file which are created through the mp3 extraction process; but, they’re useless for our purposes. So, deleting them just makes for less hard drive clutter.

    And, if you’re curious, here’s what each of those parameters do:

    • -a: this records the mp3 to a single file. Without this, Streamripper may try to rip the show into several separate files (which could be useful if you’re ripping an Internet radio station, but not really for public radio).

    • -s: this prevents Steamripper from creating a directory for each stream. I find it easier to just sort the files on my own afterwards.
    • -l: as mentioned above, this specified the length of time to record, in seconds.

    • -o: this tells Streamripper to overwrite tracks in the destination directory. I find this handy since I only really want the most current episode of (say) Morning Edition at any given time.

  7. That’s it for the batch file, so just save it with a “.bat” filename, such as morning-edition.bat or marketplace.bat.

  8. Just two more steps left: scheduling (this one) and id3 tags (the next one). Now that you have a batch file set up, it’s just a matter of telling your OS to run that file at the program’s starting time. To do that, go to Control Panel -> Scheduled Tasks and choose Add Scheduled Task. You can probably figure out the scheduling from here — you choose the batch file which you just created and set it to run at the program’s start time.

  9. At this point, you’re all set to record mp3 streams from NPR but they’ll probably have weak (if any) id3 information in there (which is the data inside an mp3 file that describes the artist name and track number, among other things).

    So, after each time a file is downloaded (or at least just before you sync those files with your iPod), you’ll need to add its id3 information. For that, I prefer to use Mp3tag (which is free). And, here’s the naming scheme which I like to use:

    • Title: the show’s name, such as “Morning Edition”

    • Artist: “NPR”, which ensures that all my public radio mp3s are grouped together

    • Album: the date, in YYYY-MM-DD format. This way, after selecting the Genre and then Artist on my iPod, I can select a date and see all shows from that day.

    • Track: I generally choose a number the chronological sequence of the shows for that day, so that they’ll play back in the same order in my iPod. So, Morning Edition might be “01” followed by Day to Day (“02”) and Marketplace (“03”).

    • Genre: I’ve set all of my NPR recordings to “Public Radio” for the genre.

So, that’s how you can set up Streamripper to record MP3s from NPR. I know it may look like a lot of steps, but it's not too hard once you get into it. And, if it doesn’t record what you’re expecting, you may find it helpful to try setting your recording time to five seconds or so (temporarily), and then running the batch file manually; that way, you can see whether it’s recording the right station or even whether it’s recording at all. Or, if you get stuck, leave a comment and I’ll try to help out.

These Thick Pancakes, They Vibrate?

I went to SXSW last weekend and got back to Dallas Tuesday evening. Then, the following day (Wednesday), there was the DFWBlogs March Cocktail Event at New Amsterdam Coffee Haus (which actually is a bar, contrary to what you might think). I actually wasn't sure if I’d go, but decided to give it a try as I had heard that there might be some new bloggers there.

I ended up getting a bit lost on my way there and wound up about ten minutes late. Now, even though ten minutes late is still “on-time” in the DFW-blogiverse, I still expected that there’d be a few people there ahead of me. However, as I walked in the door, I took a quick look around and soon realized that I was the only one there. So, I just ordered a drink and sat down at a table which looked big enough to hold several more people. And, fortunately, New Amsterdam has an excellent beer selection; I certainly didn’t mind a few quiet moments as I sipped my Chimay White.

As I waited, I peered around the place and took in their decor. Soon enough, a few other bloggers arrived — Leia, Matt, Julie and Andrew walked in about the same time. Each of them ordered a drink and, as we began talking, we soon realized that neither Leia nor I had dinner beforehand. Leia mentioned off-handedly that the last time the DFWBlogs happy hour was at New Amsterdam, the group went off to Cafe Brazil afterwards. That sounded pretty good, actually, and I suggested that we could go get some dinner there.

After finishing our drinks — and meeting new-blogger Heidi — we closed our tabs and headed off to Cafe Brazil. And, as an illustration of the goofy road patterns in the area, I recall that Matt’s directions to get to Cafe Brazil went something like this: “ Go left on Exposition Ave and then turn left onto Elm Street. Well, actually, you don’t need to turn left onto Elm — Exposition just curves around and then becomes Elm.”

We drove to Cafe Brazil and there were plenty of free tables; we were seated just about as soon as we got there. And, while I often order a make-your-own omelette when I go to Cafe Brazil (with chorizo, feta and sun-dried tomatoes), I felt like something a bit sweeter this time. I turned to the breakfast section of the menu and the pancakes caught my eye. Of course, the menu only said “pancakes” and didn’t make it clear whether fruit-filled pancakes were available (such as blueberry pancakes which would have hit the spot right about then).

When our server came around to take our order, I just asked him what kinds of pancakes they had. I recall that there were plain, chocolate chip and some third variety of pancakes. Well, that made my choice easy — I could hardly resist a dish featuring both pancakes and chocolate. And, just to ensure some protein intake within the meal, I also ordered a side of chorizo.

Our food arrived a little while later and I dug right in. And, I’m not sure if this is typical of all breakfast-is-our-specialty restaurants, but these were some enormous pancakes — each of the three pancakes was about 6-8 inches across and about a third of an inch thick. Sure enough, there were chocolate chips in there. But, the thickness of the pancakes worked to their disadvantage. I mean, let’s not kid around — this was a chocolate-chip delivery vehicle which happened to be in a circle and I just wanted as many chocolate chips in each bite as possible.

To the cook’s credit, it was evident that the chocolate chips were added as the pancakes were cooking (as opposed to adding right into the batter) as chips might have all sunk to the bottom of the mixing bowl otherwise. With this manual chip-sprinkling midway through the cooking process, the chips were evenly distributed. But, the pancakes were so thick that even a 2" x 1" slice — a throughput of perhaps two to three chocolate chips — still left me with a mouthful of pancake.

Perhaps some thinner pancakes would resolve this. Nothing crazy or crepe-like (not that I would be opposed to that) but perhaps something closer to a quarter-inch thick. That should be thick enough to remain structurally sound when transferring them off the cooking surface while ensuring the most favorable chip-to-batter radio. Not that these were bad pancakes — they were soft and delectable — but they did have that area for improvement.

Come to think of it, most restaurant-pancakes are pretty thick, if memory serves. Maybe it’s just that their customers like the spectacle of a pile of plate-filling pancakes. So, I suppose I’ll just have to make my own chocolate-chip pancakes to get them properly unthickified. (And, that reminds me of the DFWBlogs-breakfast which we had about two years ago. Everyone joined in and we cooked up a huge breakfast; I wouldn’t be opposed to trying that again sometime.)

SXSW 2005 Panels I’m Going to

It’s mid-March, and that can only mean one thing — it's time for another fun trip to Austin for SXSW 2005. For those not aware, South by Southwest (more commonly known by its initials, SXSW) is a music, film and interactive festival in Austin, Texas; I’ll be attending the Interactive conference.

The interactive conference runs this Friday through Tuesday (March 11th-16th) and their schedule of panels is online. Here’re some of the panels which I’ll be attending:

Saturday March 12th

Sunday March 13th

Monday March 14th

Tuesday March 15th

  • 11:30 am — Notes From the Underground: The Rise of Remix Culture. I get a kick out of mashups — an art form where someone superimposes one song on top of another to form a brand new song — and I’m looking forward to seeing what they cover in this panel.

  • 2:30 pm — Accessibility Shoot-Out. In this panel, URLs are thrown into a hat and then accessibility experts look over the site and give advice. I’m concerned that I may not learn much new out of this one, but you never know.

So, those are the panels which I’ve penciled-in so far. SXSW is a great time every year and I can't wait to get to Austin!

21st Century Dental — Friendly Dallas Dentists

I’ve been working full time for RD2 since the summer and prior to that I worked for myself. And, at the time, I gave myself benefits, though they were largely of the in-case-I-get-hit-by-a-bus variety. I didn’t give myself dental benefits and so it had been about three years since I had last seen a dentist. But, now that I had a full time job with benefits, I thought that I should have things checked out at a dentist. I hadn’t felt any tooth pain or other obvious signs of tooth anomalies (otherwise I would have gone to see one earlier) but I didn’t know what they’d find either.

There aren’t many things which I fear, but dentists are probably one of them — I’m the kind of guy that winces at the sound of hearing a dentist’s drill on tv (really). So, wanting to educate myself, I Googled around for new dentistry techniques on repairing tooth decay on the chance that there might be something which could be used in lieu of a drill (on the off-chance that I had a cavity after all). And, I came across a technique called air abrasion which, in simplest terms, is like microscopic sand-blasting on your teeth:

Air abrasion works by blowing a stream of powerful dry clean air, mixed with minute abrasive particles of aluminum oxide onto the surface of the teeth. Air abrasion uses the kinetic energy principle, in which particles bounce off the tooth and blasts the decay away. […]

Air abrasion procedures are virtually painless eliminating the need for an anesthetic injection. Air abrasion systems produce no vibration and no heat from friction. The technology can’t harm soft mouth tissue and they operate very quietly.…

“Ah, that sounds good&rdquo, I thought to myself. Of course, I didn’t know if I had a cavity at this point, but I knew that I wanted to go to a dentist that offered air abrasion on the chance that I did have a cavity. The next step: search for dentists and air abrasion in Dallas. I looked through the first few links and 21st Century Dental seemed the most promising. I think I was hooked from the introductory sentence in which they described themselves as a “dental spa”. Among other things, they tout televisions in every room, massage mats on the patient chairs and fresh fresh Otis Spunkmeyer cookies.

So, I scheduled an appointment with them which was earlier this month. Laurie was my hygienist and she was very friendly. One of the first things she did was to take my pulse (with one of those automated arm-cuff machines) and she remarked that mine was a bit high. I commented that I “wasn’t really a ‘dentist person’” and that I may have been a bit nervous to which she replied “I don’t think anyone’s really a ‘dentist person”. And, after a few seconds pondering, she added “… well, except for me” with a smile.

She took x-rays of my teeth with digital x-ray which then displayed the images on an overhead LCD monitor hanging from a multi-jointed arm. And, once she got to cleaning my teeth, she handed me a remote control which set the LCD monitor to television duty. As she worked away, I flipped through the channels and settled on CNN Headline News. Not that teeth cleaning really hurts, but the scraping sound can sometimes be a bit disconcerting; and, watching tv helped get my mind off of the sharp tools in my mouth.

After the cleaning, she called in Dr Roy — Jeff is his first name — who examined the x-rays (back on the LCD monitor, so that I could look over them as well) and informed me that I had a cavity. Well, I wouldn’t say that I was pleased to hear this, but it’s not something that was completely unexpected either (considering how long it had been since I had last been to a dentist).

So, I scheduled another appointment to get the cavity filled, and that appointment was yesterday. And as I drove there, I wasn’t too nervous; but, I was a little uneasy by the time I got to the waiting room. However, the waiting room, to their credit, includes at least one hanging waterfall which actually helped a great deal. Soon enough, Michelle called me back to one of the dental chairs. And, right off the bat, she asked whether I would like laughing gas to help me to relax, to which I readily agreed.

She placed a nosepiece over my face and started the gas. And, after a little while, I did feel a bit more calm. Then Dr Roy came in to anesthetize the tooth (one of the upper-left molars). He used a machine with a jointed mechanical arm which delivered anesthetic to just that tooth (and it made kind of a purring sound in the process which I suppose is one of the better sounds a dental machine can make). However, they needed to wait a few minutes for the anesthetic to take effect. Both Dr Roy and Michelle walked out but, before leaving, Michelle asked if I wanted anything to drink while I waited. She named a few drinks including Diet Coke which is what I settled on.

She brought back a chilled can of Diet Coke and then left me to wait. Really, this wasn’t that much fun. Sure, I had sugar-free refreshment at hand, but I could only ponder the upcoming cavity-filling. I sipped the soda and looked out the window, trying to think of anything but stuff related to teeth. Fortunately, the lights in the patient rooms are always kept dimly lit — about what might come to mind if you were to think of the lighting in a stereotypical web development shop (and the hygienists and dentists use those overhead mouth-spotlights for light when they’re working).

Dr Roy and Michelle eventually returned, about 10-15 minutes later, and they reclined my chair. I asked if I’d be getting an air abrasion filling or a more traditional filling and they said that it would be a regular filling. I was aware of that possibility as not all cavities are suitable for air abrasion; still, I just reminded myself that I needed the filling and that I would just have to stick through it.

Before Dr Roy and Michelle began the procedure, Michelle offered me a variety of Internet radio stations which were listed on the LCD monitor. I asked for some jazz with the provision that I didn’t want “any of that smooth jazz”. She flipped through a few of them and I settled on a jazz classics station. And, after having chosen that, I noticed a browser window in the background which I recognized as DigitallyImported.com. I briefly pondered what it might be like to get a filling with Euro Dance pulsing in the background but thought better of it.

There was some drilling, of course, but it wasn’t as bad as I had envisioned. I was pretty relaxed from the nitrous oxide in ways that I hadn’t anticipated (not that I’m complaining). I could hear the sound of the drill but it was if I was just listening to someone’s cordless drill — my brain wasn’t making the connection of “hey, that’s a drill I hear… in my mouth!”. And, after they finished digging the hole in my tooth, they filled it with a tooth-colored resin.

When it was all done, I felt less bad than I thought I would. I had some numbness but it was mostly just that one tooth which they had anesthetized. And, my jaw was a bit stiff from having it propped open while they worked, but nothing really hurt. I walked back to the main desk and, before I left, they offered me a milkshake in a choice of vanilla, strawberry or chocolate. I asked for strawberry and they brought one by shortly. They also motioned towards a plate of the warm chocolate chip cookies under a glass lid and I helped myself to one of those as well.

I still don’t know if I’d call myself a “dentist person” but this was almost pleasant, all things considered. I found Dr Roy and his staff very down-to-earth and that really helped put me at ease. Everyone was very friendly and not once were they condescending (which is probably my number-one pet peeve of dentists). I have a follow-up appointment on Tuesday and, while I can’t say that I’m looking forward to it, I’m not fretting about it. And, if anyone needs a dentist in the Dallas/Irving area, I can’t recommend these guys highly enough.