i've been using <a href="http://www.musicpd.org/">mpd</a> 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":http://anders.ccnmtl.columbia.edu/cgi-bin/trac.cgi/file/pane/trunk/scripts/paned.py that would detect song changes and fire off an http request with the info.
with the help of "subway":http://subway.python-hosting.com/ and a few more lines of python, i had a nice "web interface":http://anders.ccnmtl.columbia.edu/cgi-bin/trac.cgi/browser/pane/trunk/ 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":http://pane.thraxil.org/ updated in real time.