Personally I like the mplayer method of doing it.
If you have mplayer installed then you can go like this:
mplayer protocol://servername/streamname.whatever -dumpstream -dumpfile /path/to/filename.whatever
And that will output the file to whatever name you want with the same format as the capture.
-dumpstream will output both audio and video, -dumpvideo will dump just video, and -dumpaudio will just output audio.
If you don't specificy a name with the -dumpfile flag it will output stream.dump or similar name. You can only use one type of 'dump' option at a time.
If you want to do a encoding into a different format you can do a audio rip like this:
mplayer medianame.whatever -ao pcm -aofile filename.wav
And that will output a uncompressed wav file. The default name is like audiodump.wav
Then you can re-encode in whatever format you want. I prefer Ogg Vorbis because I can get better sound with smaller file sizes, but mp3 is what you need for lots of hardware mp3 devices.
If it's a regularly scedualed show, and you want to record everyday into a wav file and then re-encode into mp3 then you can go like this...
#! /bin/bash
mplayer "
http://whatever.com/directoryname/showname.ram" -ao pcm -aofile /tmp/showname.wav &
# make a killme variable containing the PID number of the previous proccess
# running in the background...
KILLME = $!
# if it's a hour long show...
sleep 65m
# kill it...
kill $KILLME
# make sure it's realy dead..
# mplayer likes to stick around...
sleep 10
kill -9 $KILLME
#encode wav into mp3...
lame -h -b 128 /tmp/showname.wav /home/username/audiosaved/showname-`date +%F`.mp3
Then you can run that in your user's crontab. If it works (test it and doublecheck, and maybe figure out how to notify yourself if the mplayer recording fails) you should end up with a mp3 recording like: rushlimbaughshow-2005-11-12.mp3
If you want to listen to it while it's recording then you can just play the wav file from the /tmp directory as it's downloading, or just spawn another media player if it won't interfer with the feed.
Say you don't want to record everyday and that you don't want to reencode and just save it in your original format you can write a script like 'recordshow.bash'
#! /bin/bash
mplayer "$1" --dumpstream --dumpfile "$2"
Then you can do:
recordshow.bash "whatever://whatever.com/whatever/whatever.wmv" "whatever.wmv"
Whenever you want to record a show. Then hit ctrl-c when it's finished.
If your doing it over a network you can use 'screen' to keep the job alive if you close out the window or loose the connection.
Carefull of spaces and special characters in the name and such.
I never used this method for recording online shows, but i've used dumpstream before and it worked great.
I did, however, use a similar method to scedual recordings of TV shows using mplayer and my video capture card.
Also for one off recordings you can use the 'at' command to scedual stuff. Like if something like this:
at 16:30
> recordshow.bash "whatever://whatever.com/whatever/whatever.wmv" "whatever.wmv" &
> KILLME=$!
> sleep 36m
> kill $KILLME
> (then hit ctrl-d, for EOF)
Stuff like that.
If you want you can get pretty fancy with the bash scripts and add some error control and make it easy to do one off recordings.
Things about bash scripts is that they can do simple stuff easily and reliably, but errors are difficult to handle. But they work and mplayer and such is powerfull.
online has lots of resources on bash scripting, cron jobs, atd, and the like.