I do this, and I also find that there is another module already out there written by someone to do it already...
my next step on this discovery is to analyse the other modules code, and see how they did it differently/better..
I've found that I can see a lot of ways to contribute to other ppls work, and 'make the world a better place by sharing my code'.. in the case of Napster, try MP3::Napster modules.. see how your code shapes up :o)
Sure there are tons of modules but where's the fun in that?
Seriously, I don't think there are modules for CuteMX or iMesh. Those protocols are completely undocumented ... I reverse engineered part of them (enough to search and download).
The MP3::Napster is more like a client (just like the PSX client, for Scour eXchange)
And as always, I like my code better ... because it is ;-)