i've been using mpd as my music player lately. it's a neat little program; very minimalist but it does a good job with my music library and is a lot less flakey than yammi has been lately.
mpd doesn't really keep track of the songs you've played though. i really like archiving that kind of data for some reason. i have to keep my packrat tendencies under control when it comes to physical stuff since my apartment would fill up, but with data, i figure disk space is cheap. so if there's any chance i might someday find it useful, i try to figure out how to put it in a database.
so, a couple lines of python later, i had a little script that would detect song changes and fire off an http request with the info.
with the help of subway and a few more lines of python, i had a nice web interface to the database of what songs i'd listened to when. it's open to the public too; the curious can check out the last 50 songs i've listened to updated in real time.