Abandon ship!
I've used the following method to export a playlist with 601 items, matching 580. The remaining 21 are a mix of artist or album mismatches, along with some tracks that just aren't available.
- An rdio account (big surprise).
- A Google Play Music account.
- OSX
- homebrew setup with the following installed:
- git
- python with openssl support for easy_install
- If missing: brew install openssl && brew reinstall python
- gnu-sed
- Chrome with Rdio Enhancer installed.
- A sense of urgency.
- Using Chrome (with Rdio Enhancer), login to rdio and use "Export to CSV" for each playlist (click the ... option when viewing the playlist).
- Checkout gmusic-playlist.
- Install the gmusicapi dependency:
easy_install gmusicapi
- Edit the gmusic-playlist preferences.py, update the username.
- Also in preferences.py, remove songid from track_info_order, we'll be relying on title+artist+album:
gsed -i.bak 's/,'\''songid'\''//' preferences.py
- Next delete the column names and strip the track number out of your playlists:
gsed -i.bak '1d;s/,"[0-9]\+"$//' ~/Downloads/Good\ Music.csv
- If you're using two factor auth on your Google account: generate an app level password.
- Finally we can run this puppy:
python ImportList.py ~/Downloads/Good\ Music.csv
- Cross your fingers. The import is safe to run again, it'll create a new playlist with the same name.
- Manually lookup any skipped tracks from the output.