At lot has changed in the last 10 years - a lot of music is now streamed from the likes Web Radio 2.0 - like Pandora.com, or Spotify (whatever THAT is - a radio station? Big catalog of on-demand music? Social network?) StationRipper was written in 2003, in a very different world - the only types of music station on the Internet where what I call Web Radio 1.0 - and that was almost all Shoutcast. At the time, there were tens of thousands of Shoutcast station. Looking at it this evening, there are 49,350 ratio stations playing music from all over the world - all free, and for the most part high quality. That's a vast music resource - an amazing music resource! But listening to it live, trying to hear everything out there, fully discovering what's available - now that's tough. And that's why I wrote StationRipper.
One great way to really discover what's out there is to record it - if you could record one or two hundred stations at once, across many genre's and countries, you would really find some unique, great bands - but in 2003, the tools to do so were moderately horrible. The best of breed was something called "streamripper" - a really solid tool, but it was command line only - making it tough for the average user to use it. There were some other tools (like the WinAmp plugin for streamripper, and a really awful Windows GUI program called StreamRipper32) - but these were very limiting and very painful to use. StreamRipper32 required you to manually find the URL to the Shoutcast station and enter it, and could (if you were lucky) record one station at a time. Uck!
After using these tools for a while, I finally had enough - I was finding some great music (local DJ's in France, Denmark, and Germany doing custom sets, and then buying CD's for bands I had never heard of!) but I could only record one station at a time. I'd also get a LOT of junk - I'd go and delete it, but when I re-record the station again, it would just reappear. So I decided to write my own program, to try to make the process better.
I decided to use streamripper as basis for this - but it had some severe problems. A huge amount of the programs variables were global. This worked fine for one station, but, as one of my major requirements was for it to record TONS of stations... well, that just wasn't going to work. I wrestled with this in back of my head for a few months, giving up several times. I finally had an epiphany - I could spawn many streamripper console applications from a controlling app. This would isolate everything nicely. I could spawn one ripper console for each station - the upper limit would be massive! The stability would be great!
So I went deep for about a month, writing a Windows app, and creating a plugin structure around streamripper. I did it in such a way that the main app didn't really know anything about streamripper - it just understood the plugin interface I created. I realized this would later let me add many other types of plugins (which I did a month later, with Podcast, and then years later with StationSniffer, the Pandora-like recorder).
I also realized I could embed the Shoutcast.com page directly in the app. By intercepting the user clicking on the "play" button, I could get the URL to the station automatically, spawning a streamripper to start recording it. All of a sudden I had a nice Windows app that could record (at the time) 32 stations, that users could just click on stations to record, and that would remember what it recorded before (it tracked songs - so if it gets one that it had seen before, it just drops it - no more re-recoding!)
.. and it worked GREAT! I was using it 24x7, able to listen to an amazing amount of recorded music from all over the world. I discovered entirely new (to me) types of music - Trance, German Industrial music, all kinds of amazing electronic - and the most AMAZING DJ's! The world became a new place for me - I was no longer limited to listing to a station, or limited by what was available in the local music store. I was listing to this great music all day at work, and well into the evening. If the music was available on CD's, I bought it (but I found many were not - either one time live DJ sets, or local bands from far away - hard to get a CD for a unheard of local band from a small city in Denmark!)
I had a bunch of friends at the time that were also listing to shoutcast - and also annoyed with the tools available. So I gave it to a few of them (a very small handful - among them, Paul Dixion and Ron Finlayson). They also loved it - it also changed how they listened to music. All was good.
I continued to add to it, improving it based on some great feedback....
A few weeks later, my domain was shut down for "overages". Overages? WTF? I went to yell at my web hosting company... and was shocked to hear that the StationRipper installer app had been download 5,00 times in the last couple of weeks, which was enough to put me past my bandwidth limits. After getting over my shock, I looked at the logs - and realized that the app was being downloaded from all over the US. Evidently my friends had really liked it - so they gave it to a few their friends, and so on.
While I hadn't really intended for the app to get out like that, I had been writing freeware and shareware since the 80's... so figured I'd just ahead and support it and see what happened. I paid to upgrade the hosting account, and the downloads continued. 6 months later I was over 50,000 downloads. Over the next two years it would hit over 1 million downloads...
I soon wasn't really sure how many downloads it really had - remember the magazines that had CD's in the back? By 2004-2005, every month StationRipper would be in SEVERAL of these. It was mirrored all over the place. Truly out of control! AWESOME! :)
In 2002-2003, I had been working on AnnotatedEarth.com (a user focused location aware infrastructure - way ahead of its time - too much so, as there really wasn't any hardware to run what my vision was). At the time, StationRipper was donation-ware - and doing pretty well. I decided to "chase the money", stopped working on AnnotatedEarth, and offer a %100 free version of StaionRipper - and a $9.99 paid version. I figured that I would put in a lot of my evenings and weekends working on it, and start spending more money on hosting.
Over the next couple of years I added a bunch of features - a big one beingAlbum art. When a song was recorded, StationRipper would ask a site I wrote called StationPortal.com for the art - which would go to Amazon.com to get it. At the time, it just got the art for each requested. It worked great after releasing it... until 13 days later, when I started getting access denied's from Amazon. Turns out more people were using it more often than I expected. During that 13 days, a huge (HUGE!) number of requests for album art were sent from StationPortal.com to Amazon - and Amazon was just a bit annoyed with me!
They gave me a "two day cool off". I scrambled to fix it - I wrote a a caching layer in the web service (so if 500 people asked for the same song within 6 a minute window, they'd all share the request - Amazon would only be called once). I also wrote a 30 day persistent cache - after 8 minutes, the result would be saved to SQL. Worked great - traffic to Amazon went way down, performance for my users went way up. All good. Until my hosting provider shut me down...
At the time, I was on a "shared hosting" solution. This meant that the web and SQL were shared among a bunch of users. Evidently, my hosting provider (ActiveHost) started having some really bad problems with their shared SQL - lots of timeouts, very slow response, web sites crashing, etc. They finally tracked it down to a app called "StationPortal", which was consuming 99% of the server resources... and were wondering what in the world I thought I was doing?!?
While I worked with them to try to fix it, in the end I was forced to get off the shared solution - it had just too much traffic - and get fully dedicated hosting - pricey, at over $500 a month for one server. At this point, I was getting more and more downloads - and people were actually paying. Enough to at least cover the extended prices. So I decided to go for it. I spent a couple of weeks building up this infrastructure. While it cost a lot more, I was in complete control - my users were happy, as the performance was great. I was happy, as I wasn't going to be shut down for having too many users doing too much "stuff".
This continued along for the next few years. During that time, I had something unusually happen on March 2nd, 2005.
Whenever someone bought the software, I would get an email that the registration was sent out (thankful, at least for that morning, I had 100% automated sending the registrations emails out when someone bought the software). I woke up, got my coffee, and checked my email... and noticed I had a HUGE number of registrations. So many that I thought I had been hacked! I hit send and receive.. and got two more registrations. Hit it again, got 5 more. WTF? Hit it again, 6 more. I ended up peeking at something like 9 a second. Thinking for sure that I had been hacked (no way was this real) - I logged into my PayPal account. To my utter shock and amazement, the balance was really big - really really big - mind boggling big, as each registration was making me $9, minus PayPal fees. If I'd been hacked, then the hacker was GIVING me money - not likely!
Shortly after this, I started to receive support requests. In broken English, or in straight up Danish (Google translate was my friend on those!) StationRipper has always been a bit of a techie piece of software, so a vast majority of my users were at least a bit tech savvy. The questions that morning were not at all tech savvy - questions ranging from "how do I download this thing that I bought" to "what, exactly, did I buy?? HELP!!" While I was baffled, I always support users as best as I can, regardless of how much time that takes me (StationRipper is MY software - it's very important to me that my users love and enjoy it). I spent the day getting pounded by this. Downloads were vasts, and the payments kept coming it.
FINALLY, I got an email from someone called Hans Jørgen Gylling. Here's the email exchange, telling me that StaitonRipper had been on a TV show:
-----Original Message-----
From: Hans
[mailto:register]
Sent: Wednesday, March 02, 2005 5:35 PM
To: greg@ratajik.net
Subject: Support Request from Web Site from Hans Jrgen Gylling
Hiya Greg ...
Just wanna say that your ripper is the most awesome ever.
I've recently bought it, and this evening I was presenting your
program on Danish National Television : DR1.
The link to this story is in danish (sorry *LOL*) and you'll find
it here :
http://www.dr.dk/rabatten/arkiv/2005/marts/02_stationrip.htm
In prolongue of this tv-presentation I have made a COMPLETE
comprehensive userguide in DANISH, and it could be found here if
it's of any interest for your users :
http://www.freefiles.dk/dr/rabatten/Stationripper_dk_guide.pdf
I hope the TV "commercial" would make alot of sales for you,
because I think you deserve it :)
Best regards from Denmark
Hans J. Gylling
administrator
www.freefiles.dk
----- Original Message -----
From: "Greg Ratajik"
To: Hans
Sent: Thursday, March 03, 2005 12:49 AM
Subject: FW: Support Request from Web Site from Hans Jrgen Gylling
Hi Hans,
Yep, I figured something was going on when I had over 5000 users at one time
on the domain, and yeah, my first indication was when my inbox started to
get flooded with payment notifications! :)
Thanks for the recommendation to everyone - I got a LOT of new users today,
that are happily ripping away. Feel free to mention it any time! *grin*
Would you mind if I link to that guide for me Danish users?
Thanks again!
-Greg
I was, of coursed, shocked and amazed. The reason that I was getting such odd questions was because, as I understand it, the TV program it was on was a "how to live cheaply" show. Mostly housewives and older people. Who, evidently, really DO buy the things that the television tells them to, even when they have no idea what it is!
This went on for a week or so (the show repeated several times). The word cascaded out from this - I started getting a heavy Denmark, Germany, and French user base - a lot of tech people, but a lot more mainstream. It was a wild ride!
I continued to work on the product - focused on trying to make it easier for the average person to use. Kept working on StationPortal.com, and spin offs - StationPortal is now a social network around on-line music (voting, grouping, commenting, etc). More press (the biggest was an interview in the Boston Globe), and more users. The software could now record 600 stations at once (doing even half of that could download 3,000 songs per hour). I started doing YouTube videos, which did fairly well (total of 117k views as of the end of 2013). StationPortal tweeted new music, and had the MOST tweets of ALL users for a long time (its at 3.2 million today).
As time went on, I noticed that my own music habits started to change. There was this new thing called "Pandora.com" that was AMAZING! One of the things I liked about Shoutcast, and running StationRipper against it, was the discovery aspect - if you find one station that plays a song you like, recording that station would likely find you a bunch of stuff that you also like... but it was very undirected, and you'd usually get a bunch of music you didn't like. Pandora seemed to be a great solution.
By picking a seed station (by song or band), and by giving feedback, Pandora would start playing other music on that station. As you used it more it would get better - sometimes MUCH better. So I added a new StationRipper plugin that allowed my users to download Pandora.com
This appeared to still be legal - the line has always been explicit music download (ala Napster) vs undirected (ala Radio recording, which is OK under Fair Use). The way I created this worked so well that it started recoding almost all Web 2.0 radio station - it would even download videos from YouTube (something I didn't intend!)
By 2006 the software had been downloaded many many millions of times. While only a small fraction of this translated to paying users, it was more than enough to cover my costs. I've always believed that I could really extend this (using the 15 minute of TV coverage as an example of what could happen), and by more aggressively selling the software... but I was in for the fun and joy of writing code, and learning how to run a small business. I somewhat regret not going full time StationRipper (and some other pieces of software) in 2006.
Still glad I did it - StationRippers 10 year adversity was on Dec 12th, 2013 - and it is still getting download a lot! While I have not been working on it much the last 3 years (as I joined Microsoft Research and didn't have a lot of time), I still do minor releases, and continue to support my users. And record lots of stuff :)
The rest of this manual is focused on how to use StationRipper. You can get it from the software, as a web page from the main app. It's also available as eBook on Amazon, and PDF.
Thanks, and happy ripping!
-Greg Ratajik, Dec 25th, Seattle Washington
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents