Whenever I search for music, I keep seeing results on google in reference to "last.fm".
It's an online charts thing, and it looks like the people who use it have some reasonable taste in music. The crap you hear on the radio was no where to be seen in the charts.
I decided to see what linux support was like. I was surprised to find that there's an XMMS plugin, and several other linux players, like amarok support it.
I decided to build the xmms plugin. I downloaded it, and went about configuring it. Here's the output:
checking for glib-config... no
checking for GLIB - version >= 1.2.2... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: WARNING: *** GLIB >= 1.2.2 not installed - please install first ***
It seems that it can't find glib-config. I checked packages.ubunutu, and found I needed to install libglib1.2-dev.
checking for xmms-config... no
checking for XMMS - version >= 1.2.4... no
*** The xmms-config script installed by XMMS could not be found.
*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the XMMS_CONFIG environment variable to the
*** full path to xmms-config.
configure: WARNING: *** XMMS >= 1.2.4 not installed - please install first ***
Like above, I needed to install xmms-dev, no biggie.
checking if BMP plugin is to be built... yes
checking for bmp >= 0.9.7... configure: WARNING: *** BMP >= 0.9.7rc2 not installed - please install first ***
I don't care, I don't use BMP.
checking curl/curl.h usability... no
checking curl/curl.h presence... no
checking for curl/curl.h... no
configure: error: *** unable to find libcurl headers
Oops, but again, no biggie, I just needed to install libcurl3-dev.
Now it was able to configure correctly.
I compiled it, and installed it.
I restarted xmms, and it showed up as a general plugin.
I signed up for an account on the website, to find some bastard had stolen the username I always use, so I chose something else, and then I entered my details into the plugin.
I enabled the plugin, and played some music, but the website kept saying I hadn't.
I sniffed the network traffic, and saw a lot going back and forth between my machine and post.last.fm.
That looked suspect. I closed XMMS, and ran it from the command line. I saw output from the last.fm plugin.
2006-03-15 13:48:35 [scrobbler.c] sc_parse_sb_res: got new interval: 1
2006-03-15 13:48:35 [scrobbler.c] sc_parse_sb_res: incorrect username/password
2006-03-15 13:48:35 [scrobbler.c] sc_submitentry: Retrying in 1 secs, 0 elements in queue
It was telling me that my username and password were incorrect. I reenetered them, disabled/enabled the plugin, and saw no difference.
I tried changing my password on the website, in case it was too long, because it's 9 characters, but that didn't make any difference.
I tried manually creating the md5sum of my password, and putting it in the XMMS config file, but that didn't work either.
I googled around and found:
but there is no answer there.
I had NFI what the fix was.
I noticed they had their own player on the site, so I downloaded that, and configured it, which worked fine, but it can't play local music, only stream theirs.
I then tried using "Yamipod", but this didn't work either, took 20 minutes to start, would peg my CPU while it did so. When it did start, it has problems, like the playlists pulling up the content of the next one in the list.
Something popped up, and I clicked no on it, and then the whole thing crashed. I tried a few more times to use yamipod but it was a waste of time.
I then tried amarok, and while this worked, and isn't bad, it didn't upload my song details to last.fm either. WTF?
I couldn't find any details about that either, it would just pop up a "tip" and say something like "the last several tracks failed to upload".
I wondered if perhaps the alternate username I'd chosen was too long or something. I created a new account, with a shorted username, and entered the details in amarok.
Hooray, it uploaded some data. I went back to XMMS, and put the new username/password in, and it worked straight away. I changed them back, and it failed again.
So there must be a limit on the username length, while you can have 12 character username, it doesn't work in anything but their player.
(There's a few more posts I need to get around to doing properly here too, since about January).
Update: More bugs. When I got to work, I installed the plugin for winamp, and listened to a couple of songs. I found that yamipod will submit the tracks I listened on my ipod, so I downloaded the windows version.
It runs the same as the linux version, takes ages to start, and the playlists are out of sync. I checked the last.fm status, and saw that it had a cache of the songs I'd listened to on the way to work.
I tried to get it to submit them, but it just didn't seem to. I eventually discovered that it didn't like "localhost" as the proxy address, so I had to put my own ip address in there, and then it would detect the network connection.
It wouldn't submit the list, until I played something, so I did that, and then all my tracks were submitted.
Cool, or so I thought. I went back to listening with winamp, and discovered that my tracks weren't being uploaded, and something about spam protection was being displayed.
When I looked more closely, all the tracks I'd listened to on my ipod had 10 hours added to the play time, so instead of them playing around 9am, on my way to work, last.fm had them listed as being played around 7pm (or 1900).
So now, anything I listen to today, won't get submitted, because it will show as being before I listened to the tracks on my ipod.
As a work around, I've set my ipod back 10 hours, so the times will get "fixed" instead of being 10 hours in the future, and I've set my pc's clock forward 10 hours for today.
Another Update: Something weird going on here. I changed my timezone on the last.fm site, from Australia/Sydney, to GMT+10, and then when I checked the list, the tracks submitted from my ipod had the correct time on them.
What's weirder, is that songs I submitted from my PC, being 10 hours in the future, had been moved back 11 hours, so while my PC's clock was set to 10.47pm, it showed on last.fm as being from 11.47am. WTF?
Ok, I think I know what's going on. last.fm runs in GMT. The Winamp plugin is subtracting 11 hours from the local time, to send the playtime in GMT.
Yamipod did not adjust the times from the ipod, it sent them in the local time.
The TZ setting on last.fm offsets the play times, to change them back to the localtime.
So now, leaving my ipod 11 hours behind, ie GMT, should mean that yamipod will submit the correct (GMT) times, my work pc will adjust local time to GMT, and send those, XMMS sends the times in GMT, and everything will just work.
So yet again, yamipod annoys me. It takes 20 minutes to load, the playlists are out of sync, it won't submit the cached track plays until you play something, and then it sends them in the wrong timezone. Argh.