(I don’t know if this is getting beyond the scope of what’s good to do in a comment thread–I’d be into brainstorming around this more, if that’s fun / useful.)
Part of my thought about this is that there’s a progressive experience that goes from basic, static, HTML web page *about* a song (or album), to a functional song (or album) experience as a standalone file (say MAFF), to a fully functional song (or album) experience in one’s music library. So, that’s an opposite / positive way of describing graceful degradation.
When there’s a URL on the page in a link, that works in any browser. But, in the awesome player / library, that URL is something special to process with wget, and then (in some cases) to override with a local path to the downloaded file.
So, I would imagine the “format” part to follow a few basic style conventions that can be parsed by the player / library for unique features of the software, like file download or quick summary info popups.
I definitely think the software is the more interesting / challenging thing to work on, mostly because there are so many interactions “beyond-Winamp” that become possible, that can be explored and played with.
But, at a core “engine”-level, the software is maybe just managing a directory of MAFF, extracting data and info from the song / album HTML, maintaining a database of corresponding data / info (e.g., play count, track relationships, my tags, etc.), downloading / uploading / transferring media files, and downloading / uploading / transferring / importing / exporting parts of the library database.
Not super trivial, but I don’t think there’s a big puzzle to the engine — the puzzle is in the new interactions.