Rdio Filesystem Collection Sync
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.




Rdio currently only supports synchronizing music collections if you keep your tracks in iTunes or Windows Media Player. If you keep your music organized manually, this script will allow you to benefit as well.

It scans your local collection and uses the Rdio API to match artists & albums, and add each track found to your collection.


This tool is currently focused on those who collect primarily full albums, not individual tracks. When scanning, if it encounters a track from an album, all of the tracks from that album are added to your Rdio collection regardless of whether or not they existed on disk.

The tool uses the mutagen library to load metadata from your audio files. It supports many formats, but for the moment this tool only scans for MP3 and FLAC. If you have music in another format supported by mutagen, it's a simple as adding it to the scan filter.


Install all of the dependencies with pip:

$ pip install -r pip-requirements.txt

This will install:


Get an Rdio API key from http://developer.rdio.com, then add your authentication information to the rdiosync config:

$ python -m rdiosync.sync --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>

Next, set the root path to your music collection:

$ python -m rdiosync.sync --music-path <MUSIC_PATH>

You can always check the current configuration, too:

$ python -m rdiosync.sync --print-config


Now you must get authenticate your client for your Rdio user account using OAuth. Just try to run a sync:

$ python -m rdiosync.sync


Now that the configuration and authentication is squared away (and stored in the 'config' file in your current directory) you can kick of the sync process:

$ python -m rdiosync.sync

The tool will spit out lots of information what what it's syncing, what it's not, and why along the way. Your collection is indexed in the 'collection' file that's created, so you don't have to worry about calling the Rdio API thousands of times every time you sync. It will keep track of which albums have been previously matched and uploaded, and not repeat the process.