if its too loud, turn it down

Friday, June 12, 2009

Recording audio streams from KEXP

Seattle's KEXP is one of my favorite internet radio stations. They have live streaming in 128kbps with this link:
Great for ripping shows for yer ipod. But if you miss a show...KEXP's has a great streaming audio archive. Unfortunately, it is in RealMedia and Windows asf formats. They have a complex interface in order to obscure the links, but the format looks like this (below). They are in 6-hour chunks. You can edit the timestamps and start times to get the show you want:
I can't get mplayer to start at a specific point in the stream. Unfortunately the only program I can get to do that is Windows Media Player for Mac. I then use WireTap Studio to record the stream from Media Player.


  1. I made a python script to play the kexp programs from the command line under linux. The script works by actually visiting the kexp program page and finding the link from there. I use it to quickly listen to a specific show without opening a browser myself and as an alarm clock.

    Playing around with different formats and players I soon realised that the only player under linux that will allow seeking (this includes the seeking done by visiting the webpage and selecting any program that is not directly at the start of one of the 6 hour chunks) only works with the Real Media Format.
    You will be able to get mplayer to start at a specific point using .rm?start= at the end there. You cannot seek within the player it seems but you can do this in Real Player 11.

    I used to preferr the 96k Windows Media streams but it is really not well supported by mplayer and there seem to be no alternative players for linux.

  2. Kasbah - care to shre the python script? If you put it into PRE tags with class="brush:python" it should be shown as code.
    In terms of ripping KEXP streams, I've found it's better to rip the program at the time it airs, because it's a nice 128kbps mp3 stream. Not sure why their archive is in such crappy formats, probably for rights management reasons.

  3. I enjoyed the quality of the 96k WM streams and do recommend those for ripping. I am not too sure about the realplayer quality as I only have a (mono) laptop speaker right now. I suppose they archive in a way that is easy iest for them. I would like to see it in ogg really but they will never be able to please everyone anyway.
    I will post the script here when I think it would be useful for the public (too many dependencies (e.g. lynx) at the moment and quite a few bugs considering I am just trying to get it working on one system.

  4. Rory, I just stumbled across this and wanted to say thanks. I've been wanting to play KEXP on my N800 for awhile, but hadn't been able to find the link to the actual audio-stream. Just entered your first link and it is working great. Thanks a lot.

  5. I too just found this link. Anyone using linux? I would love to chat. I tried ripping the stream to individual tracks, but no matter how I tweak things, there is about 2-3 seconds of garbage at the beginning of each track [maybe the end also]. I am currently just ripping the stream to single files when I want to record a show. Next will be to put it in cron so that it starts maybe a minute before and 1 after each show. Too bad there is not a way to programatically tell a mp3 player to adjust the output volume. You could pad the beginning of the mp3 stream with a ramp volume command. Any way to use audacity to rip the digital output of the mp3 player like it was the digital out of a turntable? Re-rip with a smooth volume transition on those tracks where you want to cut apart tracks manually, like between genre sets?

  6. big shame on kexp for making their site unusable on linux machines. I made a bug report about this 2 years ago and they just ignored it. no more donations from me.

  7. Love you so much if this works......


    Just got married and this would be the greatest wedding present to us both. love john in the morning.

  8. Would you please help me with the time stamp format?


Note: Only a member of this blog may post a comment.