Ruby wrapper for the Rdio API. Inspired by Linkedin gem & Twitter gem.
gem install rdio_api
Register for developer keys at http://developer.rdio.com/.
All the methods are exactly as in the API docs, camel cased and all the endpoints are also exactly the same.
OAuth flow is not part of this gem. Recommend using OmniAuth. Also check Rdio OAuth documentation.
require "rubygems"
require "rdio_api"
# Initialize a new Rdio client
client = RdioApi.new(:consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET)
# Get songs in heavy rotation
client.getHeavyRotation(:type => "albums")
# Get top playlists
client.getTopCharts(:type => "Playlist")
# Search for a query and and pass in the type
client.search(:query => "michael giacchino", :types => "album")
# Get activity stream of a user
client.getActivityStream(:user => "s12345", :scope => "user")
# Find a user by email address
client.findUser(:email => "email@example.com")
# Methods that act on behalf of a user require an access token, OmniAuth is best for this
# Access token can be set at initialization
client = RdioApi.new(:consumer_key => CONSUMER_KEY,
:consumer_secret => CONSUMER_SECRET,
:access_token => ACCESS_TOKEN,
:access_secret => ACCESS_SECRET)
client.access_token = ACCESS_TOKEN
client.access_secret = ACCESS_SECRET
# Get info about the current user
client.currentUser
# Add a friend
client.addFriend(:user => "s12345")
# Create a Playlist
client.createPlaylist(:name => "RubyGem",
:description => "Testing",
:tracks => "t1945474, t3483614")
# Unauthenticated methods, which only require registering for developer keys
client.get
client.getObjectFromShortCode
client.getObjectFromUrl
client.getAlbumsForArtist
client.getTracksForArtist
client.search
client.searchSuggestions
client.getAlbumsForArtistInCollection
client.getAlbumsInCollection
client.getArtistsInCollection
client.getTracksForAlbumInCollection
client.getTracksForArtistInCollection
client.getTracksInCollection
client.findUser
client.userFollowers
client.userFollowing
client.getActivityStream
client.getHeavyRotation
client.getNewReleases
client.getTopCharts
client.getPlaybackToken
# Authenticated methods, which require an access token , obtained with user permission
client.addToCollection
client.removeFromCollection
client.setAvailableOffline
client.addToPlaylist
client.createPlaylist
client.deletePlaylist
client.getPlaylists
client.removeFromPlaylist
client.setPlaylistCollaborating
client.setPlaylistCollaborationMode
client.setPlaylistFields
client.setPlaylistOrder
client.addFriend
client.currentUser
client.removeFriend
- Explore moving methods from camel case to snake case and update tests accordingly
- OAuth flow
- More tests for methods and for each endpoints
- Test and Support multiple Rubies