Move from Playlists from Spotify to Google Music with Portify

When Google announced Google Play Music: All Access (yes, it’s a terrible product name. From here on, it’s just Google Music) at I/O 2013 I knew it was pretty much what I’d been looking for in a music service: the flexibility of using my existing library combined with an “all you can eat” streaming service.

I’d grown a bit disenchanted with Spotify; their library is getting bigger and better, but I have thousands upon thousands of existing tracks, some quite rare, and utilising those with Spotify is pretty cumbersome on mobile. On top of that I had many issues with the mobile app itself – constant logouts, wiping the offline tracks, and more than a few other niggles.

So when Google Music was available in the UK it was a no-brainer: Spotify got ditched and I signed up to the All Access subscription (bonus points for being a couple of quid cheaper!).

By this point, however, I’d amassed more than a few playlists in Spotify that had many songs not in my personal collection, or were otherwise sentimental and I wanted to keep. But I’m lazy, so manually searching for tracks and recreating the playlists was never going to happen!

By a stroke of luck I heard about Portify very soon afterwards on Hacker News.

Portify uses some API calls to read playlist information from Spotify, then search for tracks in Google Music, adding those it finds to a recreation of the playlist on Google Music.

The app itself is written in JavaScript, for Node.JS. A packaged version is available, but I couldn’t get it to work on my Linux station, and it appears to be an older version, so the rest of this entry details how I got it up and running with the latest code.

**NOTE:** As mentioned, Portify is a Node.JS application. I am **not** going to run through the steps for installing Node, ‘cos a) this entry is long enough already, and b) chances are any instructions won’t directly transfer over from my Linux install. You’ll also need to have git installed.

1. Get the Portify Repository:

Nothing fancy:

    cd ~/tmp
    git clone https://github.com/mauimauer/portify.git
    cd portify/data

2. Install Node Packages:

    npm install

This took a few minutes on my PC, and seemed to give some warnings, but it all worked in the end.

3. Run Portify:

    node app.js

At this point, you should be able to open a web browser to http://localhost:3132/ and get the welcome screen.

4. Import Playlists:

The process from here on is pretty straightforward – give Portify the credentials to both your Google Music and Spotify accounts, select the playlists you want to import, then start the process.

I found a couple of caveats when I ran Portify:

  • If you have 2-factor authentication on your Google account (and you should!) then you will have to create/use an application specific password rather than your normal account password.
  • Portify can sometimes choke on large playlists. My Starred Tracks list was a few hundred long, and Portify gave up about 2/3rds of the way through. Conversely, a slightly longer playlist transferred fine this evening.
  1. […] out automating development workflows – installed Node.js (which then allowed me to run this), setup some basic Grunt.js tasks, Imagemagick batch processing, and some more […]

    Like

  2. I get this error ” Cannot find module ‘spotify-web’ “

    Like

Comments are closed.

%d bloggers like this: