Skip to content

jnunemaker/scrobbler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d41eaa4 · Nov 30, 2013

History

28 Commits
Apr 13, 2009
Apr 13, 2009
Dec 4, 2008
Dec 3, 2008
Dec 3, 2008
Apr 13, 2009
Oct 23, 2007
Dec 13, 2008
Nov 29, 2013
Dec 13, 2008
Apr 13, 2009
May 10, 2007

Repository files navigation

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

About

[DEAD] Scrobbler is a wrapper for the audioscrobbler (last.fm) web services.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published