Streamripper:
Downloads:
Streamripper front ends:
Streamripper add-ins:
Older front ends:
StreamripperX (OSX)
Streamripper32 (Win32)
These projects are "dead" and unsupported

Documentation:
Support:
Development:
Contact:

Please ask Streamripper
questions at the forum
as this helps everybody


Valid HTML 4.01!

SourceForge.net Logo

   Tutorial (console)      Documentation   
   Tip when installing on Windows   
Place the consoleWin32.exe in your '%systemroot%\system32' folder (or if you use 16-bit windows (95/old 98) '%systemroot%\system'). This way it will work from any prompt/folder. Stuff like this is redundant in *nix of course...

If u say wtf '%systemroot%'? I say 'cd %systemroot%' will show you :)

The easiest way to get started is to find the URL of a stream you want to rip. Usually I find the URL by loading it up in Winamp or XMMS and querying for the source URL (right clicking on the Playlist entry and choose something like "View file info"). Once you have the URL you can begin ripping.

   Command examples [first *nix then Win32]   
streamripper http://scastsrv2.shoutcast.com:8038/

consoleWin32 http://scastsrv2.shoutcast.com:8038/

This would rip Monkey Radio (as of 12/11/2002). It places the tracks into two directories: one called "Monkey Radio", and a sub-directory "Monkey Radio/incomplete". The incomplete directory is for tracks that Streamripper does not know the beginning or end of. The first and last tracks you rip, for instance, would be in incomplete.

Also you can listen to the stream by creating a relay server...

   Command examples [first *nix then Win32]   
streamripper http://scastsrv2.shoutcast.com:8038/ -r

consoleWin32 http://scastsrv2.shoutcast.com:8038/ -r

When the program starts it will display what port it's relaying the stream on. It defaults to 8000 but you can choose another port. To listen to your relay server open up XMMS or Winamp and enter your machine name (default is 'localhost') with the port as you would any other stream (see the complete example below).

Let's look at a more complete Win32 example (prompt is removed):

   Command example [Win32]   
consoleWin32 http://scastsrv2.shoutcast.com:8038/ -d K:\Streamrips\ -r 8008 -q -u FreeAmp/2.x

Ok, with this SR is told to save the rips in my 'K:\Streamrips\' folder, create a relay at port 8008, add sequence numbers to the output files, and use the UserAgent 'FreeAmp/2.x'.

   Output   
Connecting...
stream: Monkey Radio: I.... LIVE...... AGAIN!
server name: SHOUTcast/SolarisSparc v1.9.2
bitrate: 160
meta interval: 24576
relay port: 8008
[getting track name... ]
[ripping... ] Nightmares On Wax - Bless My Soul [ 4.56M]

You can see the set relay port in the output, as well as the metadata (which isn't sent on to Winamp/XMMS).
To load this relay stream in Winamp/XMMS, in the Playlist click 'Add', then 'Add location', and type "localhost:8008". Doubleclick the entry to start listening...

   Command line parameters   
To display this info on your console, type "streamripper" (on *nix) or "consoleWin32" (on Windows).

-d <dir> -------- Optional: The destination directory

Selects a different base directory for ripping, just in case you don't want to dump tons of mp3's into whatever directory you're at.

-s -------------- Optional: Don't create a directory for each stream

I don't know why you would want to do this. Normally streamripper will make a directory with the same name as the stream to place the tracks into, this disables that.

-r <base port> -- Optional: Create a relay server on base port, defaults to port 8000

Creates a relay server on base port. If base port is not specified it defaults to 8000, otherwise whatever you entered for base port. NOTE: without the -z option, it will keep trying higher ports if the port is unavailable.

-z -------------- Optional: Don't scan for free ports if base port is not available

Disables the "scan for free port" feature. Use it if you're paranoid. or don't like ports being open.

-p <url> -------- Optional: Use HTTP proxy server at <url>

If you're behind a proxy server, enter it here. This hasn't been tested in a while but it should still work. Please tell me if it doesn't.

-o -------------- Optional: Write over tracks from incomplete

When Streamripper rips tracks, they are first in the incomplete directory. If the tracks finishes properly, it moves over to the main directory, but if the track is already there it doesn't. This makes streamripper copy over tracks that already exist in the main directory. I didn't make this the default because if you're ripping a stream for a long time (trying to get the whole thing) it helps to see the incomplete directory fill up with tracks you already have. Once the incomplete directory is as large (or larger) then your main directory, you can be pretty sure you've got the whole stream.

-c -------------- Optional: Don't auto-reconnect

Once again, not sure why you wouldn't want this. Normally Streamripper will be very aggressive and try to re-connect to a dropped stream, this disables that.

-v -------------- Optional: Print version info and quit

This is used alone with no other parameters to show you which version of Streamripper you're running.

-l <seconds> ---- Optional: Number of seconds to run, otherwise runs forever

This can (for example) be used with scheduling to rip a specific radio show from home while you're at work (or other way around). See the forum for posts on differnt ways of scheduling. Don't forget that this parameter takes seconds (10 minutes = 600 seconds, 1 hour = 3600 seconds etc..).

-q -------------- Optional: Add sequence number to output file

Makes Streamripper save files with 'prefixes' of 001_, 002_, 003_, up to 999_ :)
Great stuff if you need to know where to find those missing bits of sound that got chopped off (without searching through a lot of rips).

-i -------------- Optional: Don't add ID3V1 Tags to output file

If, for some strange reason, you don't want the ID3V1 Tag with all its info...

-u <useragent> -- Optional: Use a different UserAgent than "Streamripper"

Some stream-servers will not accept the default Streamripper UserAgent, the solution is using this parameter with the value "FreeAmp/2.x".

Link to Streamripper!   Link to Streamripper!   Link to Streamripper!