Skip to content
[DEAD] Scrobbler is a wrapper for the audioscrobbler (last.fm) web services.
Ruby CSS
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples
lib
test
website
.gitignore
History.txt
MIT-LICENSE
Manifest
README.rdoc
Rakefile
scrobbler.gemspec
setup.rb

README.rdoc

Scrobbler

Scrobbler is a wrapper for the audioscrobbler web services (www.audioscrobbler.net/data/webservices/).

Below is just a sampling of how easy this lib is to use.

Users

user = Scrobbler::User.new('jnunemaker')

puts "#{user.username}'s Recent Tracks"
puts "=" * (user.username.length + 16)
user.recent_tracks.each { |t| puts t.name }

puts
puts

puts "#{user.username}'s Top Tracks"
puts "=" * (user.username.length + 13)
user.top_tracks.each { |t| puts "(#{t.playcount}) #{t.name}" }

Albums

album = Scrobbler::Album.new('Carrie Underwood', 'Some Hearts', :include_info => true)

puts "Album: #{album.name}"
puts "Artist: #{album.artist}"
puts "Reach: #{album.reach}"
puts "URL: #{album.url}"
puts "Release Date: #{album.release_date.strftime('%m/%d/%Y')}"

puts
puts

puts "Tracks"
longest_track_name = album.tracks.collect(&:name).sort { |x, y| y.length <=> x.length }.first.length
puts "=" * longest_track_name
album.tracks.each { |t| puts t.name }

Artists

artist = Scrobbler::Artist.new('Carrie Underwood')

puts 'Top Tracks'
puts "=" * 10
artist.top_tracks.each { |t| puts "(#{t.reach}) #{t.name}" }

puts

puts 'Similar Artists'
puts "=" * 15
artist.similar.each { |a| puts "(#{a.match}%) #{a.name}" }

Tags

tag = Scrobbler::Tag.new('country')

puts 'Top Albums'
tag.top_albums.each { |a| puts "(#{a.count}) #{a.name} by #{a.artist}" }

puts

puts 'Top Tracks'
tag.top_tracks.each { |t| puts "(#{t.count}) #{t.name} by #{t.artist}" }

Tracks

track = Scrobbler::Track.new('Carrie Underwood', 'Before He Cheats')
puts 'Fans'
puts "=" * 4
track.fans.each { |u| puts "(#{u.weight}) #{u.username}" }

Simple Authentication (for Scrobbling)

auth = Scrobbler::SimpleAuth.new(:user => 'chunky', :password => 'bacon')
auth.handshake!

puts "Auth Status: #{auth.status}"
puts "Session ID: #{auth.session_id}"
puts "Now Playing URL: #{auth.now_playing_url}"
puts "Submission URL: #{auth.submission_url}"

Scrobbling

scrobble = Scrobbler::Scrobble.new(:session_id => auth.session_id,
                                   :submission_url => auth.submission_url,
                                   :artist => 'Coldplay',
                                   :track => 'Viva La Vida',
                                   :album => "Viva La Vida",
                                   :time => Time.new,
                                   :length => 244,
                                   :track_number => 7)
scrobble.submit!
puts "Scrobbler Submission Status: #{scrobble.status}"

Now Playing Submission

playing = Scrobbler::Playing.new(:session_id => auth.session_id,
                                 :now_playing_url => auth.now_playing_url,
                                 :artist => 'Anberlin',
                                 :track => 'Readyfuels',
                                 :album => 'Blueprints For the Black Market',
                                 :length => 218,
                                 :track_number => 1)

playing.submit!         
puts "Playing Submission Status: #{playing.status}"

Docs

rdoc.info/projects/jnunemaker/scrobbler

Something went wrong with that request. Please try again.