My own little StreamRipper

This is a stream ripping program I did in order to read and rip streams (like Frequence 3) sending frequent advertising messages that usually prevent users from ripping them. It’s somehow like a protection bypass ripper.

What it does :

  • Saves shoutcast streams in MP3 files
  • Saves shoutcast streams in one MP3 file with its cue sheet file
  • Doesn’t consider text information that have seen recently (this is why I did it)
  • Adds MP3 ID3 tags (ID3v1 and ID3v2) using TagLib#
  • Reads M3U playlist streams

Here are the command line options :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
StreamRipper - Help
===================
 
-h    --help               This help
-u    --url                URL to specify (stream or playlist file)
-d    --output-directory   Output directory (Default: output)
-a    --user-agent         User-Agent to specify (Default: "FlorentSR/0.2.5.16365 - http://florent.clairambault.fr/")
-e    --encoding           Text encoding (Default: iso-8859-1)
-r    --reconnect-attempts Maximum reconnect attempts (Default: 60)
-m    --min-file-size      Minimum file size (Format: 2M, 1G, 100K; Default: 2M)
-M    --max-file-size      Maximum file size (Format: 2M, 1G, 100K; Default: unlimited)
-c    --cue-sheet          Rip one big MP3 with a cue file
-x    --exclude            Exclude some pattern

As always, it can work on Windows with .Net and Linux/Mac Os X with Mono.

[ download streamripper ]

Note : This program was used to build WebRadioWatcher (only in french right now) which doesn’t do much than indexing all the played song by the webrados.

Edit : 11/11/2009 : I removed the other posts around this program. This is the only post about it. It describes the latest version of the stream ripping program I made.

Edit : 23/02/2010 : Updated the program to 0.2.5 to add the “-x” option. With it you can easily filter the “next song :” stream titles.

10 thoughts on “My own little StreamRipper”

  1. Hi Flaurent,
    i’m frequently using your streamripper on freq3. I Found out it manages to start the Files nearly on the right time, but not exactly. Also the jingles at the end of each song are disturbing. As far as i undrestand this is because of the tagging from the sender. Would it be possible to implement a more precise way of detecting the start of the music or could u make it write one mp3 of the whole stream and a cleaned up cuesheet?
    Thanks for your work and greetings,
    Jörg

  2. Thank your for your feedback.

    Yes. I noticed it too. My program just cuts the MP3 file when the stream title changes. And technically, it has a one second precision, but web radios are (I think intensionally) much less precises.

    I don’t think I have a simple way to automatically cut songs, because radio station don’t leave gaps. I could detect beat change, but I think it would take much more time than I have.

    Yes I think I could make the program build one big MP3 file with its associated CUE file. Would it suit your need ? How would you use it (with what software) ?

    I made a new version by the way. I’ll upload it soon.

  3. Hi,
    thanks for your fast reply. I yould really use a big file and correspondung cue. I have had a glance at mp3directcut. http://mpesch3.de1.cc/mp3dc.html
    It displays a kind of Waveform and the Texts from the cue above it. Its easy to move the markers to the right positions. But i didn’t try to output split files with it yet.
    Looking forward to your new version greetings,
    Jörg

  4. Hi!

    Many thanks for this! I was looking for a program that was able to do one big mp3 with cue file containing title. Your streamripper does just that :)

    Maybe there was a possibility to separate title and artist (on e.g. PulsRadio)?

    1. I have to look into it. Currently it seems that PulsRadio doesn’t stream something with an artist / title separator. I might do a next version of the program that allows to define a personal separator.

      Here is what I curently have :

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      
      # mono StreamRipper.exe -u http://www.pulsradio.com/pls/puls-adsl.m3u
      Connection attempt 0 : Opening http://www.pulsradio.com/pls/puls-adsl.m3u
      Might be a playlist file...
      Adding server : http://firewall.pulsradio.org:80
      Adding server : http://stream.pulsradio.com:5000
      Adding server : http://88.191.96.49:5000
      Connection attempt 1 : Opening http://firewall.pulsradio.org:80
      This is a shoutcast stream...
      --> begin
      --> Euro Club 25 avec Cortex
  5. I can clearly say pulsradio works fine. I made some modification into StreamRipper so that it saves file lowercase and (but keeps the MP3 tags in the right case), and that it manages weirds chars like “§” as artist / title separator.

  6. Hi Florent,

    unfortunatley I just read this posting right now. I’m quite interested in your WebRadioWatcher. Why isn’t it available no longer. Could you please give some detailled info about that project?!

    Thx
    Anti

  7. Hi Florent,

    I want to rip only ID3 tags into a text file and without ripping audio stream. Lets if i start off a icecast stream, in an hour i just need to get the text file with the list of songs they played.

    Is it possible with your software ?

    Thank you very much for your help in advance.

    rgds
    Nik

Leave a Reply

Your email address will not be published. Required fields are marked *