User blog:Alainn/How to export your Last.fm data (to Spotify)

Standard tools for exporting Loved Tracks

 * Spotibot (only loved tracks)
 * Playlistify

These two sites offer an easy way of finding loved tracks based on giving them a username. Playlistify has had some outages but normally they're really stable. I've tested both sites to see what results they give and it turned out that Playlistify gave more results back than Spotibot (20 tracks more of my Loved-list).

Playlistify also has an option for adding the url of an xspf-file but no option to upload one, not that handy since you can only download the file from Last.fm but not link to it. The downside of using Playlistify however is that they have sound effects while searching that are really annoying if you're listening to music. There is an option to turn this off.

Both services have a problem with searching for tracks if the number of loved-tracks is fairly large. So far anything under a thousand tracks on Last.fm gives good results, but when I tried a user with 5064 tracks loved and another with 7455 both came back as either not a valid username or zero results. It turned out that because I had enabled AdBlockPlus both sites somehow couldn't trigger the export from Last.fm. The strange thing is that after I had disabled ABP both sites could only "see" the first 700 tracks from large lists.

Ivyshere
A better solution for long lists is to not export the list in Last.fm as a xspf-file but to choose for TSV as the format in the drop-down menu (it's right underneath where it says XSPF). The export takes some time (tested it on a list with 7455 tracks) but after that you have your list in a format that can be read by Calc (part of the free OpenOffice-suite) or in Excel. Make sure that you're importing the data as UTF-8 otherwise artist and track names get maimed when they have characters like ë, é or ô.

The file will contain one column with the track name, one with the artist and one with the Last.fm-URL for that track.

Open your spreadsheet application of choice and import the data in the file (usually something like "Data" and then "Import"). While importing tell the application that the data is deliminated (split) by a tab (make sure that any option for comma is not selected) and click import. After that you have all your tracks information in front of you, make sure you see the three columns. Now you have your data in Excel you need switch the order (tracks and then artists) to artists first, before copying.

Now select the first track name at the top left, scroll all the way down to the last artist names and shift-click that name. Copy those to the clipboard (ctrl+v).

Next, open the following url in your browser: http://www.ivyishere.org/ and click on "import your playlist now", go to the copy+paste section. Click the field and paste (ctrl+v) the list. You can adjust the results so they only return the original versions (the reason why anyone would want the covers is beyond me) and the option to only return tracks that are available in your country (meh). Next click on upload and the site looks through the list if it can recognize the format. You then get asked whether you want it to look for them in the available tracks on Spotify, click yes (obviously) and it goes to work. After some time you get to see a picture with underneath it a text with "Click to paste to clipboard", do so.

Next, go to the Spotify application, open a new playlist, go to Edit and click on Paste. Now you have playlist with all your loved-tracks in Spotify.

An alternative for ivyishere.com is http://spotmysongs.com/ but that one is a bit more work. I'll test it later to see if it gets more results.

Finetuning: I've solved most of the issues with importing Last.fm's tsv-files into OpenOffice (rename extension to .csv => open in Calc => set character set to UTF-8 => set both artist and track column to "text" => good import) I'll write it out tonight in a journal with some screenshots.

Finetuning 3: Ivy gives different results depending on the time of day|how busy Spotify's servers are.

Exporting your complete Playhistory
Go to http://cs.joensuu.fi/~pviktor/lastscrape/ and download + install LastScrape (windows only). Unzip the file and start the program, enter your username and let it scrape Last.fm for your playhistory. This will take a lot of time if you've played a lot of music. When it's done you can close the program since you're not going to upload the data to libre.fm. Important: I've tested this with six other accounts and with half of them (including mine T__T) the scraping got stuck somewhere. Inside the folder/directory where LastScrape is unzipped you'll find a text-file called "listens.txt".

Finding the tracks on Spotify
Follow these steps:
 * Open the textfile and select everything that's in it.
 * Open a spreadsheet program like Excel or Calc and choose for "paste special", in the dialogue-box choose for "paste as unicode". That way the data will be pasted in three separate columns.
 * Now you can choose to let the data be as is but you can also have it searched by historical order. You can do this by selecting the third column and change the order (make sure you let it expand the range so the artists and tracks are also re-ordered).
 * Next, select the artists and the tracks. Keep in mind that Spotify has a limit of 10000 tracks per playlist, so it's best to select them in batches of 10K.
 * Go to http://ivishere.org, click on "import your playlist now" => "copy+paste-section" => paste the tracks there. Let that search for the tracks on Spotify.
 * After a while it has found the tracks that are available on Spotify, click on the button and they're copied to the clipboard.
 * Go to a new playlist in Spotify and choose paste in the menu bar (don't know why you can't do that directly in the list, but oh well)
 * Rinse and repeat for the other tracks.

iTunes (Mac) - import a XSPF playlist
xspf2iTunesMac This utility imports the contents of a XSPF playlist file into a new iTunes playlist (in other words: it acts as a track resolver). Usage: Load a XSPF playlist file and choose a name for a new iTunes playlist. Each XSPF playlist entry, which already exists in your iTunes library, will then be duplicated into the new created iTunes playlist.