Importing Rdio Playlists (and Your Collection) Into Google Music

My beloved Rdio is dying, and soon. They ran out of money, sold all their assets in a fire sale and have given their users about a week to find a new music home. I tried Apple Music, but quickly ran into limitations (song limit, my patience with their awful UI, horrible apps for importing songs, etc). Asking around, it looked like Google Music was the next best option.

And then the problem was, how to I get almost 5 years of musical history from Rdio into Google Music? All those favorites playlists from 2011-2015, the road trip playlists, the special occasion playlists… all of those will just disappear.

It took a lot of experimentation, but I found a way to export my playlists (and entire collection) from Rdio to Google Music. Here’s what you need (sorry, this is going to require some Terminal time):

  • First, you need to install the Rdio Enhancer Chrome Add-on.
  • Sign up for the Google Music free trial.
  • Install gmusic-playlist – it’s a python library for interacting with Google Music. It has some dependencies, so you’ll need to follow the README instructions carefully.

After you’ve gotten those installed, you need to do the following to save your playlists and collection in a format that’ll work with the importer:

  • Go to Rdio in Chrome.
  • Click Favorites.
  • You should see an Export CSV button. Click it. Depending on the size of your library, this could take a while. It’s going to generate CSV files for your entire collection. My 35,000 song collection took 3 CSV files, and about 5 minutes to generate and download them. Chrome will probably ask you if this site can download multiple files. Say yes and wait for all of them to download (15,000 songs per file).
  • Once you have all those files, it’s time to do playlists!

For each playlist you want to save:

  • Click its link in the left nav bar.
  • Click the 3 dots in a circle button (next to the share button), then “Extras”, then “Export to CSV“.
  • That’ll download another CSV file.
  • You should open up each CSV and delete the first line (the header) or you’ll end up with “Did She Mention My Name” by Gordon Lightfoot in all of your playlists. If that doesn’t bother you, go ahead skip this step.

Now that you have your collection and all the files you want to save, it’s time to set up the gmusic-playlist importer. After you unzip it, open the folder and then open preferences.py in your favorite text editor and make the following changes:

  • username should be your google login email address.
  • Change the track_info_order line to look like this: track_info_order = ['title','artist','album','trackNumber'] (the only change is to change “songid” to “trackNumber”).
  • Change allow_duplicates to True.
  • Change search_personal_library to False.
  • Save the file.

Now you can follow the gmusic-playlist directions to import all those CSVs. Google Music has a limit of 1,000 songs per playlist, so your collection will be broken up, but at least you’ll have all your songs!

Update: I tried to like Google Music. I really did. But, it has some fatal flaws:

  • Their new releases page is bad and not updated with actual new releases.
  • There’s no social at all. It’s awful.
  • The Web UI is just broken enough to be really frustrating, and all the web apps for it are hamstrung by the web’s brokenness.
  • They do very strange things with explicit lyrics.

So, I was going to update this post with instructions on how to import your official Rdio export into Google Music, but… don’t do that.

I’m trying out Spotify Premium again for the first time since I started using Rdio, and they’ve paid attention. Social is better. Sharing is better. The queue is persistent between sessions. They have more music than Rdio did, or that Google Music has. Their new releases page is actually mostly up to date.

Instead of using this process to import things to Google Music, use the official Spotify Rdio Import tool. It takes about five minutes and works really well.

38 thoughts on “Importing Rdio Playlists (and Your Collection) Into Google Music”

  1. Thanks for writing this! I was about 90% of the way there doing the same thing this evening, but I missed the trick where you change “SongID” to “TrackNumber”, which of course made the whole thing fail. You just made my day.

  2. Hi – – I’ve gotten all of my playlists exported and have all the files downloaded from the second link, but I can’t figure out how to get the Python script thing to start importing one of my playlists. Any advice?

    1. The gmusic-playlist page has details on how to run it on various operating systems. If you’re on OS X, you’ll need to open up Terminal and run the script from the command line. If you’re on Windows, I have no idea. Hopefully someone will be able to help!

      1. I’m on OSX. I can run the script but it doesn’t work. I seem to be missing a step somewhere. Those directions don’t seem to tell me how to get the script to find my playlist?

  3. To make this easier, I’d copy all of your CSV files into the gmusic-playlist-master directory.

    You need to be in Terminal, cd to the directory the ImportList.py file is in (and that now has your csv files in it too).

    And then for every csv file, you type in: python ImportList.py Something.csv (where Something is the name of one of your CSV files).

    It’ll ask you for your Google password and then should be off and running!

  4. Thanks, I’ve done. It seems my problems has something to do with the gmusicapi file. What did you put in your gmusic-playlist-master directory from that ZIP? I get this error when it starts looking at the gmusicapi file: ImportError: No module named decorator

      1. I’ve looked at the read me on the site, and it doesn’t say anything about what to do with the google music api. Maybe there’s a link or something I’m missing. This seems to be the issue, apparently. Thanks for your help.

    1. The 500 errors? They happened to me off and on. I ended up splitting up huge CSV files into separate files with no more than a couple thousand songs in it. And if you get a server error, you can just retry the import since it won’t create the playlist until it’s found all the songs.

      1. Yeah, then it says a bunch of things about backend errors. No idea what any of that means, haven’t touched python or done anything like this until a few hours ago. Surprised I even made it this far. I’ll try doing that later and report back.

      2. Also, quick question. If I finally succeed in getting all this music into playlists in google, will they be constrained to those enormous playlists? Or will they be added to my artists?

      3. I had this happen, and was eventually able to get two playlists with ~15,000 tracks each to upload. I went in and looked for artists that had special characters in their names. They don’t seem to export correctly in the CSV file from RDIO and then I think it confuses the importer. Once I fixed that I was able to get them to work eventually, it may have just been luck that the bigger ones eventually worked, but they did work.

  5. Ahh that’s so disappointing! I’m probably going to hold off on continuing this then. Hopefully some sort of official import feature comes along soon enough.

    1. Using Rdio Enhancer, you can export both playlists and all of your favorites as CSV files. The importer creates playlists from CSV files, so they’re not really in your library, just playlists. But, to me, that’s better than nothing – and worked far better than the other things I tried.

  6. Thanks for the guide…

    Goddam. I’ve been at this for well over an hour. When I enter “python ImportList.py [name of my list].csv” I get “Syntax Error: invalid syntax” (and an arrow pointing up to ImportList.py)
    I’ve followed all steps prior to this, but was not clear on where I should put all the files/folders involved in the process.

    As you recommended I copied all the CSV files into the gmusic-playlist-master directory. But as for the “gmusicapi-d2a5cc91e209ec5fdf7ba89fe04d32c2a0155dff” folder and the “gmusic-playlist-master” folder containing the ImportList.py file itself– I just put those folders in the Python27 master directory. Is there somewhere else I should be putting these? Is there something I seem to be doing wrong?

    Thanks

    1. Ok. You should pip install the gmusic api (the line is in the read me for it). I meant to put the CSV files in the playlist directory. I didn’t get any syntax errors, so I’m not sure what the problem is, but I’ll bet it’s that ImportPlaylist.py can’t find the gmusic API.

  7. It seems like you can’t import if you have two factor authentication enabled. I keep getting “unable to login” errors. I’ll have to fix that

  8. Thanks so much for the guide, this has made migrating from Rdio much easier. Wish there was a way to bring my collection in the form of something other than a playlist, but oh well.

    I was having numerous stupid errors about this and that when trying to make it work in OSX, so I used VirtualBox and a Ubuntu image to quickly and easily install everything and get it working.

    Quick instructions for Ubuntu:

    1. Open terminal
    2. Type the following: sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe”
    3. sudo apt-get install python-pip
    4. sudo pip install gmusicapi
    5. Follow instructions for gmusic-playlist. I recommend copying your Google password, you can paste it into the terminal with shift+control+v

  9. Brilliant! Worked out of the box. Thank you. People have trouble authenticating the account set up an app password and that will do the trick. You can reuse the same password for all of your playlists as you will have to re-authenticate for every playlist import.

  10. Thank you for the information. My concern is signing up for the free trial on Google Music. I want to know before I sign up, how much time do they give you before they shut your account down?

    1. I tried using your site, but every time I try it I get an Internal Server Error (I tried this with just a tiny CSV of 1 row, it’s not me overloading things). Any ideas?

Leave a Reply