echowrap 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +22 -0
- data/.travis.yml +16 -0
- data/Gemfile +13 -0
- data/LICENSE.txt +22 -0
- data/README.md +111 -0
- data/Rakefile +1 -0
- data/echowrap.gemspec +24 -0
- data/lib/echowrap/analysis.rb +39 -0
- data/lib/echowrap/api/artist.rb +387 -0
- data/lib/echowrap/api/oauth.rb +25 -0
- data/lib/echowrap/api/playlist.rb +248 -0
- data/lib/echowrap/api/sandbox.rb +45 -0
- data/lib/echowrap/api/song.rb +111 -0
- data/lib/echowrap/api/taste_profile.rb +296 -0
- data/lib/echowrap/api/track.rb +64 -0
- data/lib/echowrap/api/utils.rb +57 -0
- data/lib/echowrap/artist.rb +73 -0
- data/lib/echowrap/asset.rb +12 -0
- data/lib/echowrap/audio_summary.rb +15 -0
- data/lib/echowrap/base.rb +88 -0
- data/lib/echowrap/biography.rb +13 -0
- data/lib/echowrap/blog.rb +8 -0
- data/lib/echowrap/call_list.rb +8 -0
- data/lib/echowrap/category_map.rb +8 -0
- data/lib/echowrap/client.rb +80 -0
- data/lib/echowrap/configurable.rb +84 -0
- data/lib/echowrap/default.rb +88 -0
- data/lib/echowrap/doc_counts.rb +8 -0
- data/lib/echowrap/echonest_id.rb +8 -0
- data/lib/echowrap/error/bad_gateway.rb +11 -0
- data/lib/echowrap/error/bad_request.rb +10 -0
- data/lib/echowrap/error/client_error.rb +35 -0
- data/lib/echowrap/error/configuration_error.rb +8 -0
- data/lib/echowrap/error/forbidden.rb +10 -0
- data/lib/echowrap/error/gateway_timeout.rb +11 -0
- data/lib/echowrap/error/internal_server_error.rb +11 -0
- data/lib/echowrap/error/not_acceptable.rb +10 -0
- data/lib/echowrap/error/not_found.rb +10 -0
- data/lib/echowrap/error/server_error.rb +28 -0
- data/lib/echowrap/error/service_unavailable.rb +11 -0
- data/lib/echowrap/error/too_many_requests.rb +12 -0
- data/lib/echowrap/error/unauthorized.rb +10 -0
- data/lib/echowrap/error/unprocessable_entity.rb +10 -0
- data/lib/echowrap/error.rb +32 -0
- data/lib/echowrap/familiarity.rb +8 -0
- data/lib/echowrap/feed.rb +14 -0
- data/lib/echowrap/foreign_id.rb +10 -0
- data/lib/echowrap/genre.rb +8 -0
- data/lib/echowrap/hotttnesss.rb +8 -0
- data/lib/echowrap/image.rb +15 -0
- data/lib/echowrap/item.rb +95 -0
- data/lib/echowrap/item_request.rb +8 -0
- data/lib/echowrap/keyvalues.rb +8 -0
- data/lib/echowrap/license.rb +10 -0
- data/lib/echowrap/location.rb +8 -0
- data/lib/echowrap/meta.rb +9 -0
- data/lib/echowrap/news_article.rb +8 -0
- data/lib/echowrap/options.rb +10 -0
- data/lib/echowrap/playlist.rb +47 -0
- data/lib/echowrap/prediction.rb +7 -0
- data/lib/echowrap/rate_limit.rb +47 -0
- data/lib/echowrap/reference.rb +8 -0
- data/lib/echowrap/request/multipart_with_file.rb +36 -0
- data/lib/echowrap/response/parse_json.rb +25 -0
- data/lib/echowrap/response/raise_error.rb +31 -0
- data/lib/echowrap/review.rb +8 -0
- data/lib/echowrap/rule.rb +8 -0
- data/lib/echowrap/sandbox.rb +11 -0
- data/lib/echowrap/seeds.rb +9 -0
- data/lib/echowrap/sequenced_data/bar.rb +4 -0
- data/lib/echowrap/sequenced_data/beat.rb +4 -0
- data/lib/echowrap/sequenced_data/section.rb +6 -0
- data/lib/echowrap/sequenced_data/segment.rb +4 -0
- data/lib/echowrap/sequenced_data/tatum.rb +4 -0
- data/lib/echowrap/sequenced_data.rb +12 -0
- data/lib/echowrap/song.rb +24 -0
- data/lib/echowrap/status.rb +12 -0
- data/lib/echowrap/taste_profile.rb +28 -0
- data/lib/echowrap/term.rb +8 -0
- data/lib/echowrap/track.rb +21 -0
- data/lib/echowrap/update_info.rb +8 -0
- data/lib/echowrap/urls.rb +9 -0
- data/lib/echowrap/version.rb +18 -0
- data/lib/echowrap/video.rb +7 -0
- data/lib/echowrap/years_active.rb +8 -0
- data/lib/echowrap.rb +78 -0
- data/spec/echonest/api/artist_spec.rb +901 -0
- data/spec/echonest/api/oauth_spec.rb +29 -0
- data/spec/echonest/api/playlist_spec.rb +274 -0
- data/spec/echonest/api/sandbox_spec.rb +67 -0
- data/spec/echonest/api/song_spec.rb +326 -0
- data/spec/echonest/api/taste_profile_spec.rb +403 -0
- data/spec/echonest/api/track_spec.rb +167 -0
- data/spec/echonest/base_spec.rb +119 -0
- data/spec/echonest/client_spec.rb +174 -0
- data/spec/echonest/error_spec.rb +20 -0
- data/spec/echonest/rate_limit_spec.rb +76 -0
- data/spec/echonest_spec.rb +65 -0
- data/spec/fixtures/artist/biographies.json +1 -0
- data/spec/fixtures/artist/blogs.json +1 -0
- data/spec/fixtures/artist/extract.json +1 -0
- data/spec/fixtures/artist/familiarity.json +1 -0
- data/spec/fixtures/artist/hotttnesss.json +1 -0
- data/spec/fixtures/artist/images.json +1 -0
- data/spec/fixtures/artist/list_genres.json +1 -0
- data/spec/fixtures/artist/list_terms.json +1 -0
- data/spec/fixtures/artist/news.json +1 -0
- data/spec/fixtures/artist/profile.json +1 -0
- data/spec/fixtures/artist/reviews.json +1 -0
- data/spec/fixtures/artist/search.json +1 -0
- data/spec/fixtures/artist/similar.json +1 -0
- data/spec/fixtures/artist/songs.json +1 -0
- data/spec/fixtures/artist/suggest.json +1 -0
- data/spec/fixtures/artist/terms.json +1 -0
- data/spec/fixtures/artist/top_hottt.json +1 -0
- data/spec/fixtures/artist/top_terms.json +1 -0
- data/spec/fixtures/artist/twitter.json +1 -0
- data/spec/fixtures/artist/urls.json +1 -0
- data/spec/fixtures/artist/video.json +1 -0
- data/spec/fixtures/billie_jean_fingerprint.txt +1 -0
- data/spec/fixtures/billie_jean_query.json +16 -0
- data/spec/fixtures/oauth/timestamp.json +1 -0
- data/spec/fixtures/playlist/basic.json +1 -0
- data/spec/fixtures/playlist/dynamic/create.json +1 -0
- data/spec/fixtures/playlist/dynamic/delete.json +1 -0
- data/spec/fixtures/playlist/dynamic/feedback.json +1 -0
- data/spec/fixtures/playlist/dynamic/info.json +1 -0
- data/spec/fixtures/playlist/dynamic/next.json +1 -0
- data/spec/fixtures/playlist/dynamic/restart.json +1 -0
- data/spec/fixtures/playlist/dynamic/steer.json +1 -0
- data/spec/fixtures/playlist/static.json +1 -0
- data/spec/fixtures/sandbox/access.json +19 -0
- data/spec/fixtures/sandbox/list.json +1 -0
- data/spec/fixtures/song/identify.json +19 -0
- data/spec/fixtures/song/profile.json +1 -0
- data/spec/fixtures/song/search.json +1 -0
- data/spec/fixtures/taste_profile/ban.json +9 -0
- data/spec/fixtures/taste_profile/create.json +1 -0
- data/spec/fixtures/taste_profile/delete.json +11 -0
- data/spec/fixtures/taste_profile/favorite.json +9 -0
- data/spec/fixtures/taste_profile/feed.json +1 -0
- data/spec/fixtures/taste_profile/keyvalues.json +4 -0
- data/spec/fixtures/taste_profile/list.json +1 -0
- data/spec/fixtures/taste_profile/play.json +9 -0
- data/spec/fixtures/taste_profile/predict.json +1 -0
- data/spec/fixtures/taste_profile/profile.json +1 -0
- data/spec/fixtures/taste_profile/rate.json +9 -0
- data/spec/fixtures/taste_profile/read.json +1 -0
- data/spec/fixtures/taste_profile/similar.json +14 -0
- data/spec/fixtures/taste_profile/skip.json +9 -0
- data/spec/fixtures/taste_profile/status.json +2 -0
- data/spec/fixtures/taste_profile/update.json +10 -0
- data/spec/fixtures/taste_profile/update_request_data.json +4 -0
- data/spec/fixtures/technolol-music.mp3 +0 -0
- data/spec/fixtures/track/analysis.json +3 -0
- data/spec/fixtures/track/profile.json +35 -0
- data/spec/fixtures/track/upload.json +21 -0
- data/spec/helper.rb +50 -0
- metadata +323 -0
@@ -0,0 +1,174 @@
|
|
1
|
+
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
describe Echowrap::Client do
|
5
|
+
|
6
|
+
subject do
|
7
|
+
Echowrap::Client.new(:api_key => "AK", :consumer_key => "CK", :shared_secret => "SS")
|
8
|
+
end
|
9
|
+
|
10
|
+
context "with module configuration" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
Echowrap.configure do |config|
|
14
|
+
Echowrap::Configurable.keys.each do |key|
|
15
|
+
config.send("#{key}=", key)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
after do
|
21
|
+
Echowrap.reset!
|
22
|
+
end
|
23
|
+
|
24
|
+
it "inherits the module configuration" do
|
25
|
+
client = Echowrap::Client.new
|
26
|
+
Echowrap::Configurable.keys.each do |key|
|
27
|
+
expect(client.instance_variable_get(:"@#{key}")).to eq key
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with class configuration" do
|
32
|
+
|
33
|
+
before do
|
34
|
+
@configuration = {
|
35
|
+
:connection_options => {:timeout => 10},
|
36
|
+
:api_key => 'AK',
|
37
|
+
:consumer_key => 'CK',
|
38
|
+
:shared_secret => 'SS',
|
39
|
+
:endpoint => 'http://tumblr.com/',
|
40
|
+
:middleware => Proc.new{}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
context "during initialization" do
|
45
|
+
it "overrides the module configuration" do
|
46
|
+
client = Echowrap::Client.new(@configuration)
|
47
|
+
Echowrap::Configurable.keys.each do |key|
|
48
|
+
expect(client.instance_variable_get(:"@#{key}")).to eq @configuration[key]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "after initialization" do
|
54
|
+
it "overrides the module configuration after initialization" do
|
55
|
+
client = Echowrap::Client.new
|
56
|
+
client.configure do |config|
|
57
|
+
@configuration.each do |key, value|
|
58
|
+
config.send("#{key}=", value)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
Echowrap::Configurable.keys.each do |key|
|
62
|
+
expect(client.instance_variable_get(:"@#{key}")).to eq @configuration[key]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# it "does not cache the screen name across clients" do
|
71
|
+
# stub_get("/1.1/account/verify_credentials.json").to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
72
|
+
# client1 = Echowrap::Client.new
|
73
|
+
# expect(client1.verify_credentials.id).to eq 7505382
|
74
|
+
# stub_get("/1.1/account/verify_credentials.json").to_return(:body => fixture("pengwynn.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
75
|
+
# client2 = Echowrap::Client.new
|
76
|
+
# expect(client2.verify_credentials.id).to eq 14100886
|
77
|
+
# end
|
78
|
+
#
|
79
|
+
# describe "#delete" do
|
80
|
+
# before do
|
81
|
+
# stub_delete("/custom/delete").with(:query => {:deleted => "object"})
|
82
|
+
# end
|
83
|
+
# it "allows custom delete requests" do
|
84
|
+
# subject.delete("/custom/delete", {:deleted => "object"})
|
85
|
+
# expect(a_delete("/custom/delete").with(:query => {:deleted => "object"})).to have_been_made
|
86
|
+
# end
|
87
|
+
# end
|
88
|
+
#
|
89
|
+
# describe "#put" do
|
90
|
+
# before do
|
91
|
+
# stub_put("/custom/put").with(:body => {:updated => "object"})
|
92
|
+
# end
|
93
|
+
# it "allows custom put requests" do
|
94
|
+
# subject.put("/custom/put", {:updated => "object"})
|
95
|
+
# expect(a_put("/custom/put").with(:body => {:updated => "object"})).to have_been_made
|
96
|
+
# end
|
97
|
+
# end
|
98
|
+
#
|
99
|
+
# describe "#credentials?" do
|
100
|
+
# it "returns true if all credentials are present" do
|
101
|
+
# client = Echowrap::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
|
102
|
+
# expect(client.credentials?).to be_true
|
103
|
+
# end
|
104
|
+
# it "returns false if any credentials are missing" do
|
105
|
+
# client = Echowrap::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT')
|
106
|
+
# expect(client.credentials?).to be_false
|
107
|
+
# end
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
describe "#connection" do
|
111
|
+
it "looks like Faraday connection" do
|
112
|
+
expect(subject.send(:connection)).to respond_to(:run_request)
|
113
|
+
end
|
114
|
+
it "memoizes the connection" do
|
115
|
+
c1, c2 = subject.send(:connection), subject.send(:connection)
|
116
|
+
expect(c1.object_id).to eq c2.object_id
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# describe "#request" do
|
121
|
+
# it "encodes the entire body when no uploaded media is present" do
|
122
|
+
# stub_post("/1.1/statuses/update.json").with(:body => {:status => "Update"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
123
|
+
# subject.update("Update")
|
124
|
+
# expect(a_post("/1.1/statuses/update.json").with(:body => {:status => "Update"})).to have_been_made
|
125
|
+
# end
|
126
|
+
# it "encodes none of the body when uploaded media is present" do
|
127
|
+
# stub_post("/1.1/statuses/update_with_media.json")
|
128
|
+
# subject.update_with_media("Update", fixture("pbjt.gif"))
|
129
|
+
# expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
130
|
+
# end
|
131
|
+
# it "catches Faraday errors" do
|
132
|
+
# subject.stub!(:connection).and_raise(Faraday::Error::ClientError.new("Oops"))
|
133
|
+
# expect{subject.send(:request, :get, "/path")}.to raise_error Echowrap::Error::ClientError
|
134
|
+
# end
|
135
|
+
# it "catches MultiJson::DecodeError errors" do
|
136
|
+
# subject.stub!(:connection).and_raise(MultiJson::DecodeError.new("unexpected token", [], "<!DOCTYPE html>"))
|
137
|
+
# expect{subject.send(:request, :get, "/path")}.to raise_error Echowrap::Error::DecodeError
|
138
|
+
# end
|
139
|
+
# end
|
140
|
+
|
141
|
+
# describe "#oauth_auth_header" do
|
142
|
+
# it "creates the correct auth headers" do
|
143
|
+
# uri = "/1.1/direct_messages.json"
|
144
|
+
# authorization = subject.send(:oauth_auth_header, :get, uri)
|
145
|
+
# expect(authorization.options[:signature_method]).to eq "HMAC-SHA1"
|
146
|
+
# expect(authorization.options[:version]).to eq "1.0"
|
147
|
+
# expect(authorization.options[:consumer_key]).to eq "CK"
|
148
|
+
# expect(authorization.options[:consumer_secret]).to eq "CS"
|
149
|
+
# expect(authorization.options[:token]).to eq "OT"
|
150
|
+
# expect(authorization.options[:token_secret]).to eq "OS"
|
151
|
+
# end
|
152
|
+
# end
|
153
|
+
#
|
154
|
+
# describe "#bearer_auth_header" do
|
155
|
+
# subject do
|
156
|
+
# Echowrap::Client.new(:bearer_token => "BT")
|
157
|
+
# end
|
158
|
+
#
|
159
|
+
# it "creates the correct auth headers with supplied bearer_token" do
|
160
|
+
# uri = "/1.1/direct_messages.json"
|
161
|
+
# authorization = subject.send(:bearer_auth_header)
|
162
|
+
# expect(authorization).to eq "Bearer BT"
|
163
|
+
# end
|
164
|
+
# end
|
165
|
+
#
|
166
|
+
# describe "#bearer_token_credentials_auth_header" do
|
167
|
+
# it "creates the correct auth header with supplied consumer_key and consumer_secret" do
|
168
|
+
# uri = "/1.1/direct_messages.json"
|
169
|
+
# authorization = subject.send(:bearer_token_credentials_auth_header)
|
170
|
+
# expect(authorization).to eq "Basic #{Base64.strict_encode64("CK:CS")}"
|
171
|
+
# end
|
172
|
+
# end
|
173
|
+
end
|
174
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Echowrap::Error do
|
4
|
+
|
5
|
+
describe "#initialize" do
|
6
|
+
it "wraps another error class" do
|
7
|
+
begin
|
8
|
+
raise Faraday::Error::ClientError.new("Oops")
|
9
|
+
rescue Faraday::Error::ClientError
|
10
|
+
begin
|
11
|
+
raise Echowrap::Error
|
12
|
+
rescue Echowrap::Error => error
|
13
|
+
expect(error.message).to eq "Oops"
|
14
|
+
expect(error.wrapped_exception.class).to eq Faraday::Error::ClientError
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Echowrap::RateLimit do
|
4
|
+
|
5
|
+
describe "#limit" do
|
6
|
+
it "returns an Integer when x-rate-limit-limit header is set" do
|
7
|
+
rate_limit = Echowrap::RateLimit.new('x-rate-limit-limit' => "150")
|
8
|
+
expect(rate_limit.limit).to be_an Integer
|
9
|
+
expect(rate_limit.limit).to eq 150
|
10
|
+
end
|
11
|
+
it "returns nil when x-rate-limit-limit header is not set" do
|
12
|
+
rate_limit = Echowrap::RateLimit.new
|
13
|
+
expect(rate_limit.limit).to be_nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#remaining" do
|
18
|
+
it "returns an Integer when x-rate-limit-remaining header is set" do
|
19
|
+
rate_limit = Echowrap::RateLimit.new('x-rate-limit-remaining' => "149")
|
20
|
+
expect(rate_limit.remaining).to be_an Integer
|
21
|
+
expect(rate_limit.remaining).to eq 149
|
22
|
+
end
|
23
|
+
it "returns nil when x-rate-limit-remaining header is not set" do
|
24
|
+
rate_limit = Echowrap::RateLimit.new
|
25
|
+
expect(rate_limit.remaining).to be_nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#reset_at" do
|
30
|
+
it "returns a Time when x-rate-limit-reset header is set" do
|
31
|
+
rate_limit = Echowrap::RateLimit.new('x-rate-limit-reset' => "1339019097")
|
32
|
+
expect(rate_limit.reset_at).to be_a Time
|
33
|
+
expect(rate_limit.reset_at).to eq Time.at(1339019097)
|
34
|
+
end
|
35
|
+
it "returns nil when x-rate-limit-reset header is not set" do
|
36
|
+
rate_limit = Echowrap::RateLimit.new
|
37
|
+
expect(rate_limit.reset_at).to be_nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#reset_in" do
|
42
|
+
before do
|
43
|
+
Timecop.freeze(Time.utc(2012, 6, 6, 17, 22, 0))
|
44
|
+
end
|
45
|
+
after do
|
46
|
+
Timecop.return
|
47
|
+
end
|
48
|
+
it "returns an Integer when x-rate-limit-reset header is set" do
|
49
|
+
rate_limit = Echowrap::RateLimit.new('x-rate-limit-reset' => "1339019097")
|
50
|
+
expect(rate_limit.reset_in).to be_an Integer
|
51
|
+
expect(rate_limit.reset_in).to eq 15777
|
52
|
+
end
|
53
|
+
it "returns nil when x-rate-limit-reset header is not set" do
|
54
|
+
rate_limit = Echowrap::RateLimit.new
|
55
|
+
expect(rate_limit.reset_in).to be_nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "#update" do
|
60
|
+
before do
|
61
|
+
Timecop.freeze(Time.utc(2012, 6, 6, 17, 22, 0))
|
62
|
+
end
|
63
|
+
after do
|
64
|
+
Timecop.return
|
65
|
+
end
|
66
|
+
it "updates a rate limit" do
|
67
|
+
rate_limit = Echowrap::RateLimit.new('x-rate-limit-reset' => "1339019097")
|
68
|
+
expect(rate_limit.reset_in).to be_an Integer
|
69
|
+
expect(rate_limit.reset_in).to eq 15777
|
70
|
+
rate_limit.update({'x-rate-limit-reset' => "1339019098"})
|
71
|
+
expect(rate_limit.reset_in).to be_an Integer
|
72
|
+
expect(rate_limit.reset_in).to eq 15778
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Echowrap do
|
4
|
+
|
5
|
+
after do
|
6
|
+
Echowrap.reset!
|
7
|
+
end
|
8
|
+
|
9
|
+
context "when delegating to a client" do
|
10
|
+
|
11
|
+
before do
|
12
|
+
Echowrap.configure do |config|
|
13
|
+
config.api_key = 'AK'
|
14
|
+
end
|
15
|
+
|
16
|
+
stub_get("/api/v4/song/search").
|
17
|
+
with(:query => { :artist => 'radiohead'}).
|
18
|
+
to_return(:body => fixture("song/search.json"),
|
19
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
20
|
+
end
|
21
|
+
|
22
|
+
it "requests the correct resource" do
|
23
|
+
Echowrap.song_search(:artist => 'radiohead')
|
24
|
+
expect(a_get("/api/v4/song/search")
|
25
|
+
.with(:query => {:artist => 'radiohead'}))
|
26
|
+
.to have_been_made
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns the same results as a client" do
|
30
|
+
expect(Echowrap.song_search(:artist => 'radiohead')).to eq Echowrap::Client.new.song_search(:artist => 'radiohead')
|
31
|
+
end
|
32
|
+
|
33
|
+
describe ".respond_to?" do
|
34
|
+
it "delegates to Echowrap::Client" do
|
35
|
+
expect(Echowrap.respond_to?(:song_search)).to be_true
|
36
|
+
end
|
37
|
+
it "takes an optional argument" do
|
38
|
+
expect(Echowrap.respond_to?(:client, true)).to be_true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe ".client" do
|
43
|
+
it "returns a Echowrap::Client" do
|
44
|
+
expect(Echowrap.client).to be_a Echowrap::Client
|
45
|
+
end
|
46
|
+
|
47
|
+
context "when the options don't change" do
|
48
|
+
it "caches the client" do
|
49
|
+
expect(Echowrap.client).to eq Echowrap.client
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when the options change" do
|
54
|
+
it "busts the cache" do
|
55
|
+
client1 = Echowrap.client
|
56
|
+
Echowrap.configure do |config|
|
57
|
+
config.api_key = 'abc'
|
58
|
+
end
|
59
|
+
client2 = Echowrap.client
|
60
|
+
expect(client1).not_to eq client2
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "start": 0, "total": 14, "biographies": [{"text": "Radiohead are an English alternative rock band from Abingdon, Oxfordshire. The band is composed of Thom Yorke (lead vocals, rhythm guitar, piano, beats), Jonny Greenwood (lead guitar, keyboard, other instruments), Ed O'Brien (guitar, backing vocals), Colin Greenwood (bass guitar) and Phil Selway (drums, percussion). Radiohead released their first single, \"Creep,\" in 1992. The song was initially unsuccessful, but it became a worldwide hit several months after the release of their debut album, Pablo Honey (1993). Radiohead's popularity rose in the United Kingdom with the release of their second album, The Bends (1995). The band's textured guitar parts and Yorke's falsetto singing were warmly received by critics and fans. Radiohead's third album, OK Computer (1997), propelled them to greater international fame. Featuring an expansive sound and themes of modern alienation, OK Computer has often been acclaimed as a landmark record of the 1990s. Kid A (2000) and Amnesiac (2001) marked a change in the band's musical style. Radiohead incorporated experimental electronic music, Krautrock, post-punk and jazz influences into their songs, dividing fans and critics, but they remained popular. Hail to the Thief (2003), a mix of guitar-driven rock, electronics and lyrics inspired by headlines, was the band's final album for their major record label, EMI. Radiohead independently released their seventh album, In Rainbows (2007), originally as a digital download for which each customer could set their own price, later in stores, to critical and chart success. Radiohead have sold approximately 30 million albums as of 2008.[1][2]", "site": "last.fm", "url": "http://www.last.fm/music/Radiohead/+wiki", "license": {"type": "cc-by-sa", "attribution": "Last.fm", "attribution-url": "http://www.last.fm/music/Radiohead/+wiki", "url": "http://creativecommons.org/licenses/by-sa/3.0/", "version": "3.0"}}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "start": 0, "total": 20791, "blogs": [{"name": "New: Kellen Malloy – Octillo III (Iso)", "url": "http://crackintheroad.com/feeder/?FeederAction=clicked&feed=Articles+%28RSS2%29&seed=http%3A%2F%2Fwww.crackintheroad.com%2Fmusic%2F21713-new-kellen-malloy-octillo-iii-iso%2F&seed_title=New%3A+Kellen+Malloy+%26%238211%3B+Octillo+III+%28Iso%29&utm_source=rss&utm_medium=rss&utm_campaign=new-kellen-malloy-octillo-iii-iso", "date_posted": "2013-05-05T19:19:09", "date_found": "2013-05-05T00:00:00", "summary": "The sun is out, university is drawing to a close and festival season is upon us. Suddenly things don't seem so bad. On this, his fifth original track, LA producer Kellen Malloy further shapes what is gradually becoming a stunning debut album. Drawing from drone and ambient works, alongside the <span>Radiohead</span> / Thom Yorke influences experienced on previous tracks, Octillo III is ambitious and at times beautifully uncompromising. As epic as it is daunting, Kellen Malloy is rapidly becoming one of the most exciting new talents around. New: Kellen Malloy – Octillo III (Iso)", "id": "30fc8108d77316c6789140bef92ecc09"}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "artists": [{"name": "Siriusmo", "id": "ARJNJT81187B98CF40"}, {"name": "Hrvatski", "id": "ARQR3191187B9B17AD"}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "artist": {"familiarity": 0.89792099999999997, "id": "ARH6W4X1187B99274F", "name": "Radiohead"}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "artist": {"hotttnesss": 0.66653499999999999, "id": "ARH6W4X1187B99274F", "name": "Radiohead"}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "start": 0, "total": 284, "images": [{"url": "http://userserve-ak.last.fm/serve/_/102639.jpg", "license": {"type": "unknown", "attribution": "last.fm", "url": "http://userserve-ak.last.fm/serve/_/102639.jpg"}}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "genres": [{"name": "a cappella"}, {"name": "acid house"}, {"name": "acid jazz"}, {"name": "acoustic blues"}, {"name": "afrobeat"}, {"name": "album rock"}, {"name": "alternative country"}, {"name": "alternative dance"}, {"name": "alternative hip hop"}, {"name": "alternative metal"}, {"name": "alternative rock"}, {"name": "ambient"}, {"name": "anti-folk"}, {"name": "art rock"}, {"name": "atmospheric black metal"}, {"name": "australian hip hop"}, {"name": "avant-garde"}, {"name": "avant-garde jazz"}, {"name": "avantgarde metal"}, {"name": "azonto"}, {"name": "bachata"}, {"name": "baile funk"}, {"name": "banda"}, {"name": "baroque"}, {"name": "bass music"}, {"name": "bebop"}, {"name": "bhangra"}, {"name": "big band"}, {"name": "big beat"}, {"name": "black metal"}, {"name": "blue-eyed soul"}, {"name": "bluegrass"}, {"name": "blues"}, {"name": "blues-rock"}, {"name": "bolero"}, {"name": "boogaloo"}, {"name": "boogie-woogie"}, {"name": "bossa nova"}, {"name": "bounce"}, {"name": "brass band"}, {"name": "brazilian pop music"}, {"name": "breakbeat"}, {"name": "breakcore"}, {"name": "brill building pop"}, {"name": "british blues"}, {"name": "british folk"}, {"name": "british invasion"}, {"name": "british pop"}, {"name": "broken beat"}, {"name": "brutal death metal"}, {"name": "bubblegum dance"}, {"name": "bubblegum pop"}, {"name": "c-pop"}, {"name": "cabaret"}, {"name": "calypso"}, {"name": "canterbury scene"}, {"name": "ccm"}, {"name": "celtic"}, {"name": "celtic rock"}, {"name": "chamber pop"}, {"name": "chanson"}, {"name": "chicago blues"}, {"name": "chicago house"}, {"name": "chicago soul"}, {"name": "children's music"}, {"name": "chill-out"}, {"name": "chillwave"}, {"name": "chinese indie rock"}, {"name": "chinese traditional"}, {"name": "chiptune"}, {"name": "choral"}, {"name": "choro"}, {"name": "christian alternative rock"}, {"name": "christian hardcore"}, {"name": "christian hip hop"}, {"name": "christian metal"}, {"name": "christian music"}, {"name": "christian punk"}, {"name": "christian rock"}, {"name": "classic funk rock"}, {"name": "classic garage rock"}, {"name": "classic rock"}, {"name": "classical"}, {"name": "classical period"}, {"name": "comedy"}, {"name": "contemporary country"}, {"name": "cool jazz"}, {"name": "country"}, {"name": "country blues"}, {"name": "country gospel"}, {"name": "country rock"}, {"name": "cowpunk"}, {"name": "crossover thrash"}, {"name": "crunk"}, {"name": "crust punk"}, {"name": "cumbia"}, {"name": "dance pop"}, {"name": "dance rock"}, {"name": "dance-punk"}, {"name": "dancehall"}, {"name": "dark ambient"}, {"name": "dark wave"}, {"name": "death core"}, {"name": "death metal"}, {"name": "deathgrind"}, {"name": "deep house"}, {"name": "delta blues"}, {"name": "desi"}, {"name": "detroit techno"}, {"name": "digital hardcore"}, {"name": "dirty south rap"}, {"name": "disco"}, {"name": "disco house"}, {"name": "djent"}, {"name": "doo-wop"}, {"name": "doom metal"}, {"name": "downtempo"}, {"name": "dream pop"}, {"name": "drone"}, {"name": "drum and bass"}, {"name": "dub"}, {"name": "dub techno"}, {"name": "dubstep"}, {"name": "dutch rock"}, {"name": "early music"}, {"name": "east coast hip hop"}, {"name": "easy listening"}, {"name": "ebm"}, {"name": "electric blues"}, {"name": "electro"}, {"name": "electro swing"}, {"name": "electro-industrial"}, {"name": "electroclash"}, {"name": "electronic"}, {"name": "emo"}, {"name": "eurobeat"}, {"name": "eurodance"}, {"name": "europop"}, {"name": "exotica"}, {"name": "experimental"}, {"name": "experimental rock"}, {"name": "fado"}, {"name": "filmi"}, {"name": "flamenco"}, {"name": "folk"}, {"name": "folk metal"}, {"name": "folk punk"}, {"name": "folk rock"}, {"name": "folk-pop"}, {"name": "freak folk"}, {"name": "freakbeat"}, {"name": "free improvisation"}, {"name": "free jazz"}, {"name": "freestyle"}, {"name": "funeral doom"}, {"name": "funk"}, {"name": "funk metal"}, {"name": "funk rock"}, {"name": "futurepop"}, {"name": "g funk"}, {"name": "gabba"}, {"name": "game"}, {"name": "gangster rap"}, {"name": "garage rock"}, {"name": "german pop"}, {"name": "glam metal"}, {"name": "glam rock"}, {"name": "glitch"}, {"name": "goregrind"}, {"name": "gospel"}, {"name": "gothic metal"}, {"name": "gothic rock"}, {"name": "gothic symphonic metal"}, {"name": "grave wave"}, {"name": "grime"}, {"name": "grindcore"}, {"name": "groove metal"}, {"name": "grunge"}, {"name": "gypsy jazz"}, {"name": "happy hardcore"}, {"name": "hard bop"}, {"name": "hard house"}, {"name": "hard rock"}, {"name": "hard trance"}, {"name": "hardcore"}, {"name": "hardcore hip hop"}, {"name": "hardcore techno"}, {"name": "hardstyle"}, {"name": "harmonica blues"}, {"name": "hi nrg"}, {"name": "highlife"}, {"name": "hip hop"}, {"name": "hip house"}, {"name": "horror punk"}, {"name": "house"}, {"name": "hyphy"}, {"name": "icelandic pop"}, {"name": "illbient"}, {"name": "indian classical"}, {"name": "indian pop"}, {"name": "indie folk"}, {"name": "indie pop"}, {"name": "indie rock"}, {"name": "indietronica"}, {"name": "industrial"}, {"name": "industrial metal"}, {"name": "industrial rock"}, {"name": "intelligent dance music"}, {"name": "irish folk"}, {"name": "italian disco"}, {"name": "j pop"}, {"name": "j rock"}, {"name": "jam band"}, {"name": "jangle pop"}, {"name": "japanese psychedelic"}, {"name": "japanoise"}, {"name": "jazz"}, {"name": "jazz blues"}, {"name": "jazz funk"}, {"name": "jazz fusion"}, {"name": "judaica"}, {"name": "jug band"}, {"name": "juggalo"}, {"name": "jump blues"}, {"name": "jungle music"}, {"name": "k pop"}, {"name": "kiwi rock"}, {"name": "klezmer"}, {"name": "kompa"}, {"name": "kraut rock"}, {"name": "kwaito"}, {"name": "laiko"}, {"name": "latin"}, {"name": "latin alternative"}, {"name": "latin jazz"}, {"name": "latin pop"}, {"name": "lo-fi"}, {"name": "louisiana blues"}, {"name": "lounge"}, {"name": "lovers rock"}, {"name": "madchester"}, {"name": "mambo"}, {"name": "mariachi"}, {"name": "martial industrial"}, {"name": "math rock"}, {"name": "mathcore"}, {"name": "mbalax"}, {"name": "medieval"}, {"name": "mellow gold"}, {"name": "melodic death metal"}, {"name": "melodic hardcore"}, {"name": "melodic metalcore"}, {"name": "memphis blues"}, {"name": "memphis soul"}, {"name": "merengue"}, {"name": "merseybeat"}, {"name": "metal"}, {"name": "metalcore"}, {"name": "microhouse"}, {"name": "minimal"}, {"name": "modern blues"}, {"name": "modern classical"}, {"name": "moombahton"}, {"name": "motown"}, {"name": "mpb"}, {"name": "musique concrete"}, {"name": "nashville sound"}, {"name": "native american"}, {"name": "neo classical metal"}, {"name": "neo soul"}, {"name": "neo-progressive"}, {"name": "neoclassical"}, {"name": "neofolk"}, {"name": "neue deutsche harte"}, {"name": "neue deutsche welle"}, {"name": "new age"}, {"name": "new beat"}, {"name": "new jack swing"}, {"name": "new orleans blues"}, {"name": "new orleans jazz"}, {"name": "new rave"}, {"name": "new romantic"}, {"name": "new wave"}, {"name": "new weird america"}, {"name": "ninja"}, {"name": "no wave"}, {"name": "noise pop"}, {"name": "noise rock"}, {"name": "northern soul"}, {"name": "nu jazz"}, {"name": "nu metal"}, {"name": "nu skool breaks"}, {"name": "nwobhm"}, {"name": "oi"}, {"name": "old school hip hop"}, {"name": "opera"}, {"name": "opm"}, {"name": "oratory"}, {"name": "outlaw country"}, {"name": "pagan black metal"}, {"name": "piano blues"}, {"name": "piano rock"}, {"name": "piedmont blues"}, {"name": "polka"}, {"name": "pop"}, {"name": "pop punk"}, {"name": "pop rap"}, {"name": "pop rock"}, {"name": "portuguese rock"}, {"name": "post rock"}, {"name": "post-disco"}, {"name": "post-grunge"}, {"name": "post-hardcore"}, {"name": "post-metal"}, {"name": "post-punk"}, {"name": "power electronics"}, {"name": "power metal"}, {"name": "power noise"}, {"name": "power pop"}, {"name": "power violence"}, {"name": "progressive bluegrass"}, {"name": "progressive house"}, {"name": "progressive metal"}, {"name": "progressive rock"}, {"name": "progressive trance"}, {"name": "protopunk"}, {"name": "psychedelic rock"}, {"name": "psychedelic trance"}, {"name": "psychobilly"}, {"name": "punk"}, {"name": "punk blues"}, {"name": "qawwali"}, {"name": "quiet storm"}, {"name": "r&b"}, {"name": "ragtime"}, {"name": "rai"}, {"name": "ranchera"}, {"name": "rap"}, {"name": "rap metal"}, {"name": "rap rock"}, {"name": "reggae"}, {"name": "reggaeton"}, {"name": "renaissance"}, {"name": "rock"}, {"name": "rock 'n roll"}, {"name": "rock en espanol"}, {"name": "rock steady"}, {"name": "rockabilly"}, {"name": "romantic"}, {"name": "roots reggae"}, {"name": "roots rock"}, {"name": "rumba"}, {"name": "salsa"}, {"name": "samba"}, {"name": "screamo"}, {"name": "serialism"}, {"name": "sexy"}, {"name": "shibuya-kei"}, {"name": "shoegaze"}, {"name": "show tunes"}, {"name": "singer-songwriter"}, {"name": "ska"}, {"name": "ska punk"}, {"name": "skate punk"}, {"name": "skiffle"}, {"name": "slovenian rock"}, {"name": "slow core"}, {"name": "sludge metal"}, {"name": "smooth jazz"}, {"name": "soca"}, {"name": "soft rock"}, {"name": "soukous"}, {"name": "soul"}, {"name": "soul blues"}, {"name": "soul jazz"}, {"name": "soundtrack"}, {"name": "southern gospel"}, {"name": "southern hip hop"}, {"name": "southern rock"}, {"name": "southern soul"}, {"name": "space rock"}, {"name": "speed garage"}, {"name": "speed metal"}, {"name": "speedcore"}, {"name": "steampunk"}, {"name": "stoner metal"}, {"name": "stoner rock"}, {"name": "straight edge"}, {"name": "stride"}, {"name": "suomi rock"}, {"name": "surf music"}, {"name": "swamp blues"}, {"name": "swedish indie pop"}, {"name": "swing"}, {"name": "symphonic black metal"}, {"name": "symphonic metal"}, {"name": "symphonic rock"}, {"name": "synthpop"}, {"name": "tango"}, {"name": "tech house"}, {"name": "technical death metal"}, {"name": "techno"}, {"name": "teen pop"}, {"name": "tejano"}, {"name": "tekno"}, {"name": "texas blues"}, {"name": "texas country"}, {"name": "thai pop"}, {"name": "thrash core"}, {"name": "thrash metal"}, {"name": "traditional blues"}, {"name": "traditional country"}, {"name": "traditional folk"}, {"name": "trance"}, {"name": "trap music"}, {"name": "trapstep"}, {"name": "tribal house"}, {"name": "trip hop"}, {"name": "turbo folk"}, {"name": "turntablism"}, {"name": "twee pop"}, {"name": "uk garage"}, {"name": "uk post-punk"}, {"name": "underground hip hop"}, {"name": "uplifting trance"}, {"name": "urban contemporary"}, {"name": "vallenato"}, {"name": "video game music"}, {"name": "viking metal"}, {"name": "visual kei"}, {"name": "vocal house"}, {"name": "vocal jazz"}, {"name": "warm drone"}, {"name": "west coast rap"}, {"name": "western swing"}, {"name": "world"}, {"name": "worship"}, {"name": "zouk"}, {"name": "zydeco"}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "terms": [{"name": "00s"}, {"name": "18th century"}, {"name": "19th century"}, {"name": "20th century classical"}, {"name": "30s"}, {"name": "40s"}, {"name": "50s"}, {"name": "60s"}, {"name": "60s garage"}, {"name": "60s pop"}, {"name": "60s rock"}, {"name": "70s"}, {"name": "70s rock"}, {"name": "8-bit"}, {"name": "80s"}, {"name": "80s hair metal"}, {"name": "80s metal"}, {"name": "80s pop"}, {"name": "80s rock"}, {"name": "90s"}, {"name": "90s emo"}, {"name": "90s rock"}, {"name": "abstract hip hop"}, {"name": "acappella"}, {"name": "acid folk"}, {"name": "acid house"}, {"name": "acid jazz"}, {"name": "acid rock"}, {"name": "acid techno"}, {"name": "acoustic blues"}, {"name": "acoustic pop"}, {"name": "acoustic punk"}, {"name": "acoustic rock"}, {"name": "adult alternative"}, {"name": "adult contemporary"}, {"name": "african blues"}, {"name": "african folk"}, {"name": "african reggae"}, {"name": "afro-cuban jazz"}, {"name": "afrobeat"}, {"name": "afropop"}, {"name": "aggrotech"}, {"name": "album rock"}, {"name": "alternative"}, {"name": "alternative country"}, {"name": "alternative dance"}, {"name": "alternative folk"}, {"name": "alternative hip hop"}, {"name": "alternative metal"}, {"name": "alternative pop"}, {"name": "alternative pop rock"}, {"name": "alternative rap"}, {"name": "alternative rock"}, {"name": "ambient"}, {"name": "ambient black metal"}, {"name": "ambient breakbeat"}, {"name": "ambient dub"}, {"name": "ambient house"}, {"name": "ambient pop"}, {"name": "ambient rock"}, {"name": "ambient techno"}, {"name": "american black metal"}, {"name": "american blues"}, {"name": "american death metal"}, {"name": "american hard rock"}, {"name": "american hardcore"}, {"name": "american metal"}, {"name": "american psychobilly"}, {"name": "american punk"}, {"name": "american rock"}, {"name": "american ska"}, {"name": "american thrash metal"}, {"name": "americana"}, {"name": "anarcho-punk"}, {"name": "anatolian rock"}, {"name": "andean music"}, {"name": "angura kei"}, {"name": "anti-folk"}, {"name": "apocalyptic folk"}, {"name": "aquacrunk"}, {"name": "arabic music"}, {"name": "arabic pop"}, {"name": "arena rock"}, {"name": "argentine rock"}, {"name": "argentine tango"}, {"name": "argentinian rock"}, {"name": "art punk"}, {"name": "art rock"}, {"name": "austrian music"}, {"name": "austropop"}, {"name": "avant-garde"}, {"name": "avant-garde jazz"}, {"name": "avantgarde metal"}, {"name": "bachata"}, {"name": "baile funk"}, {"name": "balearic trance"}, {"name": "balkan beat"}, {"name": "balkan brass"}, {"name": "ballad"}, {"name": "banda"}, {"name": "baroque"}, {"name": "baroque music"}, {"name": "baroque pop"}, {"name": "basque rock"}, {"name": "bass music"}, {"name": "bastard pop"}, {"name": "battle metal"}, {"name": "bay area rap"}, {"name": "bay area thrash"}, {"name": "bay area thrash metal"}, {"name": "bebop"}, {"name": "belgian music"}, {"name": "belgian rock"}, {"name": "big band"}, {"name": "big beat"}, {"name": "birmingham techno"}, {"name": "black doom"}, {"name": "black gospel"}, {"name": "black metal"}, {"name": "blackened death metal"}, {"name": "blackened doom metal"}, {"name": "blackened thrash metal"}, {"name": "blue-eyed soul"}, {"name": "bluegrass"}, {"name": "blues"}, {"name": "blues guitar"}, {"name": "blues revival"}, {"name": "blues rock"}, {"name": "blues rock"}, {"name": "blues-rock"}, {"name": "bolero"}, {"name": "boogie rock"}, {"name": "boogie-woogie"}, {"name": "bop"}, {"name": "bossa nova"}, {"name": "boston hardcore"}, {"name": "boston punk"}, {"name": "bounce"}, {"name": "boy band"}, {"name": "brazilian christian"}, {"name": "brazilian country"}, {"name": "brazilian emo"}, {"name": "brazilian folk"}, {"name": "brazilian indie"}, {"name": "brazilian jazz"}, {"name": "brazilian metal"}, {"name": "brazilian music"}, {"name": "brazilian pop music"}, {"name": "brazilian power metal"}, {"name": "brazilian punk"}, {"name": "brazilian rap"}, {"name": "brazilian reggae"}, {"name": "brazilian rock"}, {"name": "brazilian thrash metal"}, {"name": "break"}, {"name": "breakbeat"}, {"name": "breakbeat hardcore"}, {"name": "breakcore"}, {"name": "brill building pop"}, {"name": "british blues"}, {"name": "british folk"}, {"name": "british folk rock"}, {"name": "british heavy metal"}, {"name": "british hip hop"}, {"name": "british invasion"}, {"name": "british metal"}, {"name": "british pop"}, {"name": "british psychedelia"}, {"name": "british punk rock"}, {"name": "british rap"}, {"name": "british rock"}, {"name": "british ska"}, {"name": "british trad rock"}, {"name": "britpop"}, {"name": "broken beat"}, {"name": "brutal death metal"}, {"name": "brutal deathcore"}, {"name": "brutal technical death metal"}, {"name": "brutal thrash metal"}, {"name": "bubblegum dance"}, {"name": "bubblegum pop"}, {"name": "bubblegum punk"}, {"name": "cabaret"}, {"name": "california hardcore"}, {"name": "calypso"}, {"name": "canadian country"}, {"name": "canadian folk"}, {"name": "canadian hip hop"}, {"name": "canadian indie"}, {"name": "canadian pop"}, {"name": "canadian rap"}, {"name": "canadian rock"}, {"name": "catalan music"}, {"name": "ccm"}, {"name": "cello rock"}, {"name": "celtic"}, {"name": "celtic folk"}, {"name": "celtic fusion"}, {"name": "celtic metal"}, {"name": "celtic music"}, {"name": "celtic new age"}, {"name": "celtic punk"}, {"name": "celtic rock"}, {"name": "chamber jazz"}, {"name": "chamber music"}, {"name": "chamber pop"}, {"name": "chanson"}, {"name": "chanson francaise"}, {"name": "chicago blues"}, {"name": "chicago house"}, {"name": "chicago punk"}, {"name": "chicago soul"}, {"name": "chicano rap"}, {"name": "children music"}, {"name": "chilean folk"}, {"name": "chilean pop"}, {"name": "chilean rock"}, {"name": "chimurenga"}, {"name": "chinese music"}, {"name": "chiptune"}, {"name": "choral music"}, {"name": "christian"}, {"name": "christian alternative rock"}, {"name": "christian black metal"}, {"name": "christian contemporary"}, {"name": "christian death metal"}, {"name": "christian hard rock"}, {"name": "christian hardcore"}, {"name": "christian heavy metal"}, {"name": "christian hip hop"}, {"name": "christian metal"}, {"name": "christian metalcore"}, {"name": "christian music"}, {"name": "christian pop"}, {"name": "christian pop punk"}, {"name": "christian punk"}, {"name": "christian rap"}, {"name": "christian rock"}, {"name": "classic blues"}, {"name": "classic country"}, {"name": "classic hip hop"}, {"name": "classic jazz"}, {"name": "classic metal"}, {"name": "classic motown"}, {"name": "classic punk"}, {"name": "classic r&b"}, {"name": "classic rock"}, {"name": "classic russian rock"}, {"name": "classic thrash"}, {"name": "classical"}, {"name": "classical pop"}, {"name": "club"}, {"name": "coldwave"}, {"name": "college rock"}, {"name": "comedy"}, {"name": "comedy rock"}, {"name": "conscious reggae"}, {"name": "contemporary bluegrass"}, {"name": "contemporary blues"}, {"name": "contemporary celtic"}, {"name": "contemporary christian"}, {"name": "contemporary classical music"}, {"name": "contemporary country"}, {"name": "contemporary flamenco"}, {"name": "contemporary folk"}, {"name": "contemporary gospel"}, {"name": "contemporary jazz"}, {"name": "contemporary r&b"}, {"name": "contemporary reggae"}, {"name": "contemporary worship"}, {"name": "continental jazz"}, {"name": "cool jazz"}, {"name": "cosmic american music"}, {"name": "cosmic disco"}, {"name": "country"}, {"name": "country blues"}, {"name": "country folk"}, {"name": "country gospel"}, {"name": "country music"}, {"name": "country pop"}, {"name": "country rock"}, {"name": "cowpunk"}, {"name": "crack rock"}, {"name": "croatian rock"}, {"name": "crossover classical"}, {"name": "crossover jazz"}, {"name": "crossover thrash"}, {"name": "crunk"}, {"name": "crunkcore"}, {"name": "crust"}, {"name": "crust punk"}, {"name": "crustcore"}, {"name": "cuban folk"}, {"name": "cuban jazz"}, {"name": "cumbia"}, {"name": "cyber metal"}, {"name": "cyberpunk"}, {"name": "czech pop"}, {"name": "czech rock"}, {"name": "dance"}, {"name": "dance music"}, {"name": "dance pop"}, {"name": "dance rock"}, {"name": "dance-punk"}, {"name": "dancehall"}, {"name": "dancehall reggae"}, {"name": "danish folk"}, {"name": "danish hip-hop"}, {"name": "danish metal"}, {"name": "danish music"}, {"name": "danish pop"}, {"name": "danish rap"}, {"name": "danish rock"}, {"name": "dark ambient"}, {"name": "dark cabaret"}, {"name": "dark electro"}, {"name": "dark folk"}, {"name": "dark metal"}, {"name": "dark psytrance"}, {"name": "dark rock"}, {"name": "dark wave"}, {"name": "darkcore"}, {"name": "darkstep"}, {"name": "dc hardcore"}, {"name": "death 'n' roll"}, {"name": "death black metal"}, {"name": "death core"}, {"name": "death metal"}, {"name": "death rap"}, {"name": "death/doom metal"}, {"name": "deathgrind"}, {"name": "deathrock"}, {"name": "deep funk"}, {"name": "deep funk revival"}, {"name": "deep house"}, {"name": "deep techno"}, {"name": "delta blues"}, {"name": "depressive black metal"}, {"name": "depressive rock"}, {"name": "depressive suicidal black metal"}, {"name": "desert blues"}, {"name": "desert rock"}, {"name": "detroit rap"}, {"name": "detroit rock"}, {"name": "detroit techno"}, {"name": "digital hardcore"}, {"name": "dirty disco"}, {"name": "dirty rap"}, {"name": "dirty south rap"}, {"name": "disco"}, {"name": "disco house"}, {"name": "dixieland"}, {"name": "doo-wop"}, {"name": "doom metal"}, {"name": "doom rock"}, {"name": "doomcore"}, {"name": "downbeat"}, {"name": "downtempo"}, {"name": "dream pop"}, {"name": "drill'n'bass"}, {"name": "drone"}, {"name": "drone doom metal"}, {"name": "drone metal"}, {"name": "drone rock"}, {"name": "drum and bass"}, {"name": "drumfunk"}, {"name": "dub"}, {"name": "dub reggae"}, {"name": "dub techno"}, {"name": "dubstep"}, {"name": "duranguense"}, {"name": "dutch death metal"}, {"name": "dutch hardcore"}, {"name": "dutch hip hop"}, {"name": "dutch rap"}, {"name": "east coast hip hop"}, {"name": "east coast rap"}, {"name": "easy listening"}, {"name": "ebm"}, {"name": "edm"}, {"name": "egyptian pop"}, {"name": "electric blues"}, {"name": "electric folk"}, {"name": "electro"}, {"name": "electro hip hop"}, {"name": "electro house"}, {"name": "electro rock"}, {"name": "electro trance"}, {"name": "electro-funk"}, {"name": "electro-industrial"}, {"name": "electro-jazz"}, {"name": "electroclash"}, {"name": "electrocore"}, {"name": "electronic"}, {"name": "electronica"}, {"name": "electropop"}, {"name": "emo"}, {"name": "emo pop"}, {"name": "emo punk"}, {"name": "emo violence"}, {"name": "emocore"}, {"name": "emotional electronic"}, {"name": "english folk"}, {"name": "epic black metal"}, {"name": "epic doom metal"}, {"name": "epic metal"}, {"name": "epic power metal"}, {"name": "epic trance"}, {"name": "ethnic fusion"}, {"name": "euro disco"}, {"name": "euro-house"}, {"name": "euro-trance"}, {"name": "eurobeat"}, {"name": "eurodance"}, {"name": "europop"}, {"name": "experimental"}, {"name": "experimental ambient"}, {"name": "experimental black metal"}, {"name": "experimental dub"}, {"name": "experimental electronic"}, {"name": "experimental hip hop"}, {"name": "experimental metal"}, {"name": "experimental pop"}, {"name": "experimental rap"}, {"name": "experimental rock"}, {"name": "experimental techno"}, {"name": "extreme doom"}, {"name": "extreme metal"}, {"name": "fado"}, {"name": "fantasy metal"}, {"name": "fastcore"}, {"name": "female fronted hardcore"}, {"name": "female fronted metal"}, {"name": "female rap"}, {"name": "female volcalists"}, {"name": "fidget house"}, {"name": "filipino rock"}, {"name": "finnish black metal"}, {"name": "finnish death metal"}, {"name": "finnish heavy metal"}, {"name": "finnish hip hop"}, {"name": "finnish indie"}, {"name": "finnish industrial metal"}, {"name": "finnish music"}, {"name": "finnish pop"}, {"name": "finnish rap"}, {"name": "finnish reggae"}, {"name": "finnish rock"}, {"name": "flamenco"}, {"name": "flamenco fusion"}, {"name": "flamenco pop"}, {"name": "flamenco rock"}, {"name": "florida death metal"}, {"name": "folk"}, {"name": "folk metal"}, {"name": "folk noir"}, {"name": "folk pop"}, {"name": "folk punk"}, {"name": "folk revival"}, {"name": "folk rock"}, {"name": "folk-pop"}, {"name": "folktronica"}, {"name": "frat rock"}, {"name": "freak folk"}, {"name": "freakbeat"}, {"name": "free jazz"}, {"name": "french baroque"}, {"name": "french black metal"}, {"name": "french death metal"}, {"name": "french electro"}, {"name": "french hardcore"}, {"name": "french hip hop"}, {"name": "french house"}, {"name": "french indie"}, {"name": "french metal"}, {"name": "french music"}, {"name": "french pop"}, {"name": "french rap"}, {"name": "french reggae"}, {"name": "french rock"}, {"name": "frenchcore"}, {"name": "funeral doom"}, {"name": "funeral doom metal"}, {"name": "funk"}, {"name": "funk jazz"}, {"name": "funk metal"}, {"name": "funk rock"}, {"name": "funky house"}, {"name": "fusion"}, {"name": "fusion jazz"}, {"name": "future fusion metal"}, {"name": "futurepop"}, {"name": "gabba"}, {"name": "gabber hardcore"}, {"name": "galician folk"}, {"name": "gamelan"}, {"name": "gangster rap"}, {"name": "garage blues"}, {"name": "garage house"}, {"name": "garage pop"}, {"name": "garage punk"}, {"name": "garage rock"}, {"name": "garage rock revival"}, {"name": "geek rock"}, {"name": "german black metal"}, {"name": "german dancehall"}, {"name": "german death metal"}, {"name": "german heavy metal"}, {"name": "german hip hop"}, {"name": "german indie"}, {"name": "german metal"}, {"name": "german metalcore"}, {"name": "german music"}, {"name": "german pop"}, {"name": "german progressive rock"}, {"name": "german punk"}, {"name": "german rap"}, {"name": "german rock"}, {"name": "german schlager"}, {"name": "german thrash"}, {"name": "german thrash metal"}, {"name": "ghetto tech"}, {"name": "glam metal"}, {"name": "glam punk"}, {"name": "glam rock"}, {"name": "glitch"}, {"name": "glitch hop"}, {"name": "glitterhouse"}, {"name": "goa trance"}, {"name": "gore metal"}, {"name": "goregrind"}, {"name": "gospel"}, {"name": "gospel blues"}, {"name": "gospel choir"}, {"name": "gospel soul"}, {"name": "gothabilly"}, {"name": "gothic"}, {"name": "gothic americana"}, {"name": "gothic country"}, {"name": "gothic doom"}, {"name": "gothic doom metal"}, {"name": "gothic metal"}, {"name": "gothic rock"}, {"name": "greek music"}, {"name": "greek pop"}, {"name": "grime"}, {"name": "grindcore"}, {"name": "groove metal"}, {"name": "grunge"}, {"name": "guitar rock"}, {"name": "gypsy jazz"}, {"name": "gypsy music"}, {"name": "gypsy punk"}, {"name": "hair metal"}, {"name": "happy hardcore"}, {"name": "hard bop"}, {"name": "hard dance"}, {"name": "hard house"}, {"name": "hard rock"}, {"name": "hard trance"}, {"name": "hardcore"}, {"name": "hardcore hip hop"}, {"name": "hardcore metal"}, {"name": "hardcore punk"}, {"name": "hardcore rap"}, {"name": "hardcore techno"}, {"name": "hardstep"}, {"name": "hardstyle"}, {"name": "hardtechno"}, {"name": "harmonica blues"}, {"name": "harsh ebm"}, {"name": "harsh electro"}, {"name": "heartland rock"}, {"name": "heavy blues"}, {"name": "heavy metal"}, {"name": "heavy rock"}, {"name": "hip hop"}, {"name": "hip hop soul"}, {"name": "hip house"}, {"name": "hipster rap"}, {"name": "honky tonk"}, {"name": "horror punk"}, {"name": "horror rock"}, {"name": "horrorcore"}, {"name": "horrorcore rap"}, {"name": "house"}, {"name": "house progressive"}, {"name": "houston rap"}, {"name": "hungarian metal"}, {"name": "hungarian rock"}, {"name": "hyperdub"}, {"name": "independent hip hop"}, {"name": "indian classical"}, {"name": "indian folk"}, {"name": "indian fusion"}, {"name": "indian music"}, {"name": "indian pop"}, {"name": "indian rock"}, {"name": "indie"}, {"name": "indie dance"}, {"name": "indie electro"}, {"name": "indie folk"}, {"name": "indie hip hop"}, {"name": "indie pop"}, {"name": "indie punk"}, {"name": "indie rap"}, {"name": "indie rock"}, {"name": "indietronica"}, {"name": "indonesian indie"}, {"name": "indonesian pop"}, {"name": "indonesian rock"}, {"name": "industrial"}, {"name": "industrial black metal"}, {"name": "industrial dance"}, {"name": "industrial metal"}, {"name": "industrial noise"}, {"name": "industrial rock"}, {"name": "instrumental"}, {"name": "instrumental hip hop"}, {"name": "instrumental metal"}, {"name": "instrumental pop"}, {"name": "instrumental progressive metal"}, {"name": "instrumental rock"}, {"name": "intelligent dance music"}, {"name": "iranian folk"}, {"name": "iranian pop"}, {"name": "irish folk"}, {"name": "irish indie"}, {"name": "irish punk"}, {"name": "irish rock"}, {"name": "irish trad folk"}, {"name": "island music"}, {"name": "italian alternative"}, {"name": "italian alternative rock"}, {"name": "italian dance"}, {"name": "italian disco"}, {"name": "italian folk"}, {"name": "italian hardstyle"}, {"name": "italian hip hop"}, {"name": "italian indie"}, {"name": "italian metal"}, {"name": "italian new wave"}, {"name": "italian opera"}, {"name": "italian pop"}, {"name": "italian punk"}, {"name": "italian rap"}, {"name": "italian reggae"}, {"name": "italian rock"}, {"name": "italian ska"}, {"name": "j pop"}, {"name": "j-pop"}, {"name": "j-rock"}, {"name": "jam band"}, {"name": "jamaican music"}, {"name": "jamaican ska"}, {"name": "jangle pop"}, {"name": "japanese alternative rock"}, {"name": "japanese electronic"}, {"name": "japanese folk"}, {"name": "japanese heavy metal"}, {"name": "japanese hip hop"}, {"name": "japanese indie"}, {"name": "japanese indie rock"}, {"name": "japanese metal"}, {"name": "japanese music"}, {"name": "jazz"}, {"name": "jazz blues"}, {"name": "jazz funk"}, {"name": "jazz fusion"}, {"name": "jazz hip hop"}, {"name": "jazz latino"}, {"name": "jazz piano"}, {"name": "jazz pop"}, {"name": "jazz rap"}, {"name": "jazz rock"}, {"name": "jazz vocal"}, {"name": "jazzcore"}, {"name": "jewish folk"}, {"name": "jrock"}, {"name": "judaica"}, {"name": "juke joint blues"}, {"name": "jump blues"}, {"name": "jungle music"}, {"name": "k-pop"}, {"name": "kayokyoku"}, {"name": "klezmer"}, {"name": "kompa"}, {"name": "korean hip-hop"}, {"name": "korean indie"}, {"name": "korean music"}, {"name": "korean pop"}, {"name": "kpop"}, {"name": "kraut rock"}, {"name": "kuduro"}, {"name": "kwaito"}, {"name": "late baroque"}, {"name": "latin"}, {"name": "latin alternative"}, {"name": "latin folk"}, {"name": "latin freestyle"}, {"name": "latin hip hop"}, {"name": "latin jazz"}, {"name": "latin music"}, {"name": "latin pop"}, {"name": "latin rap"}, {"name": "latin reggae"}, {"name": "latin rock"}, {"name": "latin ska"}, {"name": "latin soul"}, {"name": "leftfield"}, {"name": "liquid funk"}, {"name": "lo-fi"}, {"name": "louisiana blues"}, {"name": "lounge"}, {"name": "lounge music"}, {"name": "madchester"}, {"name": "mainstream jazz"}, {"name": "male vocalist"}, {"name": "mambo"}, {"name": "mariachi"}, {"name": "martial industrial"}, {"name": "mashcore"}, {"name": "math metal"}, {"name": "math rock"}, {"name": "math-core"}, {"name": "mediaeval"}, {"name": "medieval"}, {"name": "medieval folk"}, {"name": "medieval metal"}, {"name": "medieval rock"}, {"name": "melancholic black metal"}, {"name": "melodic black metal"}, {"name": "melodic death metal"}, {"name": "melodic deathcore"}, {"name": "melodic hard rock"}, {"name": "melodic hardcore"}, {"name": "melodic heavy metal"}, {"name": "melodic metalcore"}, {"name": "melodic power metal"}, {"name": "melodic punk"}, {"name": "melodic rock"}, {"name": "melodic speed metal"}, {"name": "melodic trance"}, {"name": "memphis blues"}, {"name": "memphis rap"}, {"name": "memphis soul"}, {"name": "merengue"}, {"name": "merseybeat"}, {"name": "metal"}, {"name": "metal argentino"}, {"name": "metalcore"}, {"name": "metalgaze"}, {"name": "mexican indie"}, {"name": "mexican music"}, {"name": "mexican pop"}, {"name": "mexican rap"}, {"name": "mexican rock"}, {"name": "mexican ska"}, {"name": "microhouse"}, {"name": "middle eastern pop"}, {"name": "midwest emo"}, {"name": "midwest rap"}, {"name": "minimal dub"}, {"name": "minimal house"}, {"name": "minimal techno"}, {"name": "minimal wave"}, {"name": "minimal"}, {"name": "mittelalter"}, {"name": "mittelalter rock"}, {"name": "mod revival"}, {"name": "modern blues"}, {"name": "modern classical"}, {"name": "modern country"}, {"name": "modern electric blues"}, {"name": "modern folk"}, {"name": "modern hardcore"}, {"name": "modern jazz"}, {"name": "modern melodic death metal"}, {"name": "modern metal"}, {"name": "modern rock"}, {"name": "modern thrash metal"}, {"name": "modern worship"}, {"name": "motown"}, {"name": "musica portuguesa"}, {"name": "musical"}, {"name": "musique concrete"}, {"name": "nagoya kei"}, {"name": "nashville sound"}, {"name": "national socialist black metal"}, {"name": "nederhop"}, {"name": "nederpop"}, {"name": "neo classical metal"}, {"name": "neo rockabilly"}, {"name": "neo soul"}, {"name": "neo-progressive"}, {"name": "neoclassical"}, {"name": "neofolk"}, {"name": "neometal"}, {"name": "neoswing"}, {"name": "neotrance"}, {"name": "nerdcore"}, {"name": "nerdcore hip hop"}, {"name": "nerdcore rap"}, {"name": "neue deutsche welle"}, {"name": "neurofunk"}, {"name": "new age"}, {"name": "new age music"}, {"name": "new beat"}, {"name": "new country"}, {"name": "new funk"}, {"name": "new jack swing"}, {"name": "new metal"}, {"name": "new orleans blues"}, {"name": "new orleans funk"}, {"name": "new orleans jazz"}, {"name": "new prog"}, {"name": "new rave"}, {"name": "new traditionalist country"}, {"name": "new wave"}, {"name": "new weird america"}, {"name": "new york death metal"}, {"name": "new york hardcore"}, {"name": "new york punk"}, {"name": "new york rap"}, {"name": "new york salsa"}, {"name": "new zealand music"}, {"name": "new zealand rock"}, {"name": "newgrass"}, {"name": "ninja tune"}, {"name": "nintendocore"}, {"name": "no wave"}, {"name": "noise"}, {"name": "noise grind"}, {"name": "noise pop"}, {"name": "noise punk"}, {"name": "noise rock"}, {"name": "nordic folk"}, {"name": "norteno"}, {"name": "northern soul"}, {"name": "norwegian black metal"}, {"name": "norwegian hip-hop"}, {"name": "norwegian metal"}, {"name": "norwegian rap"}, {"name": "norwegian rock"}, {"name": "nu breaks"}, {"name": "nu disco"}, {"name": "nu jazz"}, {"name": "nu metal"}, {"name": "nu skool breaks"}, {"name": "nu-soul"}, {"name": "nueva cancion"}, {"name": "nueva cancion chilena"}, {"name": "nwobhm"}, {"name": "oi"}, {"name": "old school"}, {"name": "old school black metal"}, {"name": "old school death metal"}, {"name": "old school hardcore"}, {"name": "old school hip hop"}, {"name": "old school metal"}, {"name": "old school punk"}, {"name": "old school rap"}, {"name": "old school soul"}, {"name": "opera"}, {"name": "operatic pop"}, {"name": "orchestral pop"}, {"name": "oriental metal"}, {"name": "orthodox black metal"}, {"name": "oshare kei"}, {"name": "outlaw country"}, {"name": "pagan folk"}, {"name": "pagan folk metal"}, {"name": "pagan metal"}, {"name": "pagan rock"}, {"name": "pakistani pop"}, {"name": "pakistani rock"}, {"name": "party rap"}, {"name": "peace punk"}, {"name": "persian pop"}, {"name": "philly soul"}, {"name": "piano blues"}, {"name": "piano jazz"}, {"name": "piano rock"}, {"name": "piedmont blues"}, {"name": "pinoy rock"}, {"name": "pirate metal"}, {"name": "polish alternative"}, {"name": "polish alternative rock"}, {"name": "polish black metal"}, {"name": "polish death metal"}, {"name": "polish hip hop"}, {"name": "polish jazz"}, {"name": "polish metal"}, {"name": "polish music"}, {"name": "polish pop"}, {"name": "polish punk"}, {"name": "polish rap"}, {"name": "polish reggae"}, {"name": "polish rock"}, {"name": "polish thrash metal"}, {"name": "political folk"}, {"name": "political punk"}, {"name": "political rap"}, {"name": "polka"}, {"name": "pop"}, {"name": "pop country"}, {"name": "pop espanol"}, {"name": "pop folk"}, {"name": "pop hardcore"}, {"name": "pop latino"}, {"name": "pop metal"}, {"name": "pop opera"}, {"name": "pop punk"}, {"name": "pop rap"}, {"name": "pop rock"}, {"name": "pop underground"}, {"name": "pornogrind"}, {"name": "portuguese hip hop"}, {"name": "portuguese music"}, {"name": "posi hardcore"}, {"name": "posicore"}, {"name": "post rock"}, {"name": "post-black metal"}, {"name": "post-bop"}, {"name": "post-grunge"}, {"name": "post-hardcore"}, {"name": "post-industrial"}, {"name": "post-punk"}, {"name": "post-rock"}, {"name": "postcore"}, {"name": "power metal"}, {"name": "power noise"}, {"name": "power pop"}, {"name": "praise & worship"}, {"name": "prog folk"}, {"name": "progressive black metal"}, {"name": "progressive bluegrass"}, {"name": "progressive country"}, {"name": "progressive death metal"}, {"name": "progressive deathcore"}, {"name": "progressive electronic"}, {"name": "progressive hardcore"}, {"name": "progressive house"}, {"name": "progressive jazz"}, {"name": "progressive metal"}, {"name": "progressive metalcore"}, {"name": "progressive power metal"}, {"name": "progressive psychedelic trance"}, {"name": "progressive rock"}, {"name": "progressive thrash metal"}, {"name": "progressive trance"}, {"name": "protest folk"}, {"name": "protopunk"}, {"name": "psychedelia"}, {"name": "psychedelic"}, {"name": "psychedelic ambient"}, {"name": "psychedelic chill"}, {"name": "psychedelic downtempo"}, {"name": "psychedelic dub"}, {"name": "psychedelic folk"}, {"name": "psychedelic pop"}, {"name": "psychedelic rock"}, {"name": "psychedelic soul"}, {"name": "psychedelic stoner rock"}, {"name": "psychedelic trance"}, {"name": "psycho rap"}, {"name": "psychobilly"}, {"name": "pub rock"}, {"name": "punk"}, {"name": "punk blues"}, {"name": "punk cabaret"}, {"name": "punk folk"}, {"name": "punk hardcore"}, {"name": "punk jazz"}, {"name": "punk metal"}, {"name": "punk pop"}, {"name": "punk revival"}, {"name": "punk ska"}, {"name": "pure black metal"}, {"name": "queercore"}, {"name": "r&b"}, {"name": "ragga"}, {"name": "ragga jungle"}, {"name": "raggacore"}, {"name": "ragtime"}, {"name": "ranchera"}, {"name": "rap"}, {"name": "rap francais"}, {"name": "rap metal"}, {"name": "rap rock"}, {"name": "rap underground"}, {"name": "rapcore"}, {"name": "raw black metal"}, {"name": "reggae"}, {"name": "reggae dancehall"}, {"name": "reggae dub"}, {"name": "reggae punk"}, {"name": "reggae rock"}, {"name": "reggae roots"}, {"name": "reggaeton"}, {"name": "religious music"}, {"name": "remix"}, {"name": "renaissance"}, {"name": "retro prog"}, {"name": "retro swing"}, {"name": "retro thrash"}, {"name": "revival rockabilly"}, {"name": "riot grrrl"}, {"name": "rock"}, {"name": "rock 'n roll"}, {"name": "rock andaluz"}, {"name": "rock argentina"}, {"name": "rock chileno"}, {"name": "rock en espanol"}, {"name": "rock francais"}, {"name": "rock gaucho"}, {"name": "rock italiano"}, {"name": "rock mexicano"}, {"name": "rock radical vasco"}, {"name": "rock steady"}, {"name": "rockabilly"}, {"name": "romanian hip hop"}, {"name": "romanian music"}, {"name": "romanian pop"}, {"name": "romantic"}, {"name": "roots"}, {"name": "roots reggae"}, {"name": "roots rock"}, {"name": "roots rock reggae"}, {"name": "rumba"}, {"name": "russian alternative"}, {"name": "russian chanson"}, {"name": "russian folk"}, {"name": "russian hip hop"}, {"name": "russian metal"}, {"name": "russian music"}, {"name": "russian pop"}, {"name": "russian punk"}, {"name": "russian rock"}, {"name": "russian trance"}, {"name": "sadcore"}, {"name": "salsa"}, {"name": "salsa romantica"}, {"name": "samba"}, {"name": "samba rock"}, {"name": "satanic black metal"}, {"name": "scandinavian folk"}, {"name": "scandinavian metal"}, {"name": "scottish folk"}, {"name": "scratch"}, {"name": "screamo"}, {"name": "sea shanties"}, {"name": "serbian alternative"}, {"name": "serbian rock"}, {"name": "shibuya-kei"}, {"name": "shock rock"}, {"name": "shoegaze"}, {"name": "singer-songwriter"}, {"name": "ska"}, {"name": "ska jazz"}, {"name": "ska punk"}, {"name": "ska revival"}, {"name": "ska rocksteady"}, {"name": "skacore"}, {"name": "skate punk"}, {"name": "skiffle"}, {"name": "slam death metal"}, {"name": "slavonic pagan metal"}, {"name": "sleaze rock"}, {"name": "slide guitar blues"}, {"name": "slovak punk"}, {"name": "slovenian rock"}, {"name": "slow core"}, {"name": "sludge"}, {"name": "sludge doom"}, {"name": "sludge metal"}, {"name": "smooth jazz"}, {"name": "smooth soul"}, {"name": "soca"}, {"name": "soft rock"}, {"name": "son cubano"}, {"name": "soukous"}, {"name": "soul"}, {"name": "soul blues"}, {"name": "soul jazz"}, {"name": "soul music"}, {"name": "soulful house"}, {"name": "soundtrack"}, {"name": "south african music"}, {"name": "southern gospel"}, {"name": "southern gothic"}, {"name": "southern hip hop"}, {"name": "southern metal"}, {"name": "southern rap"}, {"name": "southern rock"}, {"name": "southern soul"}, {"name": "space disco"}, {"name": "space music"}, {"name": "space rock"}, {"name": "spanish alternative"}, {"name": "spanish folk"}, {"name": "spanish hard rock"}, {"name": "spanish indie"}, {"name": "spanish indie pop"}, {"name": "spanish indie rock"}, {"name": "spanish metal"}, {"name": "spanish music"}, {"name": "spanish pop"}, {"name": "spanish pop rock"}, {"name": "spanish power metal"}, {"name": "spanish punk"}, {"name": "spanish rap"}, {"name": "spanish rock"}, {"name": "spanish ska"}, {"name": "spanish thrash metal"}, {"name": "speed garage"}, {"name": "speed metal"}, {"name": "spiritual"}, {"name": "stand-up comedy"}, {"name": "stoner doom metal"}, {"name": "stoner metal"}, {"name": "stoner rock"}, {"name": "stoner sludge"}, {"name": "straight edge hardcore"}, {"name": "street punk"}, {"name": "string band"}, {"name": "style"}, {"name": "suicidal black metal"}, {"name": "sunshine pop"}, {"name": "surf"}, {"name": "surf music"}, {"name": "surf revival"}, {"name": "swamp blues"}, {"name": "swamp rock"}, {"name": "swedish black metal"}, {"name": "swedish death metal"}, {"name": "swedish folkmusic"}, {"name": "swedish hardcore"}, {"name": "swedish hip hop"}, {"name": "swedish house"}, {"name": "swedish indie"}, {"name": "swedish melodic death metal"}, {"name": "swedish metal"}, {"name": "swedish music"}, {"name": "swedish pop"}, {"name": "swedish prog"}, {"name": "swedish progressive"}, {"name": "swedish progressive rock"}, {"name": "swedish punk"}, {"name": "swedish rap"}, {"name": "swedish rock"}, {"name": "swing"}, {"name": "swing revival"}, {"name": "swiss black metal"}, {"name": "swiss pop"}, {"name": "sympho black metal"}, {"name": "symphonic"}, {"name": "symphonic death metal"}, {"name": "symphonic gothic metal"}, {"name": "symphonic metal"}, {"name": "symphonic power metal"}, {"name": "symphonic prog"}, {"name": "symphonic rock"}, {"name": "symphony"}, {"name": "synth punk"}, {"name": "synth rock"}, {"name": "synthpop"}, {"name": "tango"}, {"name": "tango fusion"}, {"name": "tech house"}, {"name": "tech metal"}, {"name": "tech trance"}, {"name": "technical brutal death metal"}, {"name": "technical death metal"}, {"name": "technical thrash"}, {"name": "technical thrash metal"}, {"name": "techno"}, {"name": "techno hardcore"}, {"name": "techno industrial"}, {"name": "technopop"}, {"name": "techstep"}, {"name": "teen pop"}, {"name": "tejano"}, {"name": "terror ebm"}, {"name": "texas blues"}, {"name": "texas country"}, {"name": "texas music"}, {"name": "texas rap"}, {"name": "thai pop"}, {"name": "thai rock"}, {"name": "third wave ska"}, {"name": "third wave ska revival"}, {"name": "thrash core"}, {"name": "thrash metal"}, {"name": "thrash revival"}, {"name": "thrash-death metal"}, {"name": "traditional bluegrass"}, {"name": "traditional blues"}, {"name": "traditional country"}, {"name": "traditional doom"}, {"name": "traditional doom metal"}, {"name": "traditional folk"}, {"name": "traditional gospel"}, {"name": "traditional heavy metal"}, {"name": "traditional japanese music"}, {"name": "traditional jazz"}, {"name": "traditional metal"}, {"name": "traditional pop"}, {"name": "traditional ska"}, {"name": "trance"}, {"name": "trance music"}, {"name": "trancecore"}, {"name": "trancestep"}, {"name": "trash metal"}, {"name": "trip hop"}, {"name": "trip rock"}, {"name": "trova"}, {"name": "true black metal"}, {"name": "true doom metal"}, {"name": "true metal"}, {"name": "turkish folk"}, {"name": "turkish jazz"}, {"name": "turkish music"}, {"name": "turkish pop"}, {"name": "turkish rock"}, {"name": "turntablism"}, {"name": "twee pop"}, {"name": "two-step"}, {"name": "uk garage"}, {"name": "uk grime"}, {"name": "uk hardcore"}, {"name": "uk hip hop"}, {"name": "uk punk"}, {"name": "uk rap"}, {"name": "ukrainian black metal"}, {"name": "ukrainian rock"}, {"name": "underground black metal"}, {"name": "underground hip hop"}, {"name": "underground rap"}, {"name": "uplifting trance"}, {"name": "urban contemporary gospel"}, {"name": "urban folk"}, {"name": "urban gospel"}, {"name": "urban jazz"}, {"name": "uruguayan rock"}, {"name": "us metal"}, {"name": "us punk"}, {"name": "viking metal"}, {"name": "visual kei"}, {"name": "vocal house"}, {"name": "vocal jazz"}, {"name": "vocal pop"}, {"name": "vocal trance"}, {"name": "west coast hip hop"}, {"name": "west coast jazz"}, {"name": "west coast rap"}, {"name": "western swing"}, {"name": "world"}, {"name": "world beat"}, {"name": "world fusion"}, {"name": "world music"}, {"name": "worship music"}, {"name": "zouk"}, {"name": "zydeco"}], "type": "style"}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"}, "start": 0, "total": 3945, "news": [{"url": "http://www.nme.com/news/thom-yorke/70123", "id": "29c1699c8464426781f3e012d29fc1f6", "date_found": "2013-05-05T00:00:00", "name": "Thom Yorke performs 'Karma Police' on 'The Jonathan Ross Show'", "summary": "Thom Yorke performed <span>Radiohead</span>'s 'Karma Police' on The Jonathan Ross Show, which was broadcast last night (May 4). Yorke played a shortened version of the track on the piano and he closed the show by playing his Atoms For Peace track 'Ingenue'. You can watch footage of the singer playing both songs below. Last month, Yorke joked that if anyone called Atoms For Peace a supergroup to his face, he'll \"fucking knock their teeth out\". The band, which also features Flea from Red Hot Chili Peppers on bass, percussionist Mauro Refosco and drummer Joey Waronker, released their debut LP 'Amok' earlier this"}]}}
|