- I give it an ordered list of MP3 files.
- When a user loads some URL in (e.g.) iTunes, those files are streamed out, one after another, with appropriate metadata (extracted from underlying ID3 tags) sent just as each file starts.
- When the user connects, it starts playing at the beginning of file #1 for each user. (As opposed to multicast-style, where all users get whatever's-on-right-now at the same time.)
- The underlying individual files themselves should not be accessible.
I don't think I can make Icecast2 do this, nor Apache::MP3. But maybe I'm wrong.
Failing that, can someone explain to me what asynchronous streaming metadata format iTunes actually understands, and what headers/protocol it requires? It doesn't appear to do the "icy-metaint" thing; does that mean it does the UDP thing? I don't see headers being exchanged for either; and yet, it seems to update metadata somehow. Please don't make me run a packet sniffer. I hate that.
Update: Nevermind, I wrote my own.