QUOTE(DigiGuru @ Feb 21 2006, 05:08 PM)

The flash player for XMBC (it doesn't play audio, but that theoretically doesn't matter)
rewrite flash client in python instead (haven't checked what possibilities you have with python on XBMC, but I suppose it should work)
QUOTE(DigiGuru @ Feb 21 2006, 05:08 PM)

The ability to intercept the headers
just download the xml (see below)
QUOTE(DigiGuru @ Feb 21 2006, 05:08 PM)

Download/Cache the MP3 file from the header
you'll find a link to the mp3 file in the xml
QUOTE(DigiGuru @ Feb 21 2006, 05:08 PM)

As soon as the next request comes in, cache that and queue it for download too.
In the HTTP protocol, only the client sends requests. The xml file contains a list of songs, including one (or more) ahead of the one you're listening too. When at the end of a song, start playing the next (already downloaded), then download the xml again to get the url for the following song.
QUOTE(DigiGuru @ Feb 21 2006, 05:08 PM)

The only problem is that the MP3 streams that are downloaded DONT contain any ID3 information, so someone would need to find a way to extract the text from the flash file
The data is in the xml

I've been thinking about making this for a while, but unfortunately I don't have the time. I think it is easier than you think. If you use a packet sniffer (or LiveHttpHeader for Firefox) you can se how the Pandora flash client interacts with the server. It's just regular HTTP protocol. You will see that the client requests an xml file from the server. This contains a list of song data, including what you are missing in the ID3 (artist, album title, song title, category) as well as link to amazon, itunes, music.com, album cover image, and link to the mp3 file.
If I were to make a plugin for XBMC, I would make my own GUI that communicates with the pandora server in the same way as the flash client does. This way we don't need a XBMC flash player
It's probably a good idea to contact Pandora, asking them what they require to have a friendly relationship with them.
Haven't really looked into the validation, but I might be able to help if someone wants to make an XBMC plugin...