bandcamp-rb 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,20 @@
1
+ Bandcamp API.
2
+
3
+ Very simple API around the information listed on this blog post from Bandcamp:
4
+ http://bandcamptech.wordpress.com/2010/05/15/bandcamp-api/
5
+
6
+ # Getting started
7
+
8
+ Bandcamp::Base.api_key = 'SECRET_API_KEY' # email Bandcamp support <support@bandcamp.com> for an API key
9
+
10
+ # Get band info
11
+ @band = Bandcamp::Band.new('3463798201')
12
+
13
+ @band.name #=> "Amanda Palmer"
14
+
15
+ # Get album
16
+ @album = Bandcamp::Album.new("2587417518")
17
+
18
+ @album.title #=> "Who Killed Amanda Palmer"
19
+
20
+ Check out the tests for all the information you need ..
@@ -0,0 +1,130 @@
1
+ require 'httparty'
2
+
3
+ module Bandcamp
4
+ class Base
5
+ include HTTParty
6
+ format :json
7
+ base_uri 'api.bandcamp.com/api'
8
+
9
+ class << self
10
+ attr_writer :api_key
11
+
12
+ def api_key
13
+ if @api_key.nil?
14
+ raise 'NoAPIKeyGiven'
15
+ else
16
+ return @api_key
17
+ end
18
+ end
19
+
20
+ def url(search)
21
+ get("/url/1/info", :query => { :key => api_key, :url => search })
22
+ end
23
+ end
24
+ end
25
+
26
+ class Band < Base
27
+ attr_reader :name, :url, :band_id, :subdomain, :offsite_url
28
+
29
+ def initialize(band)
30
+ @name = band['name']
31
+ @url = band['url']
32
+ @band_id = band['band_id']
33
+ @subdomain = band['subdomain']
34
+ @offsite_url = band['offsite_url']
35
+ end
36
+
37
+ def discography
38
+ response = self.class.get("/band/3/discography", :query => { :key => Bandcamp::Base.api_key, :band_id => band_id })
39
+ return response['discography'] if response && response['discography']
40
+ end
41
+
42
+ class << self
43
+ def find(name)
44
+ response = get("/band/3/search", :query => { :key => Bandcamp::Base.api_key, :name => name })
45
+ if response && response['results']
46
+ response['results'].map { |band| new(band) }
47
+ else
48
+ response
49
+ end
50
+ end
51
+
52
+ def load(*band_ids)
53
+ response = get("/band/3/info", :query => { :key => Bandcamp::Base.api_key, :band_id => band_ids.join(",") })
54
+ if band_ids.length > 1
55
+ band_ids.map { |band_id|
56
+ new(response[band_id.to_s])
57
+ }
58
+ else
59
+ new(response) if response
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ class Album < Base
66
+ attr_reader :title, :release_date, :downloadable, :url, :about, :credits,
67
+ :small_art_url, :large_art_url, :artist, :album_id, :band_id, :tracks
68
+
69
+ def initialize(album)
70
+ @title = album['title']
71
+ @release_date = Time.at(album['release_date'])
72
+ @downloadable = album['downloadable']
73
+ @url = album['url']
74
+ @about = album['about']
75
+ @credits = album['credits']
76
+ @small_art_url = album['small_art_url']
77
+ @large_art_url = album['large_art_url']
78
+ @artist = album['artist']
79
+ @album_id = album['album_id']
80
+ @band_id = album['band_id']
81
+ @tracks = album['tracks'].map{ |track| Track.new(track) }
82
+ end
83
+
84
+ def band
85
+ @band ||= Band.load(band_id)
86
+ end
87
+
88
+ class << self
89
+ def load(id)
90
+ response = get("/album/2/info", :query => { :key => Bandcamp::Base.api_key, :album_id => id })
91
+ new(response) if response
92
+ end
93
+ end
94
+ end
95
+
96
+ class Track < Base
97
+ attr_reader :lyrics, :downloadable, :duration, :about, :album_id, :credits,
98
+ :streaming_url, :number, :title, :url, :track_id, :band_id
99
+
100
+ def initialize(track)
101
+ @lyrics = track['lyrics']
102
+ @downloadable = track['downloadable']
103
+ @duration = track['duration']
104
+ @about = track['about']
105
+ @album_id = track['album_id']
106
+ @credits = track['credits']
107
+ @streaming_url = track['streaming_url']
108
+ @number = track['number']
109
+ @title = track['title']
110
+ @url = track['url']
111
+ @track_id = track['track_id']
112
+ @band_id = track['band_id']
113
+ end
114
+
115
+ def album
116
+ @album ||= Album.load(album_id)
117
+ end
118
+
119
+ def band
120
+ @band ||= Band.load(band_id)
121
+ end
122
+
123
+ class << self
124
+ def load(id)
125
+ response = get("/track/1/info", :query => { :key => Bandcamp::Base.api_key, :track_id => id })
126
+ new(response) if response
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,229 @@
1
+ require "rubygems"
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+ require 'webmock/test_unit'
5
+
6
+ require File.dirname(__FILE__) + '/../lib/bandcamp.rb'
7
+
8
+ def stub_json_request(url, json_file)
9
+ stub_request(:get, url).to_return(
10
+ {
11
+ :body => File.read(File.dirname(__FILE__) + "/fixtures/#{json_file}.json"),
12
+ :headers => { "Content-Type" => "text/json" }
13
+ }
14
+ )
15
+ end
16
+
17
+ class BandTest < Test::Unit::TestCase
18
+
19
+ context "A band" do
20
+ setup do
21
+ stub_json_request("http://api.bandcamp.com/api/band/3/info?band_id=3463798201&key=SECRET_API_KEY", "band")
22
+
23
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
24
+ @band = Bandcamp::Band.load('3463798201')
25
+ end
26
+
27
+ should "have a name" do
28
+ assert_equal("Amanda Palmer", @band.name)
29
+ end
30
+
31
+ should "have a bandcamp url" do
32
+ assert_equal("http://music.amandapalmer.net", @band.url)
33
+ end
34
+
35
+ should "have a band_id" do
36
+ assert_equal(3463798201, @band.band_id)
37
+ end
38
+
39
+ should "have a subdomain" do
40
+ assert_equal("amandapalmer", @band.subdomain)
41
+ end
42
+
43
+ should "have an offsite url" do
44
+ assert_equal("http://www.amandapalmer.net", @band.offsite_url)
45
+ end
46
+ end
47
+
48
+ context "A band discography" do
49
+ setup do
50
+ stub_json_request("http://api.bandcamp.com/api/band/3/info?band_id=203035041&key=SECRET_API_KEY", "sufjanstevens")
51
+ stub_json_request("http://api.bandcamp.com/api/band/3/discography?band_id=203035041&key=SECRET_API_KEY", "band_discography")
52
+
53
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
54
+ @band = Bandcamp::Band.load('203035041')
55
+ @discography = @band.discography
56
+ end
57
+
58
+ should "return all albums" do
59
+ assert_equal(9, @discography.length)
60
+ end
61
+ end
62
+
63
+ context "An album" do
64
+ setup do
65
+ stub_json_request("http://api.bandcamp.com/api/album/2/info?album_id=2587417518&key=SECRET_API_KEY", "album")
66
+
67
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
68
+ @album = Bandcamp::Album.load("2587417518")
69
+ end
70
+
71
+ should "have a title" do
72
+ assert_equal("Who Killed Amanda Palmer", @album.title)
73
+ end
74
+
75
+ should "have a release date" do
76
+ assert_equal("Tue Sep 16 01:00:00 +0100 2008", @album.release_date.to_s)
77
+ end
78
+
79
+ should "have a description (about)" do
80
+ assert_equal("For additional information including a recording-diary by Amanda, exclusive videos, liner notes, lyrics, and much more, please visit http://www.whokilledamandapalmer.com", @album.about)
81
+ end
82
+
83
+ should "have credits" do
84
+ assert_equal("For a complete list of credits, please visit http://www.whokilledamandapalmer.com/credits.php", @album.credits)
85
+ end
86
+
87
+ should "have url to small version of artwork" do
88
+ assert_equal("http://bandcamp.com/files/33/09/3309055932-1.jpg", @album.small_art_url)
89
+ end
90
+
91
+ should "have url to large version of artwork" do
92
+ assert_equal("http://bandcamp.com/files/41/81/41814958-1.jpg", @album.large_art_url)
93
+ end
94
+
95
+ should "set an album id" do
96
+ assert_equal(2587417518, @album.album_id)
97
+ end
98
+
99
+ should "have a band" do
100
+ stub_json_request("http://api.bandcamp.com/api/band/3/info?band_id=3463798201&key=SECRET_API_KEY", "band")
101
+ assert_equal("Amanda Palmer", @album.band.name)
102
+ end
103
+
104
+ should "have any specific artist information" do
105
+ # this has been added to the fixture as the response from
106
+ # band camp doesn't include this information...
107
+ assert_equal("John Finn", @album.artist)
108
+ end
109
+
110
+ should "have a downloadable id" do
111
+ assert_equal(2, @album.downloadable)
112
+ end
113
+
114
+ should "have a url" do
115
+ assert_equal("http://music.amandapalmer.net/album/who-killed-amanda-palmer", @album.url)
116
+ end
117
+ end
118
+
119
+ context "A track" do
120
+ setup do
121
+ stub_json_request("http://api.bandcamp.com/api/track/1/info?track_id=1269403107&key=SECRET_API_KEY", "track")
122
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
123
+
124
+ @track = Bandcamp::Track.load("1269403107")
125
+ end
126
+
127
+ should "have a duration" do
128
+ assert_equal(317.378, @track.duration)
129
+ end
130
+
131
+ should "have lyrics" do
132
+ assert_match(/When you were here before/, @track.lyrics)
133
+ end
134
+
135
+ should "have an album" do
136
+ stub_json_request("http://api.bandcamp.com/api/album/2/info?album_id=1003295408&key=SECRET_API_KEY", "album")
137
+ assert_equal(1003295408, @track.album_id)
138
+ assert_equal("Who Killed Amanda Palmer", @track.album.title)
139
+ end
140
+
141
+ should "have downloadable flag" do
142
+ assert_equal(2, @track.downloadable)
143
+ end
144
+
145
+ should "have about" do
146
+ assert_match(/Recorded live in Prague/, @track.about)
147
+ end
148
+
149
+ should "have track number" do
150
+ assert_equal(7, @track.number)
151
+ end
152
+
153
+ should "have credits" do
154
+ assert_match(/Featuring: Amanda Palmer/, @track.credits)
155
+ end
156
+
157
+ should "have a title" do
158
+ assert_equal("Creep (Live in Prague)", @track.title)
159
+ end
160
+
161
+ should "have streaming url" do
162
+ assert_equal("http://popplers5.bandcamp.com/download/track?enc=mp3-128&id=1269403107&stream=1&ts=1298800847.0&tsig=67543bb7f276035915039c5545744d3b", @track.streaming_url)
163
+ end
164
+
165
+ should "have track id" do
166
+ assert_equal(1269403107, @track.track_id)
167
+ end
168
+
169
+ should "have a url" do
170
+ assert_equal("/track/creep-live-in-prague", @track.url)
171
+ end
172
+
173
+ should "have a band" do
174
+ assert_equal(3463798201, @track.band_id)
175
+ stub_json_request("http://api.bandcamp.com/api/band/3/info?band_id=3463798201&key=SECRET_API_KEY", "band")
176
+ assert_equal("Amanda Palmer", @track.band.name)
177
+ end
178
+ end
179
+
180
+ context "searching" do
181
+ setup do
182
+ stub_json_request("http://api.bandcamp.com/api/band/3/search?key=SECRET_API_KEY&name=baron%20von%20luxxury", "search")
183
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
184
+
185
+ @bands = Bandcamp::Band.find('baron von luxxury')
186
+ end
187
+
188
+ should "return two bands" do
189
+ assert_equal(2, @bands.length)
190
+ end
191
+
192
+ should "parse the bands correctly" do
193
+ assert_equal(1366501350, @bands[0].band_id)
194
+ end
195
+ end
196
+
197
+ context "multiple bands" do
198
+ setup do
199
+ stub_json_request("http://api.bandcamp.com/api/band/3/info?key=SECRET_API_KEY&band_id=4214473200,3789714150", "multiple_bands")
200
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
201
+
202
+ @bands = Bandcamp::Band.load('4214473200', '3789714150')
203
+ end
204
+
205
+ should "return two bands" do
206
+ assert_equal(2, @bands.length)
207
+ end
208
+
209
+ should "parse the bands correctly" do
210
+ assert_equal(4214473200, @bands[0].band_id)
211
+ assert_equal(3789714150, @bands[1].band_id)
212
+ end
213
+ end
214
+
215
+ context "url search" do
216
+ setup do
217
+ stub_json_request("http://api.bandcamp.com/api/url/1/info?key=SECRET_API_KEY&url=http://music.sufjan.com/track/enchanting-ghost", "url_search")
218
+ Bandcamp::Base.api_key = 'SECRET_API_KEY'
219
+ @results = Bandcamp::Base.url('http://music.sufjan.com/track/enchanting-ghost')
220
+ end
221
+
222
+ should "return results" do
223
+ assert_equal(2323108455, @results['track_id'])
224
+ assert_equal(203035041, @results['band_id'])
225
+ end
226
+ end
227
+
228
+
229
+ end
@@ -0,0 +1,172 @@
1
+ {
2
+ "downloadable": 2,
3
+ "tracks": [
4
+ {
5
+ "lyrics": "is it enough to have some love\r\nsmall enough to slip inside a book\r\nsmall enough to cover with your hand\r\nbecause everyone around you wants to look\r\n\r\nis it enough to have some love\r\nsmall enough to slip inside the cracks\r\nthe pieces don\u2019t fit together so good\r\nwith all the breaking and all the gluing back\r\n\r\nand i am still not getting what i want\r\ni want to touch the back of your right arm\r\ni wish you could remind me who i was\r\nbecause every day i\u2019m a little further off\r\n\r\nbut you are, my love, the astronaut\r\nflying in the face of science\r\ni will gladly stay an afterthought\r\njust bring back some nice reminders\r\n\r\nand is it getting harder to pretend\r\nthat life goes on without you in the wake\r\nand can you see the means without the end\r\nin the random frantic action that we take\r\n\r\nand is it getting easy not to care\r\ndespite the many rings around your name\r\nit isn\u2019t funny and it isn\u2019t fair\r\nyou\u2019ve traveled all this way and it\u2019s the same\r\n\r\nbut you are, my love, the astronaut\r\nflying in the face of science\r\ni will gladly stay an afterthought\r\njust bring back some nice reminders\r\n\r\ni would tell them anything to see you split the evening\r\nbut as you see i do not have an awful lot to tell\r\neverybody\u2019s sick for something that they can find fascinating\r\neveryone but you\r\nand even you aren\u2019t feeling well\r\n\r\nbut you are, my love, the astronaut\r\nflying in the face of science\r\ni will gladly stay an afterthought\r\n\r\nbut you are, my love, the astronaut\r\nflying in the face of science\r\ni will gladly stay an afterthought\r\njust bring back some nice reminders\r\n\r\nYES you are, my love, the astronaut\r\ncrashing in the name of science\r\njust my luck they sent your upper half\r\nit\u2019s a very nice reminder\r\nit\u2019s a very nice reminder\r\n\r\n(and you may be acquainted with the night\r\nbut i have seen the darkness in the day\r\nand you must know it is a terrifying sight\r\nbecause you and i are living the same way)",
6
+ "duration": 277.053,
7
+ "about": "A Short History of Nearly Nothing\r\nFeaturing Zo\u00eb Keating and Ben Folds",
8
+ "album_id": 2587417518,
9
+ "credits": "Basic recorded at Chez Ben in Nashville.\u00a0\r\nEngineer: Joe Costa.\r\nVox, piano: Amanda. \r\nCello: Zo\u00eb Keating. \r\nPercussion, drums, synths: Ben Folds. \r\nViolin: David Davidson.\r\nAdditional vocals recorded in Jason Schimmel\u2019s kitchen in Santa Cruz by Tim Smolens. \r\nMixed by Joe Costa at Chez Ben.\r\nProduced by Ben Folds.",
10
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2005375705&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
11
+ "number": 1,
12
+ "title": "Astronaut",
13
+ "url": "\/track\/astronaut",
14
+ "track_id": 2005375705,
15
+ "band_id": 3463798201
16
+ },
17
+ {
18
+ "lyrics": "my friend has problems with winter and autumn\r\nthey give him prescriptions, they shine bright lights on him\r\nthey say it\u2019s genetic, they say he can\u2019t help it\r\nthey say you can catch it - but sometimes you\u2019re born with it\r\n\r\nmy friend has blight he gets shakes in the night\r\nand they say there is no way that they could have caught it in\r\ntime takes its toll on him, it is traditional\r\nit is inherited predisposition\r\n\r\nall day i\u2019ve been wondering what is inside of me, who can i blame for it\r\n\r\ni say:\r\n\r\nit runs in the family, this famine that carries me\r\nto such great lengths to open my legs\r\nup to anyone who\u2019ll have me\r\nit runs in the family, i come by it honestly\r\ndo what you want \u2018cause who knows it might fill me up\r\n\r\nmy friend\u2019s depressed, she\u2019s a wreck, she\u2019s a mess\r\nthey\u2019ve done all sorts of tests and they guess it has something to do with her grandmother\u2019s\r\ngrandfather\u2019s grandmother civil war soldiers who\r\nbadly infected her\r\nmy friend has maladies, rickets, and allergies that she dates back to the 17th century\r\nsomehow she manages - in her misery - strips in the city\r\nand shares all her best tricks with\r\n\r\nme? well, i\u2019m well. well, i mean i\u2019m in hell. well, i still have my health\r\n(at least that\u2019s what they tell me)\r\nif wellness is this, what in hell\u2019s name is sickness?\r\nbut business is business!\r\n\r\nand business\r\nruns in the family, we tend to bruise easily\r\nbad in the blood i\u2019m telling you \u2018cause\r\ni just want you to know me\r\nknow me and my family\r\nwe\u2019re wonderful folks but\r\ndon\u2019t get too close to me \u2018cause you might knock me up\r\n\r\nmary have mercy now look what i\u2019ve done\r\nbut don\u2019t blame me because i can\u2019t tell where i come from\r\nand running is something that we\u2019ve always done\r\nwell and mostly i can\u2019t even tell what i\u2019m running from\r\n\r\ni run from their pity\r\nfrom responsibility\r\nrun from the country\r\nand run from the city\r\n\r\ni can run from the law\r\ni can run from myself\r\ni can run for my life\r\ni can run into debt\r\n\r\ni can run from it all\r\ni can run till i\u2019m gone\r\ni can run for the office\r\nand run from the \u2018cause\r\n\r\ni can run using every last ounce of energy\r\ni cannot\r\ni cannot\r\ni cannot\r\nrun from my family\r\nthey\u2019re hiding inside me\r\ncorpses on ice\r\ncome in if you\u2019d like\r\nbut just don\u2019t tell my family\r\nthey\u2019d never forgive me\r\nthey\u2019ll say that i\u2019m crazy\r\nbut they would say anything if it would\r\nshut me up.....",
19
+ "duration": 164.427,
20
+ "about": "Featuring Ben Folds",
21
+ "album_id": 2587417518,
22
+ "credits": "Basic recorded at Chez Ben in Nashville.\u00a0\r\nEngineer: Joe Costa.\r\nVox, piano: Amanda. \r\nPercussion, Jupiter-4:\u00a0Ben Folds. \r\nViolin: David Davidson. \r\nCello: John Catchings.\r\nMixed by Joe Costa at Chez Ben.\u00a0\r\nProduced by Ben Folds.",
23
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=3663444291&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
24
+ "number": 2,
25
+ "title": "Runs In The Family",
26
+ "url": "\/track\/runs-in-the-family-2",
27
+ "track_id": 3663444291,
28
+ "band_id": 3463798201
29
+ },
30
+ {
31
+ "lyrics": "i walk down my street at night\r\nthe city lights are cold and violent\r\ni am comforted by the approaching sound of trucks and sirens\r\neven though the world\u2019s so bad, these men rush out to help the dying\r\nand though i am no use to them i do my part by simply smiling\r\n\r\nthe ghetto boys are cat-calling me\r\nas i pull my keys from my pocket\r\ni wonder if this method of courtship has ever been effective\r\nhas any girl in history said \u201csure, you seem so nice, let\u2019s get it on\u201d\r\nstill i always shock them when i answer \u201chi, my name\u2019s amanda\u201d and\r\n\r\ni\u2019m not gonna live my life\r\non one side of an ampersand\r\nand even if i went with you\r\ni\u2019m not the girl you think i am\r\nand i\u2019m not gonna match you\r\n\u2018cause i\u2019ll lose my voice completely\r\nno, i\u2019m not gonna watch you\r\n\u2018cause i\u2019m not the one that\u2019s crazy\r\n\r\ni have wasted years of my life\r\nagonizing about the fires\r\ni started when i thought that to be strong you must be flame-retardant\r\nand now to dress the wounds calls into question\r\nhow authentic they are\r\nthere is always someone criticizing me\r\nshe just likes playing hospital\r\n\r\nlying in my bed\r\ni remember what you said\r\n\u201cthere\u2019s no such thing as accidents...\u201d\r\n\r\nbut you\u2019ve got the headstones all ready\r\nall carved up and pretty\r\nyour sick satisfaction\r\nthose his and hers matching\r\nthe daisies all push up in pairs to the horizon\r\nyour eyes full of ketchup, it\u2019s nice that you\u2019re trying\r\nthe headstones all ready\r\nall carved up and pretty\r\nyour sick satisfaction\r\nthose his and hers matching\r\nthe daisies all push up in pairs to the horizon\r\nyour eyes full of ketchup, it\u2019s nice that you\u2019re trying\r\n\r\nbut i\u2019m not gonna live my life\r\non one side of an ampersand\r\nand even if i went with you\r\ni\u2019m not the girl you think i am\r\n\r\nand i\u2019m not gonna match you\r\n\u2018cause i\u2019ll lose my voice completely\r\nno, i\u2019m not gonna watch you\r\n\u2018cause i\u2019m not the one that\u2019s crazy\r\n\r\nas i wake up - two o\u2019clock - the fire burned the block but ironically\r\nstopped at my apartment and my housemates are all sleeping soundly\r\nand nobody deserves to die, but you were awful adamant\r\nthat if i didn\u2019t love you then you had just one alternative\r\nand i may be romantic\r\nand i may risk my life for it\r\nbut i ain\u2019t gonna die for you\r\nyou know i ain\u2019t no juliet\r\nand i\u2019m not gonna watch you\r\nwhile you burn yourself out, baby\r\nno, i\u2019m not gonna stop you\r\n\u2018cause i\u2019m not the one that\u2019s crazy",
32
+ "duration": 358.493,
33
+ "about": "Strings arranged by Paul Buckmaster",
34
+ "album_id": 2587417518,
35
+ "credits": "Basic recorded at Prairie Sun Studios, Cotati, CA.\r\nEngineer: Justin Phelps.\u00a0\r\nStrings arranged by Paul Buckmaster and recorded at Capitol Records in LA.\u00a0\r\nMixed by Justin Phelps at Hyde Street Studios, San Fransicso.\r\nProduced by Amanda.",
36
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=4091605769&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
37
+ "number": 3,
38
+ "title": "Ampersand",
39
+ "url": "\/track\/ampersand",
40
+ "track_id": 4091605769,
41
+ "band_id": 3463798201
42
+ },
43
+ {
44
+ "lyrics": "we watch you your expert double exes\r\nit\u2019s just like you to paint those whiter fences\r\n\r\nit\u2019s so polite it\u2019s so polite it\u2019s offensive it\u2019s offensive\r\nit\u2019s so unright it\u2019s so unright it\u2019s a technical accept it\r\n\r\nbut who needs love when there\u2019s law & order\r\nand who needs love when there\u2019s southern comfort\r\nand who needs love at all\r\n\r\nwe stalk you your expert double exes\r\nwe oxidize you in your sleep there\u2019s no exit there\u2019s no exit\r\n\r\nyou\u2019re on a roll you\u2019re on a roll no one gets it no one gets it\r\nyour honor no your honor can\u2019t you protect us, protect us\r\n\r\nbut who needs love when there\u2019s law & order\r\nand who needs love when there\u2019s southern comfort\r\nand who needs love\r\nwhen the sandwiches are wicked and they know you at the mac store\r\n\r\nuh uh uh uh oh oh oh oh oh uh oh - i\u2019m so excited\r\nuh uh uh uh oh oh oh oh oh uh oh - the blacks and beat kids\r\nuh uh uh uh oh oh oh oh oh uh oh - i\u2019m getting frightened\r\nuh uh uh uh uh uh uh uh - someday someday leeds united\r\n\r\nbugsy malone came to carry you home and they\u2019re taking you all to the doctor\r\nburberry vices all sugary spices it\u2019s nice but it\u2019s not what i\u2019m after\r\nsure, i admire you\r\nsure, you inspire me but you\u2019ve been not getting back so\r\ni\u2019ll wait at the sainbury\u2019s countin\u2019 my change making BANK on the upcoming roster\r\n\r\nand we\u2019ll stop you your expert double exes\r\noh yeah, a big stock holder exxtra cold with 2 X\u2019s\r\nthat never talking thing you do is effective it\u2019s effective\r\nyour shoulder\u2019s icy colder-oh than a death wish than a death wish\r\n\r\nbut who needs love when there\u2019s law & order\r\nand who needs love when there\u2019s dukes of hazard\r\nand who needs love\r\nwhen the sandwiches are wicked and they know you at the mac store\r\n\r\nuh uh uh uh oh oh oh oh oh uh oh - i\u2019m so excited\r\nuh uh uh uh oh oh oh oh oh uh oh - the blacks and beat kids\r\nuh uh uh uh oh oh oh oh oh uh oh - they\u2019re so excited\r\nuh uh uh uh oh oh oh oh oh uh oh - when i think about leeds uniting\r\nuh uh uh uh oh oh oh oh oh uh oh - i\u2019m getting frightened\r\nuh uh uh uh oh oh oh oh oh uh oh - the blacks, the blacks, the blacks, and beat kids\r\nuh uh uh uh oh oh oh oh oh uh oh - it\u2019s so exciting\r\nuh uh uh uh oh oh oh oh oh uh oh - someday, someday, someday, someday, someday, someday\r\n\r\nLEEDS UNITED.",
45
+ "duration": 287.067,
46
+ "about": "Featuring the Born Again Horny Men of Edinburgh",
47
+ "album_id": 2587417518,
48
+ "credits": "Recorded at Chamber Studio in Edinburgh, Scotland.\r\nEngineer: Steven Watkins.\r\nVox, piano: Amanda. \r\nTrumpet: Andy Moore. \r\nTrombone: Tim Lane. \r\nSax: Josh Coppersmith-Heaven.\r\nBass guitar: Allan Ferguson. \r\nDrums: Jamie Graham. \r\nAdditional vocals and piano record at Chez Ben by Jason Lehning.\r\nMixed by Joe Costa at Chez Ben. \r\nProduced by Amanda.",
49
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=1219340305&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
50
+ "number": 4,
51
+ "title": "Leeds United",
52
+ "url": "\/track\/leeds-united-2",
53
+ "track_id": 1219340305,
54
+ "band_id": 3463798201
55
+ },
56
+ {
57
+ "lyrics": "blake says no one ever really loved him\r\nthey just faked it to get money from the government\r\nand blake thinks angels grow when you plant angel dust\r\nhe shakes his head and blinks his pretty eyes but trust me\r\nhe\u2019s no valentine though he said he would be mine\r\nhis heart is in alaska all the time\r\n\r\nblake stays underwater for the most part\r\nhe collects loose change for all tomorrows parties\r\nand when blake dates girls with tattoos of the pyramids\r\nhe breaks their hearts by saying it\u2019s not permanent\r\nbut in his velvet mind he believes with all his might\r\nwe\u2019ll all go to alaska when we die...\r\n\r\nblake makes friends but only for a minute\r\nhe prefers the things he orders from the internet\r\nand blake\u2019s been having trouble with his head again\r\nhe takes his pills but never takes his medicine\r\nhe tells me that he\u2019s fine\r\nand the sad thing is he\u2019s right\r\nand when its 2 o\u2019clock it feels like 9...\r\n\r\nblake says he is sorry he got through to me\r\nif it\u2019s ok he\u2019ll call right back and talk to the machine\r\nblake says it looks like acid rain today\r\nhe takes the fish inside, he\u2019s very kind that way\r\nand just like caroline\r\nhe doesn\u2019t seem to mind\r\nthe globe is getting warmer all the time...\r\n\r\nit\u2019s still cold in alaska\r\nit\u2019s still cold in alaska\r\nit\u2019s still cold in alaska",
58
+ "duration": 276.227,
59
+ "about": "Featuring Zo\u00eb Keating and Ben Folds",
60
+ "album_id": 2587417518,
61
+ "credits": "Basic recorded at Chez Ben in Nashville.\u00a0\r\nEngineers: Joe Costa and Leslie Richter.\r\n\u2028Vox, tack piano: Amanda. \r\nPercussion, Blackberry,\u00a0Wurlitzer Omni 3000:\u00a0Ben Folds.\r\nViolin: David Davidson. \r\nCello: Zo\u00eb Keating.\r\nMixed by Joe Costa at Chez Ben.\u00a0\r\nProduced by Ben Folds.",
62
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2883216819&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
63
+ "number": 5,
64
+ "title": "Blake Says",
65
+ "url": "\/track\/blake-says-2",
66
+ "track_id": 2883216819,
67
+ "band_id": 3463798201
68
+ },
69
+ {
70
+ "lyrics": "locked in his bedroom\r\nhe saw the world\r\na web of action\r\nand cumshot girls\r\n\r\ntick tick tick tick tick\r\n\r\ndon\u2019t bother blaming\r\nhis games and guns\r\nhe\u2019s only playing\r\nand boys just want to have fun\r\n\r\nhe picked a soundtrack\r\nand packed his bag\r\nhe hung his walkman\r\naround his neck\r\n\r\ntick tick tick tick tick\r\ntick tick tick tick tick\r\n\r\nit is so simple\r\nthe way they fall\r\nno bang or whimper\r\nno sound at all\r\n\r\ntick tick tick tick tick\r\ntick tick tick tick tick\r\ntick tick tick tick tick tick tick tick tick\r\n\r\nboom.",
71
+ "duration": 209.16,
72
+ "about": "Featuring Strindberg and Ben Folds",
73
+ "album_id": 2587417518,
74
+ "credits": "Basic recorded at Chez Ben in Nashville. \r\nEngineer: Joe Costa.\r\nVox, piano, Wurlitzer Omni 3000: Amanda. \r\nPiano, Jupiter-4:\u00a0Ben folds.\r\nSample from \u201cStrindberg and Helium\u201d used by permission, thank you to James Bewley.\r\nMixed by Joe Costa at Chez Ben.\u00a0\r\nProduced by Ben Folds.",
75
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2949339992&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
76
+ "number": 6,
77
+ "title": "Strength Through Music",
78
+ "url": "\/track\/strength-through-music",
79
+ "track_id": 2949339992,
80
+ "band_id": 3463798201
81
+ },
82
+ {
83
+ "lyrics": "i can\u2019t get them up, i can\u2019t get them up\r\ni can\u2019t get them up at all\r\n\r\n(hey. ho. let. go.)\r\n\r\ngood morning killer king you\u2019re a star\r\nthat\u2019s gorgeous hold it right where you are\r\nthe weather\u2019s kinda lousy today\r\nso what oh what oh what\u2019ll we play\r\n\r\nstratocaster strapped to your back\r\nit\u2019s a semi-automatic like dad\u2019s\r\nhe taught you how to pause and reset\r\nbut that\u2019s about as far as you get\r\n\r\nso what\u2019s the use of going outside?\r\nit\u2019s so depressing when people die in real life\r\ni\u2019d rather pick up right where we left\r\nmaking out to faces of death\r\nmaking out to faces of death\r\n\r\nand i could save you, baby, but it isn\u2019t worth my time\r\nand i could make you chase me for a little price is right\r\n\r\nit\u2019s a hit but are you actually sure?\r\nthe targets in the crowd are a blur\r\nthe people screaming just like they should\r\nbut you don\u2019t even know if you\u2019re good\r\nyou don\u2019t even know if you\u2019re good\r\n\r\nso tie them up and feed them the sand\r\nha nigga! try hard to tell us using your hands\r\na picture\u2019s worth a million words\r\nand that way nobody gets hurt\r\nand that way nobody gets hurt\r\n\r\nand i could save you, baby, but it isn\u2019t worth my time\r\nand i could make you chase me for a little price is right\r\n\r\nwoo-ah-oo - woo-ooh-ah-oo\r\nwoo-ah-ooh ah ohh ah oo\r\n\r\nyou\u2019re my guitar hero, you\u2019re my guitar hero\r\nyou\u2019re my guitar hero, you\u2019re my guitar hero\r\n\r\nx marks the box in the hole in the ground that goes off at a breath\r\nso careful don\u2019t make a sound\r\nx marks the box in the hole in your head that you dug for yourself\r\nnow lie. in. it.\r\n\r\nshut up about all of that negative shit\r\nyou wanted to make it and now that you\u2019re in\r\nyou\u2019re obviously not gonna to die\r\nso why not take your chances and try\r\nwhy not take your chances and try?\r\n\r\nhow do you get them to turn this thing off?\r\nthis isn\u2019t at all like the ones back at home\r\njust shut your eyes and flip the cassette\r\nand that\u2019s about the time that they hit\r\nand that\u2019s about the time that they hit\r\n\r\nwhat the fuck is up with this shit?\r\nit\u2019s certainly not worth getting upset\r\nhis hands are gone and most of his head\r\nand just when he was getting so good\r\njust when he was getting so good...\r\n\r\nand i could save you, baby, but it isn\u2019t worth my time\r\n\u2018cause even if i saved you there\u2019s a million more in line\r\n\r\nwoo-ah-oo - woo-ooh-ah-oo\r\nwoo-ah-ooh ah ohh ah oo\r\n\r\nyou\u2019re my guitar hero, you\u2019re my guitar hero\r\nyou\u2019re my guitar hero\r\nyou\u2019re my guitar hero",
84
+ "duration": 287.56,
85
+ "about": "Featuring East Bay Ray of Dead Kennedys and Ben Folds",
86
+ "album_id": 2587417518,
87
+ "credits": "Basic recorded at Chez Ben in Nashville. \r\nEngineer: Joe Costa.\r\nVox, piano, Wurlitzer electric piano: Amanda.\r\nPercussion, Moog: Ben Folds. \r\nGuitar and cello recorded at Hyde street studios.\r\nEngineer: Justin Phelps. \r\nAssistant engineer: Laura Dean. \r\nHandclaps: Amanda and Laura Dean. \r\nGuitar: East Bay Ray (of Dead Kennedys). \r\nCello: Sam Bass. \r\nAdditional piano and vocals recorded at Chez Ben by Jason Lehning.\r\nMixed by Joe Costa at Chez Ben.\u00a0\r\nProduced by Ben Folds and Amanda.",
88
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=1099017622&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
89
+ "number": 7,
90
+ "title": "Guitar Hero",
91
+ "url": "\/track\/guitar-hero",
92
+ "track_id": 1099017622,
93
+ "band_id": 3463798201
94
+ },
95
+ {
96
+ "lyrics": "i have to drive\r\ni have my reasons, deer\r\nit\u2019s cold outside\r\ni hate the seasons here\r\n\r\ni suffer mornings most of all\r\ni feel so powerless and small\r\nby 10 o\u2019clock i\u2019m back in bed\r\nfighting the jury in my head\r\n\r\nwe learn to drive\r\nit\u2019s only natural, deer\r\nwe drive all night\r\nwe haven\u2019t slept in years\r\n\r\nwe suffer mornings most of all\r\nwe saw you lying in the road\r\nwe tried to dig a decent grave\r\nbut it\u2019s still no way to behave\r\n\r\nit is a delicate position\r\nspin the bottle\r\npick the victim\r\ncatch a tiger\r\nswitch directions\r\nif he hollers\r\nbreak his ankles\r\nto protect him\r\n\r\nwe\u2019ll have to drive\r\nthey\u2019re getting closer\r\njust get inside\r\nit\u2019s almost over\r\n\r\nwe will save your brothers we\r\nwill save your cousins we will drive them\r\nfar away from streets and signs\r\nfrom all signs of mad mankind\r\n\r\nwe suffer mornings most of all\r\nwake up all bleary-eyed and sore\r\nforgetting everything we saw\r\n\r\ni\u2019ll meet you in an hour\r\nat the car.",
97
+ "duration": 342.907,
98
+ "about": "Featuring the Via Interficere Choir of Nashville & Jack Palmer, strings arranged by Paul Buckmaster",
99
+ "album_id": 2587417518,
100
+ "credits": "Basic recorded at Prairie Sun Studios, Cotati, CA. Engineer: Justin Phelps. \r\nAssistant engineer: Laura dean.\r\nVox, piano: Amanda. \r\nStrings arranged by Paul Buckmaster and recorded at Capitol Records in LA. \r\nAdditional sequencing by Paul Buckmaster.\u2028\u2028\r\nChoir: Leigh Nash, Carmella Ramsey, Kate York, Carey Kotsionis, Sam Smith, George Daeger, Jared Reynolds, Donald Schroader, Jack Palmer.\r\n\u2028Mixed by Justin Phelps at Hyde Street Studio, San Francisco, CA. \r\nProduced by Ben Folds and Amanda.",
101
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2462689771&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
102
+ "number": 8,
103
+ "title": "Have To Drive",
104
+ "url": "\/track\/have-to-drive",
105
+ "track_id": 2462689771,
106
+ "band_id": 3463798201
107
+ },
108
+ {
109
+ "lyrics": "what\u2019s the use of wond\u2019rin\u2019\r\nif he\u2019s good or if he\u2019s bad\r\nor if you like the way he wears his hat\r\n\r\noh, what\u2019s the use of wond\u2019rin\u2019\r\nif he\u2019s good or if he\u2019s bad\r\nhe\u2019s your fella and you love him\r\nthat\u2019s all there is to that\r\n\r\ncommon sense may tell you\r\nthat the ending will be sad\r\nand now\u2019s the time to break and run away\r\nbut what\u2019s the use of wond\u2019rin\u2019\r\nif the ending will be sad\r\nhe\u2019s your fella and you love him\r\nthere\u2019s nothing more to say\r\n\r\nsomething made him the way that he is\r\nwhether he\u2019s false or true\r\nand something gave him\r\nthe things that are his\r\none of those things is you\r\n\r\nso when he wants your kisses\r\nyou will give them to the lad\r\nand anywhere he leads you, you will walk\r\nand any time he needs you\r\nyou\u2019ll go running there like mad\r\n\r\nyou\u2019re his girl and he\u2019s your fella\r\nand all the rest is talk",
110
+ "duration": 169.507,
111
+ "about": "Featuring Annie Clark of St. Vincent",
112
+ "album_id": 2587417518,
113
+ "credits": "(by Rogers and Hammerstein. From the musical \u201cCarousel\u201d).\r\nRecorded at Edison Studio, NYC.\u00a0\r\nEngineer: Henry Hirsch. \r\nAssistant engineer: Bram Tobey.\r\nVox, Celeste, vibraphone, piano: Amanda. \r\nVox, virtual chimes:\u00a0Annie Clark (of St. Vincent).\r\nProduced by Alan Bezozi and Amanda.",
114
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2634348280&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
115
+ "number": 9,
116
+ "title": "What's the Use of Wond'rin'?",
117
+ "url": "\/track\/whats-the-use-of-wondrin",
118
+ "track_id": 2634348280,
119
+ "band_id": 3463798201
120
+ },
121
+ {
122
+ "lyrics": "when i got to the party they gave me a forty\r\nand i must have been thirsty\r\n\u2018cause i drank it so quickly\r\nwhen i got to the bedroom\r\nthere was somebody waiting\r\nand it isn\u2019t my fault that the barbarian raped me\r\n\r\nwhen i went to get tested i brought along my best friend\r\nmelissa mahoney (who had once been molested)\r\nand she knew how to get there\r\nshe knew all the nurses; they were all very friendly\r\nbut the test came out positive\r\n\r\ni\u2019ve had better days but i don\u2019t care\r\n\u2018cause i just sent a letter in the mail\r\n\r\nwhen i got my abortion i brought along my boyfriend\r\nwe got there an hour before the appointment\r\nand outside the building were all these annoying\r\nfundamentalist christians; we tried to ignore them\r\n\r\ni\u2019ve had better days but i don\u2019t care\r\noasis got my letter in the mail\r\n\r\nwhen vacation was over\r\nthe word was all over that i was a crackwhore\r\nmelissa had told them\r\nand so now we\u2019re not talking except we have tickets\r\nto see blur in october and i think we\u2019re still going\r\n\r\ni\u2019ve seen better days but i don\u2019t care\r\noh, i just got a letter in the mail\r\noasis sent a photograph it\u2019s autographed and everything\r\nmelissa\u2019s gonna wet herself i swear",
123
+ "duration": 127.707,
124
+ "about": "Featuring Ben Folds and Jared Reynolds",
125
+ "album_id": 2587417518,
126
+ "credits": "Basic recorded at Chez Ben in Nashville. \r\nEngineer: Joe Costa.\r\nVox, piano: Amanda. \r\nDrums, synthesizers: Ben Folds. \r\nBass: Jared Reynolds. \r\nBack-up vocals: Ben Folds and Jared Reynolds.\r\nMixed by Joe Costa at Chez Ben.\u00a0\r\nProduced by Ben Folds.",
127
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=2062388641&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
128
+ "number": 10,
129
+ "title": "Oasis",
130
+ "url": "\/track\/oasis",
131
+ "track_id": 2062388641,
132
+ "band_id": 3463798201
133
+ },
134
+ {
135
+ "lyrics": "oh, what a noble, distinguished collection of fine little friends you have made\r\nhitting the tables without you again: no we\u2019ll wait, no we promise, we\u2019ll wait\r\njune makes these excellent sewing machines out of common industrial waste\r\nshe spends a few days at a time on the couch but she\u2019s fine\r\nshe wears shades, she wears shades\r\n\r\nbut no one can stare at the wall as good as you, my babydoll\r\nand you\u2019re aces for coming along\r\nyou\u2019re almost human, after all\r\nand you\u2019re learning that just \u2018cause they call themselves friends\r\ndoesn\u2019t mean they\u2019ll call...\r\n\r\nthey made the comment in jest\r\nbut you\u2019ve got the needle\r\ni guess that\u2019s the point of it all\r\n\r\nmaybe a week in the tropics would help to remind you how nice life can be\r\nwe propped you right up in a chair on a deck with a beautiful view of the sea\r\nbut a couple weeks later we came back and you and the chair were nowhere to be seen\r\nyou had magically moved to the closet\r\neyes fixed to the place where the dryer had been\r\n\r\noh, but no one can stare at the wall as good as you, my babydoll\r\nand you\u2019re aces for coming along\r\nyou\u2019re almost human, after all\r\nwhy on earth would i keep you propped up in here when you so love the fall...?\r\n\r\nthe pattern\u2019s laid out on the bed\r\nwith dozens of colors of thread\r\nbut you\u2019ve got the needle\r\ni guess that\u2019s the point in the end\r\n\r\nbut it\u2019s better to waste your day watching the scenery change at a comatose rate\r\nthan to put yourself in it and turn into one of those cigarette ads that you hate\r\nbut while you were sleeping some men came around\r\nsaid they had some dimensions to take\r\ni\u2019m not sure what they were talking about but they sure made a mess of your face\r\n\r\nbut still, no one can stare at the wall as good as you, my babydoll\r\nand you\u2019re aces for playing along\r\nyou\u2019re almost human, even now\r\n\r\nand just \u2018cause they call themselves experts\r\nit doesn\u2019t mean sweet fuck all...\r\nthey\u2019ve got the permanent press\r\nhomes with a stable address\r\n\r\nand they\u2019ve got excitement\r\nand life by the fistful\r\nbut you\u2019ve got the needle\r\ni guess that\u2019s the point of it all",
136
+ "duration": 335.067,
137
+ "about": "Strings arranged by Paul Buckmaster",
138
+ "album_id": 2587417518,
139
+ "credits": "Basic recorded at Prairie Sun Studios, Cotati, CA.\r\nEngineer: Justin Phelps.\u00a0\r\nVox, piano: Amanda. \r\nStrings arranged by Paul Buckmaster and recorded at Capitol Records in LA.\u00a0\r\nMixed by Justin Phelps at Hyde Street Studio, San Francisco, CA.\r\nProduced by Amanda.",
140
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=1727030001&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
141
+ "number": 11,
142
+ "title": "The Point of it All",
143
+ "url": "\/track\/the-point-of-it-all",
144
+ "track_id": 1727030001,
145
+ "band_id": 3463798201
146
+ },
147
+ {
148
+ "lyrics": "i tried to fall in it again\r\nmy friends took bets and disappeared\r\nthey mime their sighing violins\r\ni think i\u2019ll wait another year\r\n\r\ni want my chest pressed to your chest\r\nmy nervous systems interfere\r\nten or eleven months at best\r\ni think i\u2019ll wait another year\r\n\r\nthis weather turns my tricks to rust\r\ni am a lousy engineer\r\nthe winter makes things hard enough\r\ni think i\u2019ll wait another year\r\n\r\nplus, i\u2019m only 26 years old\r\nmy grandma died at 83\r\nthat\u2019s lots of time if i don\u2019t smoke\r\ni think i\u2019ll wait another year\r\n\r\ni\u2019m not as callous as you think\r\ni barely breathe when you are near\r\nit\u2019s not as bad when i don\u2019t drink\r\ni think i\u2019ll wait another year\r\n\r\ni have my new bill hicks cd\r\ni have my friends and my career\r\ni\u2019m getting smaller by degrees\r\nyou said you\u2019d help me disappear\r\nbut that could take forever\r\ni think i\u2019ll wait another year\r\nit\u2019ll be the best year ever\r\ni think i\u2019ll wait another...\r\n\r\ncan\u2019t we just wait together?\r\nyou bring the smokes, i\u2019ll bring the beer\r\n\r\n...i think i\u2019ll wait another year",
149
+ "downloadable": 1,
150
+ "duration": 362.72,
151
+ "about": "A Short History of Almost Something\r\nStrings arranged by Paul Buckmaster",
152
+ "album_id": 2587417518,
153
+ "credits": "Basic recorded at Prairie Sun Studios, Cotati, CA. \r\nEngineer: Justin Phelps.\u00a0\r\nStrings arranged by Paul Buckmaster and recorded at Capitol Records in LA.\u00a0\r\nMixed by Michael Brauer in Nashville at Chez Ben.\r\nProduced by Amanda.",
154
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=884740561&stream=1&ts=1299435198.0&tsig=38bc3258210a0c0847a9cabeec59e8e9",
155
+ "number": 12,
156
+ "title": "Another Year",
157
+ "url": "\/track\/another-year",
158
+ "track_id": 884740561,
159
+ "band_id": 3463798201
160
+ }
161
+ ],
162
+ "about": "For additional information including a recording-diary by Amanda, exclusive videos, liner notes, lyrics, and much more, please visit http:\/\/www.whokilledamandapalmer.com",
163
+ "album_id": 2587417518,
164
+ "credits": "For a complete list of credits, please visit http:\/\/www.whokilledamandapalmer.com\/credits.php",
165
+ "large_art_url": "http:\/\/bandcamp.com\/files\/41\/81\/41814958-1.jpg",
166
+ "small_art_url": "http:\/\/bandcamp.com\/files\/33\/09\/3309055932-1.jpg",
167
+ "title": "Who Killed Amanda Palmer",
168
+ "release_date": 1221523200,
169
+ "url": "http:\/\/music.amandapalmer.net\/album\/who-killed-amanda-palmer",
170
+ "band_id": 3463798201,
171
+ "artist": "John Finn"
172
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "offsite_url": "http:\/\/www.amandapalmer.net",
3
+ "name": "Amanda Palmer",
4
+ "url": "http:\/\/music.amandapalmer.net",
5
+ "subdomain": "amandapalmer",
6
+ "band_id": 3463798201
7
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "discography": [
3
+ {
4
+ "large_art_url": "http:\/\/bandcamp.com\/files\/33\/57\/3357571954-1.jpg",
5
+ "small_art_url": "http:\/\/bandcamp.com\/files\/66\/24\/662451815-1.jpg",
6
+ "artist": "Sufjan Stevens",
7
+ "title": "All Delighted People EP",
8
+ "release_date": 1282262400,
9
+ "band_id": 203035041,
10
+ "url": "http:\/\/music.sufjan.com\/album\/all-delighted-people-ep",
11
+ "downloadable": 2,
12
+ "album_id": 670192006
13
+ },
14
+ {
15
+ "large_art_url": "http:\/\/bandcamp.com\/files\/40\/30\/4030304357-1.jpg",
16
+ "small_art_url": "http:\/\/bandcamp.com\/files\/88\/46\/884650348-1.jpg",
17
+ "artist": "Sufjan Stevens",
18
+ "title": "Illinois",
19
+ "release_date": 1120521600,
20
+ "band_id": 203035041,
21
+ "url": "http:\/\/music.sufjan.com\/album\/illinois",
22
+ "downloadable": 2,
23
+ "album_id": 781775666
24
+ },
25
+ {
26
+ "large_art_url": "http:\/\/bandcamp.com\/files\/10\/84\/1084754880-1.jpg",
27
+ "small_art_url": "http:\/\/bandcamp.com\/files\/40\/95\/4095662251-1.jpg",
28
+ "artist": "Sufjan Stevens",
29
+ "title": "Songs for Christmas",
30
+ "release_date": 1164067200,
31
+ "band_id": 203035041,
32
+ "url": "http:\/\/music.sufjan.com\/album\/songs-for-christmas",
33
+ "downloadable": 2,
34
+ "album_id": 798104856
35
+ },
36
+ {
37
+ "large_art_url": "http:\/\/bandcamp.com\/files\/39\/56\/3956906086-1.jpg",
38
+ "small_art_url": "http:\/\/bandcamp.com\/files\/26\/22\/2622093179-1.jpg",
39
+ "artist": "Sufjan Stevens",
40
+ "title": "A Sun Came",
41
+ "release_date": 1090281600,
42
+ "band_id": 203035041,
43
+ "url": "http:\/\/music.sufjan.com\/album\/a-sun-came",
44
+ "downloadable": 2,
45
+ "album_id": 832878843
46
+ },
47
+ {
48
+ "large_art_url": "http:\/\/bandcamp.com\/files\/23\/39\/2339524452-1.jpg",
49
+ "small_art_url": "http:\/\/bandcamp.com\/files\/24\/97\/2497262513-1.jpg",
50
+ "artist": "Sufjan Stevens",
51
+ "title": "The Avalanche",
52
+ "release_date": 1152576000,
53
+ "band_id": 203035041,
54
+ "url": "http:\/\/music.sufjan.com\/album\/the-avalanche",
55
+ "downloadable": 2,
56
+ "album_id": 2566673686
57
+ },
58
+ {
59
+ "large_art_url": "http:\/\/bandcamp.com\/files\/10\/56\/1056824311-1.jpg",
60
+ "small_art_url": "http:\/\/bandcamp.com\/files\/95\/38\/953814775-1.jpg",
61
+ "artist": "Sufjan Stevens",
62
+ "title": "The BQE",
63
+ "release_date": 1255996800,
64
+ "band_id": 203035041,
65
+ "url": "http:\/\/music.sufjan.com\/album\/the-bqe",
66
+ "downloadable": 2,
67
+ "album_id": 2716113933
68
+ },
69
+ {
70
+ "large_art_url": "http:\/\/bandcamp.com\/files\/39\/60\/3960395853-1.jpg",
71
+ "small_art_url": "http:\/\/bandcamp.com\/files\/24\/78\/2478898029-1.jpg",
72
+ "artist": "Sufjan Stevens",
73
+ "title": "Michigan",
74
+ "release_date": 1057017600,
75
+ "band_id": 203035041,
76
+ "url": "http:\/\/music.sufjan.com\/album\/michigan",
77
+ "downloadable": 2,
78
+ "album_id": 3978284670
79
+ },
80
+ {
81
+ "large_art_url": "http:\/\/bandcamp.com\/files\/26\/51\/2651805412-1.jpg",
82
+ "small_art_url": "http:\/\/bandcamp.com\/files\/26\/38\/2638959808-1.jpg",
83
+ "artist": "Sufjan Stevens",
84
+ "title": "Enjoy Your Rabbit",
85
+ "release_date": 1018915200,
86
+ "band_id": 203035041,
87
+ "url": "http:\/\/music.sufjan.com\/album\/enjoy-your-rabbit",
88
+ "downloadable": 2,
89
+ "album_id": 4180322227
90
+ },
91
+ {
92
+ "large_art_url": "http:\/\/bandcamp.com\/files\/69\/08\/690853356-1.jpg",
93
+ "small_art_url": "http:\/\/bandcamp.com\/files\/10\/32\/1032688205-1.jpg",
94
+ "artist": "Sufjan Stevens",
95
+ "title": "The Age of Adz",
96
+ "release_date": 1286841600,
97
+ "band_id": 203035041,
98
+ "url": "http:\/\/music.sufjan.com\/album\/the-age-of-adz",
99
+ "downloadable": 2,
100
+ "album_id": 4246425639
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "3789714150": {
3
+ "offsite_url": null,
4
+ "name": "Mountain Man",
5
+ "url": "http:\/\/mountainman.bandcamp.com",
6
+ "subdomain": "mountainman",
7
+ "band_id": 3789714150
8
+ },
9
+ "4214473200": {
10
+ "offsite_url": "http:\/\/cultscultscults.com\/",
11
+ "name": "Cults",
12
+ "url": "http:\/\/cults.bandcamp.com",
13
+ "subdomain": "cults",
14
+ "band_id": 4214473200
15
+ }
16
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "results": [
3
+ {
4
+ "offsite_url": "http:\/\/www.baronvonluxxury.com",
5
+ "name": "Baron von Luxxury",
6
+ "url": "http:\/\/luxxury.bandcamp.com",
7
+ "subdomain": "luxxury",
8
+ "band_id": 1366501350
9
+ },
10
+ {
11
+ "offsite_url": null,
12
+ "name": "Baron Von Luxxury",
13
+ "url": "http:\/\/baronvonluxxury.bandcamp.com",
14
+ "subdomain": "baronvonluxxury",
15
+ "band_id": 3773098762
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "subdomain": "sufjanstevens",
3
+ "name": "Sufjan Stevens",
4
+ "band_id": 203035041,
5
+ "offsite_url": null,
6
+ "url": "http:\/\/music.sufjan.com"
7
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "duration": 317.378,
3
+ "lyrics": "When you were here before, \r\ncouldn't look you in the eye. \r\nYou're just like an angel,\r\nyour skin makes me cry. \r\nYou float like a feather,\r\nin a beautiful world \r\nYou're so fucking special,\r\nI wish I was special...\r\n\r\nBut I'm a creep, I'm a weirdo.\r\nWhat the hell am I doing here?\r\nI don't belong here. \r\n\r\nI don't care if it hurts, \r\nI want to have control. \r\nI want a perfect body,\r\nI want a perfect soul.\r\nI want you to notice,\r\nwhen I'm not around. \r\nYou're so fucking special,\r\nI wish I was special.\r\n\r\nBut I'm a creep, I'm a weirdo.\r\nWhat the hell am I doing here?\r\nI don't belong here\r\n\r\nShe's running out the door, \r\nshe's running, \r\nshe run, run, run, run, run.\r\n\r\nWhatever makes you happy,\r\nwhatever you want. \r\nYou're so fucking special,\r\nI wish I was special,\r\n\r\nbut I'm a creep, I'm a weirdo.\r\nWhat the hell am I doing here?\r\nI don't belong here,\r\nI don't belong here.",
4
+ "album_id": 1003295408,
5
+ "downloadable": 2,
6
+ "about": "Recorded live in Prague, Czech Republic at Pal\u00e1c Akropolis on May 5th, 2010",
7
+ "number": 7,
8
+ "credits": "Featuring: Amanda Palmer (ukulele and vocals) \r\n\r\nMixed and Mastered by Mick Wordley at Mixmasters Studios in Adelaide, Australia - mixmasters.com.au\r\n\r\nWritten by Colin Charles Greenwood, Jonathan Richard Guy Greenwood, Paul Lansky, Edward John O'Brien, and Thomas Edward Yorke; published by WARNER CHAPPELL MUSIC INTERNATIONAL LTD.",
9
+ "title": "Creep (Live in Prague)",
10
+ "streaming_url": "http:\/\/popplers5.bandcamp.com\/download\/track?enc=mp3-128&id=1269403107&stream=1&ts=1298800847.0&tsig=67543bb7f276035915039c5545744d3b",
11
+ "track_id": 1269403107,
12
+ "url": "\/track\/creep-live-in-prague",
13
+ "band_id": 3463798201
14
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "track_id": 2323108455,
3
+ "band_id": 203035041
4
+ }
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bandcamp-rb
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
11
+ platform: ruby
12
+ authors:
13
+ - Jason Cale
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-03-06 00:00:00 +00:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: httparty
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 0
32
+ - 7
33
+ - 4
34
+ version: 0.7.4
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: shoulda
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: webmock
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :development
64
+ version_requirements: *id003
65
+ description:
66
+ email: jase@gofreerange.com
67
+ executables: []
68
+
69
+ extensions: []
70
+
71
+ extra_rdoc_files:
72
+ - README
73
+ files:
74
+ - test/bandcamp_test.rb
75
+ - test/fixtures/album.json
76
+ - test/fixtures/band.json
77
+ - test/fixtures/band_discography.json
78
+ - test/fixtures/multiple_bands.json
79
+ - test/fixtures/search.json
80
+ - test/fixtures/sufjanstevens.json
81
+ - test/fixtures/track.json
82
+ - test/fixtures/url_search.json
83
+ - lib/bandcamp.rb
84
+ - README
85
+ has_rdoc: true
86
+ homepage: http://gofreerange.com
87
+ licenses: []
88
+
89
+ post_install_message:
90
+ rdoc_options: []
91
+
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
111
+ version: "0"
112
+ requirements: []
113
+
114
+ rubyforge_project:
115
+ rubygems_version: 1.5.2
116
+ signing_key:
117
+ specification_version: 3
118
+ summary: Simple wrapper around Bandcamp.com API v1-3
119
+ test_files: []
120
+