A Python OAuth 2.0 library for accessing the Rdio Web Service API. Includes a command-line tool for making API requests
The command-line tool is called rdio-call:
% rdio-call get -i keys=t7609753 { "status": "ok", "result": { "t7609753": { "baseIcon": "album/6/8/a/000000000009ba86/square-200.jpg", "canDownloadAlbumOnly": true, "artistUrl": "/artist/Mogwai/", "duration": 303, "album": "Hardcore Will Never Die, But You Will", "isClean": false, "albumUrl": "/artist/Mogwai/album/Hardcore_Will_Never_Die%2C_But_You_Will/", "shortUrl": "http://rd.io/x/Qis2Qto", "canStream": true, "embedUrl": "http://rd.io/e/Qis2Qto", "type": "t", "price": "0.99", "trackNum": 1, "key": "t7609753", "icon": "http://media.rd.io/album/6/8/a/000000000009ba86/square-200.jpg", "canSample": true, "name": "White Noise", "isExplicit": false, "artist": "Mogwai", "url": "/artist/Mogwai/album/Hardcore_Will_Never_Die%2C_But_You_Will/track/White_Noise/", "albumKey": "a637574", "artistKey": "r80466", "canDownload": true, "length": 1, "canTether": true } } }
The library is just called rdio. It include an Rdio class and a few exception classes:
>>> from rdioapi import Rdio >>> state = {} >>> r = Rdio(CLIENT_ID, CONSUMER_SECRET, state) >>> from pprint import pprint >>> pprint(r.get(keys='t7609753')) {u't7609753': {u'album': u'Hardcore Will Never Die, But You Will', u'albumKey': u'a637574', u'albumUrl': u'/artist/Mogwai/album/Hardcore_Will_Never_Die%2C_But_You_Will/', u'artist': u'Mogwai', u'artistKey': u'r80466', u'artistUrl': u'/artist/Mogwai/', u'baseIcon': u'album/6/8/a/000000000009ba86/square-200.jpg', u'canDownload': True, u'canDownloadAlbumOnly': True, u'canSample': True, u'canStream': True, u'canTether': True, u'duration': 303, u'embedUrl': u'http://rd.io/e/Qis2Qto', u'icon': u'http://media.rd.io/album/6/8/a/000000000009ba86/square-200.jpg', u'isClean': False, u'isExplicit': False, u'key': u't7609753', u'length': 1, u'name': u'White Noise', u'price': u'0.99', u'shortUrl': u'http://rd.io/x/Qis2Qto', u'trackNum': 1, u'type': u't', u'url': u'/artist/Mogwai/album/Hardcore_Will_Never_Die%2C_But_You_Will/track/White_Noise/'}}
The Rdio object has methods begin_authentication, complete_authentication and logout to do OAuth authentication.