Streamripper:
Downloads:
Streamripper front ends:
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

Welcome to the Streamripper home page, an Open Source (GPL) application that lets you record streaming mp3 to your hard drive

   News 2008/05/04      Streamripper 1.63.0 Released   
Streamripper version 1.63.0 is released. New features include a configuration file for stored settings, ability to run the windows GUI application without running Winamp, and a new experimental silence detection method. Internal changes include a transition from wide characters to utf-8, a new dependency on glib, and separating the winamp plugin into a thin DLL and standalone EXE. Many bugs have been fixed, including crashes when reconnecting, checks for full disk conditions, percent-escaping of user names, parsing year and track from metadata, relative path in cue file, race conditions in relay server, id3 bug on 64-bit systems, and problems connecting to certain servers.

Download from the sourceforge page.

Thanks to everyone who tested and reported bugs!

Thanks also for all of the great patches for 1.62.X and 1.63 beta versions, Chris Rohlf, nn, Max Mutrix, Andrew Neitsch, Yoav, and capisce.

Tentative list of goals for 1.63.X series:
  • Fix problem with -a flag
  • Implement PCRE for parse rules
  • Skin improvements (fix single pixel problem, load compressed skins, etc)
  • Add "-o version" option
  Greg 
   News 2007/05/19      Streamripper 1.62.0 Released   
Streamripper version 1.62.0 is released. This is a major release, with (nearly) full support for unicode and character set trancoding.

Download from the sourceforge page.

Thanks to all the beta testers, Guenni and TTA, and everyone who submitted skins.

Thanks to everyone who submitted patches for 1.61 and 1.62 beta versions, including ASk, Ulf Harnhammer, John Spray, Les Smithson, Obiguan, Martin Bockwinkel, Michael Ablassmeier, Daniel Potts, 9EUvY5gQPB4=, bd, Albert Bachmann, Daniel Lord, Chris Pearson, and isverg.
  Greg 
   News 2006/05/02      Audio Broadcast Flag Bill and PERFORM Act   
Please take a moment to educate yourself about a very dangerous proposal for legislation in the United States offered by Rep. Mike Ferguson (R-NJ), called the "Audio Broadcast Flag Licensing Act of 2006". If passed, this legislation would severely limit your rights to record and enjoy digital audio.

About the Audio Broadcast Flag Bill [eff.org]

You probably also know about the PERFORM act, proposed by Senators Feinstein (D-CA) and Graham (R-SC). This proposal would require webcasters to use digital rights management (DRM) to encode the music streams, and would disallow the use of shoutcast MP3 streaming.

About the PERFORM Act [eff.org]

As an American, I am concerned with the erosion of our civil rights by misguided legislation. Maybe you feel the same way. It is our responsibility to inform our representatives and senators. They need to understand that these kinds of proposals do not represent the best interests of American citizens. I encourage you, streamripper users, to take up the pen. The EFF links above can be used to send an email to your representative. Use them! Want to send a letter or make a phone call? Even better.

Together, we can stop these bills from becoming law. Thanks!
  Greg 
   News 2006/03/06      Ogg/vorbis support   
As of version 1.61.18, ogg/vorbis streams are now fully supported. This includes support both song splitting and the relay server.

Please be aware of certain caveats. (1) Other ogg streams, such as ogg/theora or ogg/speex, may not work properly. (2) The parsing rules are not yet implemented for ogg streams. (3) There may be gaps in the sequence numbers of the ogg pages, which could cause problems playing them in certain players.
  Greg 
   News 2005/11/12      Version 1.61.16   
Version 1.61.16 is now released. This version includes a new feature, the ability to rip from external metadata. It can be used for recording streams that do not send artist or title information using metadata, but instead send this information using other means. For example, some streams update the current artist and title using html or xml. Another example is icecast 1.x, which sends metadata through a UDP socket.

Streamripper can get artist and title information from these kinds of streams using a helper application, specified using the -E option. The helper application needs to find the title and artist info, and write it to stdout. Streamripper reads the stdout of the helper program, and uses it to split the tracks accordingly.

The example below is a helper application, written in perl, that can be used to fetch external metadata from an xml file on a remote web site.

#! /usr/bin/perl
###########################################################################
# This is an example script that sends external metadata to streamripper.
# It implements an external program that:
#   1) Fetches a web page
#   2) Searches the web page for the artist and title information
#   3) Sends the information to streamripper on stdout
# To use this script:
#   streamripper URL -E "perl this_script META_URL"
###########################################################################
use LWP::Simple;
$url = $ARGV[0];

while (1) {
    # Fetch xml file at location $url
    my $content = get $url;

    # Get the artist and title
    if ($content =~ m/title="(.*)" artist="(.*)"/) {
        $title = "TITLE=$1\n";
        $artist = "ARTIST=$2\n";
        $end_of_record = ".\n";
        $meta_data = $title . $artist . $end_of_record;
        # Send to streamripper
        syswrite (STDOUT, $meta_data, length($meta_data));
    }
    sleep (10);
}

This new feature is available on all versions: unix, windows and winamp.
  Greg 
   News 2005/10/16      Forum upgrade II   
Sourceforge wants all the projects to move to their new MySQL 4.1 server by the end of November. Therefore, I upgraded the forum this Sunday.

If you can't post, or anything else seems wrong with the forum, please send me an email.
  Greg 
   News 2005/09/20      Version 1.61.13   
Version 1.61.13 is now available for unix and windows.

This version includes a substantial change in the design of the internal buffer and relay server. The new relay server uses less memory per client, and supports burst-on-connect.

In addition, this version fixes several problems with the mp3 frame parsing code. Streamripper no longer chops the mp3 frames, and it now performs silence detection at a much higher granularity.

I expect a few rough edges on this version, so please help out by reporting new bugs to the forum or the sourceforge tracker.

  Greg 
   News 06/28/2005      New features in 1.61.9   
The latest version, 1.61.9, is now available for unix (windows version coming soon). It has two new feature that might be of interest.

The first feature is that now you can design rules for choosing which files to save, and which files to discard. This is done by including extra rules in the parse_rules.txt file (specified by the -w flag). If the metadata matches a regular expression pattern, the song can be saved or discared. The following examples may illustrate the point:

# Exclude tracks that contain the given expression
# The leading "m" says this is a match rule
# The trailing "x" means that the track should not be saved (excluded)
m/advertisement/x

# Save tracks that contain the given expression
# The leading "m" says this is a match rule
# The trailing "s" means that the track should be saved
m/[Ff]unk/s

# The first m//e, m//s or m//x rule that matches determines the
# action that is performed. If none match, then by default the file
# will be saved. If you prefer having the default being that the
# files aren't saved, include the following as the last rule
m//x

The rules are parsed in order, and the first matching rule will be used. Thanks to Albert Bachmann for this new feature!

The second new feature is pattern substitution for output file name formatting. This is done by using the -D flag together with an output pattern. The following patterns can be used:

%S Stream
%A Artist
%T Title
%a Album
%D Date and time (per song)
%d Date and time (per execution)
%q Sequence number (automatic detection)
%Nq Sequence number (starting from number N)
%% Percent sign

The following usage examples will illustrate how to use the -D flag:

# Save files as Stream/Artist - Title.mp3 (this is the default)
streamripper URL -D "%S/%A - %T"

# Save files as above, but with sequence numbers (same as -q)
streamripper URL -D "%S/%q_%A - %T"

# Save files as Stream/Artist/Title.mp3
streamripper URL -D "%S/%A/%T"

  Greg 
   News 05/08/2005      Forum upgrade complete   
The new forum is now in place. Please don't use the old forum any more. You can find the new forum here:

Streamripper Forum

  Greg 
   News 05/07/2005      Forum upgrade   
Some time soon, probably tomorrow (Sunday afternoon EST), I will shut down the openbb-based forum and bring the new forum one on-line. The forum will be unavailable for an hour or so while I migrate over the posts.

Wish me luck.
  Greg 
   News 04/23/2005      Recent updates   
The most recent update, 1.61.8, is now available. This version should fix most of the compile and runtime problems for BSD, OSX and Solaris. Together with this release, I wrote up a little matrix describing for which operating systems I was able to get streamripper to compile. Send me a note to update this matrix as needed.

The System Compatibility Matrix

I guess many of you have noticed our recent problems with the relay stream. Finally, I think the situation is stable as of 1.61.7 or higher. If your client supports buffering, set the buffer size large enough (I use 48kB), and you shouldn't hear any skipping. However, clients that do not have buffering capabilities, such as mpg321, will need to use an earlier version such as 1.60.6. Or, if you are clever, you can use the -a option to stream to a file, and then point your client to that.

The final solution to the problem of clients that don't buffer is to perform "burst-on-connect". This is what shoutcast and newer versions of icecast do. However, this require a more complex internal buffering scheme than streamripper currently has. Furthermore, there are two related (but seemingly unrelated) issues that also can be solved using a more complex buffering scheme: relay server for ogg streams and the chopping of mp3 frames. Therefore, improvements the interal buffering code will be an important part of the next few releases.
  Greg 
   News 11/22/2004      Finished download page   
Just to let you know, I've finished the migration of historic versions to sourceforge file release system. You now can download the latest version from the sourceforge summary page, or older versions from the sourceforge files page.

Also, I've released version 1.61.1 for windows, so try that out and let me know how you like it. Unfortunately you won't be able to set regular expression rules in the plugin version, but internally it is using the default rules.

Finally, I'm moving my apartment next weekend, and will be in and out of contact for a while. To all you streamripper veterans out there: please help out on answering forum questions while I'm gone. Thanks!
  Greg 
   News 11/13/2004      At long last, a new version...   
A new version of streamripper is now available for unix users (the windows version will be along soon). The main new feature in this version is metadata parsing using regular expressions. Why is this important? It's important because it gives you precise control over how streamripper interprets what goes into the title and artist fields.

Just to whet your appitite, here is an example of the regular expression parsing that is now supported:

# Ignore metadata that begins with "A suivre"
# The leading "m" says this is a match rule
# The trailing "e" means drop the metadata
m/^A suivre:/e

# Strip off anything like "- Mp3Pro" from the end of the string
# The leading "s" says this is a substitution rule
# The trailing "i" means case insensitive matching
s/[[:space:]]*-?[[:space:]]*mp3pro$//i

# Strip off something like "- " from the beginning of the string
s/^[[:space:]]*-[[:space:]]*//

# This is the normal parsing rule: "Artist - Title"
# The trailing "A1" means that the artist (A) matches subpattern 1
# The trailing "T2" means that the title (T) matches subpattern 2
m/^[[:space:]]*([^-]*?)[[:space:]]*-[[:space:]]*(.*?)[[:space:]]*$/A1T2

# This is slightly different parsing rule: "Artist, Title"
m/^[[:space:]]*([^,]*?)[[:space:]]*,[[:space:]]*(.*?)[[:space:]]*$/A1T2

I hope you get the idea. Use the -w flag to tell streamripper which file contains your parsing rules.

Download 1.61.1 here

Also, you may have noticed that I'm attempting to migrate over to the sourceforge file release management system. All the historic unix releases are already there. Windows releases will be there some time next week. The main reason for doing this is that it will be easier for me to maintain than our current web-based download system, but there is also the benefit that it is mirrored worldwide.
  Greg 
   News 8/28/2004      Current status   
Hi all, I just wanted to give you an update on current and future plans of streamripper. I feel that the current version pretty much accomplishes what I wanted to do for version 1.61. Here is my list of planned features for version 1.62:
  • Support for ogg shoutcast streams (rfe #594504)
  • Logging and quiet modes for command line
  • Relay without writing to disk (rfe #640908)
  • Fix problems with broken frames (bug #525936)
  • Improved handling of non-ASCII characters sets
We also have some infrastructure problems that need addressed.
  • Upgrade forum software
  • Fix skin submission procedure
  • Fix web download page
Finally, a big thanks to everyone who submitted patches for the 1.60 series, including Darrick, Michael, Mike, Krellan, Marcin and Laetita.
  Greg 

   Check out 'History (Old News)' for older news & info.   

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