Slashdot Mirror


Scheduled Recording of Streamed Audio?

sborisch asks: "I have tried at least 15 different Internet Radio/Shoutcast players, looking for one with a scheduler (recorder) capability that actually works. The closest I have found are IRadio and Replay Radio, but IRadio depends on the Windows scheduler, and isn't the least bit reliable in my test of it. Replay seems to want to send everything through your sound card, and hence makes it impossible to listen to something and record something else at the same time. It does have a so-called direct download option, but this doesn't seem to work either. Surely someone has found a better solution than this. Please let me know." How would you schedule a recording streaming audio from either Windows or Unix?

14 of 61 comments (clear)

  1. MPlayer by thegrassyknowl · · Score: 3, Informative

    mplayer has -ao and -vo (audio out and video out) redirection options so you can dump streams to files on your disk. It plays all of the streams I have thrown at it in the past.

    Script it with cron?

    --
    I drink to make other people interesting!
    1. Re:MPlayer by TeknoHog · · Score: 2, Informative
      I've used MPlayer with a script that's called from my crontab. It is basically like this:
      mplayer -cache 8 -dumpstream -dumpfile $outfile $address &
      mpid=$!
      sleep $duration
      kill $mpid
      --
      Escher was the first MC and Giger invented the HR department.
  2. Streamripper + Windows Scheduler? by Bravo_Two_Zero · · Score: 3, Informative

    ...or Streamripper + cron on *nix (or win32 with cron installed). Maybe I'm oversimplifying?

    http://streamripper.sourceforge.net/

    --


    Amateurs discuss tactics. Professionals discuss logistics.

  3. streamripper and 'at' by Bren · · Score: 2, Informative

    Use these two programs:

    http://streamripper.sourceforge.net/
    ftp://juri x.jura.uni-sb.de/pub/jurix/source/chroot /appl/at/

    Streamripper to download the stream, and at to schedule it for a single time. Use cron instead of at to schedule a recurring thing.

  4. Total Recorder by Murphy+Murph · · Score: 5, Informative

    For Windows Total Recorder http://www.highcriteria.com/ will copy any audio stream - protected or not - on a schedule, or real time.

    --
    I dub thee... Sir Phobos, Knight of Mars, Beater of Ass.
    1. Re:Total Recorder by Anonymous Coward · · Score: 1, Informative

      I use it to archive NPR programs like 'Car Talk' and 'This American Life' for later listening on my ipod. Total Recorder will save the stream as .wav, .mp3, .ogg, or many others.

    2. Re:Total Recorder by fm6 · · Score: 4, Informative
      I've used that one. It works very well, though the user interface is a little klunky. The interesting thing is that if you tell it to direct the recorded stream to disk without also playing it back, Real Player will start playing back the stream as fast as it can get it off the net. Doesn't make any different with a live stream, but if the server is pulling up a recording for you, it speeds up too. So if you, for example, record an old 30-minute NPR interview, the recording will only take about 20 minutes.

      Of course that brings up a nasty issue. NPR presumably makes a lot of money from the downloadable material on audible.com. If a lot of people started downloading that same material for free from the NPR web site, I suspect a lot of that material would cease to be available.

  5. Why they work through your sound card by fm6 · · Score: 3, Informative
    To record a stream directly, you need software that translates the data from the stream into the format you want to save. Now, that's not very hard technically, assuming you're good at reverse-engineering and the stream you're trying to read isn't encrypted. But people who manage to do that always run into one major problem: as soon as they release their product, the owners of the streaming format are on them, telling them they're in deep legal dodo until they stop selling tools for "pirating" their customers' data.

    You can argue all you want about how legal or fair this is. But no developer has found it worthwhile to bankrupt him or herself in order to fight this kind of legal action. In any case, what's really needed is the political will to change the laws that favor IP hoarding.

    The only way around this problem is to record the sounds after it's been translated by authorized software. The simple way is just to plug a patch cord into your sound card. Or you can get better fidelity by using a special sound driver that copies the audio stream to disk. But either way, you can't avoid tying up your sound card, since you have to con the authorized software into giving you a stream that's supposedly going directly to your speakers.

    If you need real-time access to the recorded data, get two computers and a network.

  6. For non MP3 formats by RotJ · · Score: 3, Informative

    Streambox VCR, which was sued out of existence by RealNetworks years ago, still works for Real audio and video streams, as well as for Microsoft's streaming formats. Here's a manual for it.

  7. Recording Realaudio, WMF, OGG & MP3 Radio stre by t482 · · Score: 2, Informative

    a post from my weblog:

    Recording Realaudio, WMF, OGG & MP3 Radio streams on your Linux box

    I wanted to record a couple of radio shows so that I can listen to them later on my linux machine. Basically I would like to listen to a mix of realplayer, Windows Media, Ogg and MP3 streams and save them as mp3 or ogg files so I can listen to them later on my computer or iriver ogg/mp3 player.

    First I tried mplayer's dumpstream command

    1) mplayer -dumpfile cores -dumpstream http://wm.warnermusic.com/France/the_corrs/summer_ sunshine/video/Summer_Sunshine_video_458.wmv
    (thi s will give you a file called "cores" in your home-directory)

    2) mplayer -vo null -vc null -ao pcm -aofile audio.wav cores
    (this will convert the videofile to a wav audiofile)

    3) lame audio.wav cores.mp3
    (this will convert the file from wav to mp3)

    However this process core dumped on realplayer recordings over 10 minutes. Also it doesn't know about ram files so you have to download them first (wget filename) and then open them to file the real link to the rm file. So I went on to look for some other tools.

    Most of the tools seem to be wrappers around vsound and/or sox and lame/oggenc. Another tool I looked at is streamripper, which works for mp3 or ogg streams.

    First I grabbed realcap which is a shell script front end to those tools. Downloaded, compiled and installed vsound.

    Trick one - you have to ensure that realplayer is using OSS drivers
    http://www.osl.iu.edu/~tveldhui/radio/

    After that seemed to work I tried directly with vsound. vsound acts as a kind of virtual audio loopback cable ... it allows you to record the output audio stream of ... and line out jacks on the sound card.

    vsound --timing -f myfile.wav realplay http://www.radio.org/ra/show.ram
    oggenc myfile.wav
    xmms myfile.ogg

    I also checked out the trplayer - which is a command line wrapper to realplayer. http://www.linux-speakup.org/trplayer.html.

    Got the error:
    Failed to load rmacore.so.6.0: /usr/lib/RealPlayer8/Common/rmacore.so.6.0: Cannot open shared object file: No such file or directory

    Well I figured out that they must be looking for the real player in /usr/lib when it was in /usr/local/ so I copied the directories over to where it wanted to find them and everything worked ok.

    Also I tried out streamripper
    http://streamripper.sourceforge.net/ , which seemed to work fine ripping various streams. It didn't seem to be able to read the .m3u file so I had to download the m3u file with wget and look at it and then use streamripper http://url.ogg for it to work. Cool - now I can listen to the BBC, NPR, CBC, ABC (Australian Broadcasting) and Netherlands Broadcasting when I want to and where I want to.

    Finally I had a look at mp3record - a bash shell wrapper for lame and sox
    Basically it does this:
    (sox -r $strFreqRate -t ossdsp -w -s /dev/dsp -t raw -c 2 -
    | lame -s 44.1 -x -b $strBitRate -m s - $strFileName) &

  8. Agreed by Anonymous Coward · · Score: 1, Informative

    Total Recorder is great software, and has an EXTREMELY reasonable registration price (~$12). The author(s) were very quick to add Ogg Vorbis a couple years ago, which is what convinced me to pay for it.

  9. NetTransport by s4f · · Score: 2, Informative

    NetTransport, it's the Holy Grail of media downloading. The scheduler works well when you get past its idiosyncrasies, but all in all, it's the best tool I've found. And I've been looking for years.

  10. Replay Radio or WM Recorder or RM Recorder by applian · · Score: 2, Informative

    Applian has two different recording solutions for Windows:

    Replay Radio works well by recording sound coming out of your speaker, and can tune to any audio URL. It comes with a Guide of almost 1000 shows and stations, and is easy to use. It saves MP3 files, or lets you add a post-processing command to run your command-line encoder to make WMA, OGG, etc.

    http://www.replay-radio.com/

    WM Recorder and RM Recorder record raw Windows Media and Real streams (video, too), and come with a VCR-program when you buy them in a bundle. You'll need a separate program to convert these to MP3, but they work really well.

    http://www.wmrecorder.com/

  11. Pretty easy with UNIX/Linux by anewsome · · Score: 2, Informative

    I record the Jim Rome radio show from my streaming server at home every day on my work PC. I've done this for over 4 months and never missed a momment of the show.

    In crontab:
    0 9 * * * /usr/local/bin/recordRadio 1 1>/dev/null 2>&1
    0 10 * * * /usr/local/bin/recordRadio 2 1>/dev/null 2>&1
    0 11 * * * /usr/local/bin/recordRadio 3 1>/dev/null

    It's a three hour show, I create three seperate files because it's easier for me that way. /usr/local/bin/radioRecord:

    #!/usr/bin/perl -w
    # $Id: radioRecord,v 1.3 2004/10/19 18:37:29 anewsome Exp $
    use strict;

    my $num = $ARGV[0];
    my $time = 3600;
    my $date = `date +%F`;
    $date =~ s/\n//g;
    my ($year, $month, $day) = split(/-/, $date);
    my $cmd = "mkdir -p /radio/$year/$month/";
    system($cmd);
    my $file = "/radio/$year/$month/Jim-Rome-$year-$month-$day-$n um.wav";
    my $timedOut = 0;
    my $pid;
    my $command = qq~/usr/bin/ogg123 -d wav --file "$file" http://myhost/dss.ogg~;

    $SIG{ALRM} = \
    if ($pid = fork) {
    #print "Launched pid: $pid\n";
    } elsif (defined $pid) {
    exec("$command");
    } else {
    die "Can't fork for some reason\n";
    }

    alarm($time);
    while (1) {
    if ($timedOut == 1) {
    #print "Timeout, killing $pid\n";
    kill INT => $pid;
    exit;
    }
    select(undef, undef, undef, 0.25);
    }

    sub timeOut {
    $timedOut = 1;
    }