First off, this is a kick-ass idea.

However, I wouldn't do "on demand", I would do "one song past demand", e.g., "request this song, and it fetches in the background whilst the current song plays". You're not going to see "guaranteed" 128kbps, so if you do it on demand, you either have to come up with strong buffering and such, or dump it off to a file, add that file to the playlist all while the "current" song is playing.

But that would require a little bit of help from the Empeg boys, methinks.

Also, you might consider using GNUtella as your model, only because Napster /may( not)?/ be around much longer.

Insert obligatory anti-Metallica-lawsuit rhetoric here - http://www.metallicasucks.com/ -