rapgenius 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -2
- data/README.md +1 -1
- data/lib/rapgenius/artist.rb +4 -6
- data/lib/rapgenius/client.rb +7 -21
- data/lib/rapgenius/line.rb +3 -4
- data/lib/rapgenius/song.rb +2 -4
- data/lib/rapgenius/version.rb +1 -1
- data/rapgenius.gemspec +2 -2
- data/spec/rapgenius/artist_spec.rb +6 -6
- data/spec/rapgenius/client_spec.rb +2 -1
- data/spec/rapgenius/song_spec.rb +9 -9
- data/spec/support/cassettes/artist-130.yml +181 -181
- data/spec/support/cassettes/line-2638695.yml +251 -136
- data/spec/support/cassettes/song-176872.yml +237 -129
- metadata +3 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dc98c505e166b321df324c14c7a90d443070452
|
4
|
+
data.tar.gz: 281d8fa2c6c642a0b02cac49f4c296f95d912966
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ee1fcfd58f2c942912be1100dc9794f08c32fd82874f075cacdc26911802b54acbc144dae269d9391d5bf2f35c975d63ddca80f377f8ad0bf8ed00b4069000a
|
7
|
+
data.tar.gz: 208a5872b109172add3473b3832bc4759a6264c9add291d3e170d7d80b7b0c856b21bea193c57bcba5cba273b9ef8a99b9cf6dcb745c54100ff68a57a73f4994
|
data/CHANGELOG.md
CHANGED
@@ -35,5 +35,8 @@ return a 404
|
|
35
35
|
|
36
36
|
__v1.0.4__ (8th November 2014)
|
37
37
|
|
38
|
-
* Fix annotations, so they're combined into a string with a space between each
|
39
|
-
|
38
|
+
* Fix annotations, so they're combined into a string with a space between each one
|
39
|
+
|
40
|
+
__v1.0.5__ (12th January 2015)
|
41
|
+
|
42
|
+
* Load descriptions as plain text, reducing code for parsing them
|
data/README.md
CHANGED
data/lib/rapgenius/artist.rb
CHANGED
@@ -31,17 +31,15 @@ module RapGenius
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def description
|
34
|
-
@description ||= response["description"]["
|
35
|
-
parse_description(node)
|
36
|
-
end.flatten.join("")
|
34
|
+
@description ||= response["description"]["plain"]
|
37
35
|
end
|
38
36
|
|
39
|
-
# You seem to be able to load
|
37
|
+
# You seem to be able to load 20 songs at a time for an artist. I haven't
|
40
38
|
# found a way to vary the number you get back from the query, but you can
|
41
|
-
# paginate through in blocks of
|
39
|
+
# paginate through in blocks of 20 songs.
|
42
40
|
def songs(options = {page: 1})
|
43
41
|
songs_url = "/artists/#{@id}/songs/?page=#{options[:page]}"
|
44
|
-
|
42
|
+
|
45
43
|
fetch(songs_url)["response"]["songs"].map do |song|
|
46
44
|
Song.new(
|
47
45
|
artist: Artist.new(
|
data/lib/rapgenius/client.rb
CHANGED
@@ -2,11 +2,6 @@ require 'httparty'
|
|
2
2
|
|
3
3
|
module RapGenius
|
4
4
|
module Client
|
5
|
-
# HTTParty client
|
6
|
-
#
|
7
|
-
# Sets some useful defaults for all of our requests.
|
8
|
-
#
|
9
|
-
# See Scraper#fetch
|
10
5
|
class HTTPClient
|
11
6
|
include HTTParty
|
12
7
|
|
@@ -16,6 +11,10 @@ module RapGenius
|
|
16
11
|
end
|
17
12
|
|
18
13
|
BASE_URL = HTTPClient.base_uri + "/".freeze
|
14
|
+
PLAIN_TEXT_FORMAT = "plain".freeze
|
15
|
+
DOM_TEXT_FORMAT = "dom".freeze
|
16
|
+
|
17
|
+
attr_reader :text_format
|
19
18
|
|
20
19
|
def url=(url)
|
21
20
|
unless url =~ /^https?:\/\//
|
@@ -30,7 +29,9 @@ module RapGenius
|
|
30
29
|
end
|
31
30
|
|
32
31
|
def fetch(url)
|
33
|
-
response = HTTPClient.get(url
|
32
|
+
response = HTTPClient.get(url, query: {
|
33
|
+
text_format: "#{DOM_TEXT_FORMAT},#{PLAIN_TEXT_FORMAT}"
|
34
|
+
})
|
34
35
|
|
35
36
|
if response.code != 200
|
36
37
|
if response.code == 404
|
@@ -42,20 +43,5 @@ module RapGenius
|
|
42
43
|
|
43
44
|
response.parsed_response
|
44
45
|
end
|
45
|
-
|
46
|
-
# Descriptions are formatted in an irritating way, encapsulating the
|
47
|
-
# various kinds of HTML tag that can be included. This parses that
|
48
|
-
# into text, but some content may be lost.
|
49
|
-
def parse_description(node)
|
50
|
-
if node.is_a? String
|
51
|
-
node
|
52
|
-
elsif node.is_a? Array
|
53
|
-
node.map { |subnode| parse_description(subnode) }
|
54
|
-
elsif node.is_a? Hash
|
55
|
-
return unless node.key? "children"
|
56
|
-
parse_description(node["children"])
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
46
|
end
|
61
47
|
end
|
data/lib/rapgenius/line.rb
CHANGED
@@ -39,11 +39,10 @@ module RapGenius
|
|
39
39
|
# Annotation class, but I don't have time for now.
|
40
40
|
def explanations
|
41
41
|
return nil unless @id
|
42
|
+
|
42
43
|
@explanation ||= response["annotations"].map do |annotation|
|
43
|
-
annotation["body"]["
|
44
|
-
|
45
|
-
end.join(" ")
|
46
|
-
end.flatten
|
44
|
+
annotation["body"]["plain"]
|
45
|
+
end
|
47
46
|
end
|
48
47
|
|
49
48
|
alias_method :annotations, :explanations
|
data/lib/rapgenius/song.rb
CHANGED
@@ -60,9 +60,7 @@ module RapGenius
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def description
|
63
|
-
@description ||= document["response"]["song"]["description"]["
|
64
|
-
parse_description(node)
|
65
|
-
end.flatten.join("")
|
63
|
+
@description ||= document["response"]["song"]["description"]["plain"]
|
66
64
|
end
|
67
65
|
|
68
66
|
def images
|
@@ -95,7 +93,7 @@ module RapGenius
|
|
95
93
|
end
|
96
94
|
|
97
95
|
def media
|
98
|
-
response["media"].map do |m|
|
96
|
+
response["media"].map do |m|
|
99
97
|
Media.new(type: m["type"], provider: m["provider"], url: m["url"])
|
100
98
|
end
|
101
99
|
end
|
data/lib/rapgenius/version.rb
CHANGED
data/rapgenius.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "rapgenius"
|
7
7
|
s.version = RapGenius::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Tim Rogers"
|
10
|
-
s.email = ["me@timrogers.co.uk"
|
9
|
+
s.authors = ["Tim Rogers"]
|
10
|
+
s.email = ["me@timrogers.co.uk"]
|
11
11
|
s.homepage = "https://github.com/timrogers/rapgenius"
|
12
12
|
s.summary = %q{A gem for accessing lyrics and explanations on RapGenius.com}
|
13
13
|
s.description = %q{Up until until now, to quote RapGenius themselves,
|
@@ -5,24 +5,24 @@ module RapGenius
|
|
5
5
|
context "given Drake", vcr: { cassette_name: "artist-130" } do
|
6
6
|
subject(:artist) { described_class.find(130) }
|
7
7
|
|
8
|
-
its(:url) { should eq "http://
|
8
|
+
its(:url) { should eq "http://genius.com/artists/Drake" }
|
9
9
|
its(:name) { should eq "Drake" }
|
10
|
-
its(:image) { should eq "http://images.rapgenius.com/
|
10
|
+
its(:image) { should eq "http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif" }
|
11
11
|
its(:description) { should include "Drake is part of a generation of new rappers" }
|
12
12
|
|
13
13
|
context "#songs" do
|
14
14
|
subject { artist.songs }
|
15
15
|
|
16
|
-
its(:count) { should eq
|
16
|
+
its(:count) { should eq 20 }
|
17
17
|
its(:last) { should be_a Song }
|
18
|
-
its("last.title") { should eq "
|
18
|
+
its("last.title") { should eq "Amen" }
|
19
19
|
|
20
20
|
context "pagination" do
|
21
21
|
subject { artist.songs(page: 3) }
|
22
22
|
|
23
23
|
its(:last) { should be_a Song }
|
24
|
-
its(:count) { should eq
|
25
|
-
its("last.title") { should eq "
|
24
|
+
its(:count) { should eq 20 }
|
25
|
+
its("last.title") { should eq "Champion" }
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -30,7 +30,8 @@ module RapGenius
|
|
30
30
|
|
31
31
|
context "with a failed request" do
|
32
32
|
before do
|
33
|
-
stub_request(:get, "http://foo.bar").
|
33
|
+
stub_request(:get, "http://foo.bar").with(query: { text_format: "dom,plain" }).
|
34
|
+
to_return({body: '', status: 404})
|
34
35
|
end
|
35
36
|
|
36
37
|
it "raises a ScraperError" do
|
data/spec/rapgenius/song_spec.rb
CHANGED
@@ -5,10 +5,10 @@ module RapGenius
|
|
5
5
|
context "given Migos's Versace", vcr: { cassette_name: "song-176872" } do
|
6
6
|
subject(:song) { described_class.find(176872) }
|
7
7
|
|
8
|
-
its(:url) { should eq "http://
|
8
|
+
its(:url) { should eq "http://genius.com/Migos-versace-lyrics" }
|
9
9
|
its(:title) { should eq "Versace" }
|
10
|
-
|
11
|
-
its(:description) { should include "
|
10
|
+
|
11
|
+
its(:description) { should include "the song blew up" }
|
12
12
|
|
13
13
|
context "#artist" do
|
14
14
|
subject { song.artist }
|
@@ -32,7 +32,7 @@ module RapGenius
|
|
32
32
|
|
33
33
|
context "#media" do
|
34
34
|
subject { song.media }
|
35
|
-
its(:length) { should eq
|
35
|
+
its(:length) { should eq 2 }
|
36
36
|
its(:first) { should be_a Media }
|
37
37
|
its("first.provider") { should eq "soundcloud" }
|
38
38
|
end
|
@@ -46,12 +46,12 @@ module RapGenius
|
|
46
46
|
its("first.explanations.first") { should include "Versace used his verse in this runway show" }
|
47
47
|
end
|
48
48
|
|
49
|
-
its(:images) { should include "http://
|
50
|
-
its(:pyongs) { should eq
|
49
|
+
its(:images) { should include "http://s3.amazonaws.com/rapgenius/Zaytoven_1-7-2011.jpg" }
|
50
|
+
its(:pyongs) { should eq 166 }
|
51
51
|
its(:hot?) { should eq false }
|
52
|
-
its(:views) { should eq
|
53
|
-
its(:concurrent_viewers) { should
|
54
|
-
|
52
|
+
its(:views) { should eq 2159953 }
|
53
|
+
its(:concurrent_viewers) { should be_nil }
|
54
|
+
|
55
55
|
|
56
56
|
context "a non-existent song ID" do
|
57
57
|
subject(:song) { described_class.find("bahahaha") }
|
@@ -2,267 +2,267 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://api.rapgenius.com/artists/130
|
5
|
+
uri: https://api.rapgenius.com/artists/130?text_format=dom,plain
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- rapgenius.rb v1.0.
|
11
|
+
- rapgenius.rb v1.0.4
|
12
12
|
response:
|
13
13
|
status:
|
14
14
|
code: 200
|
15
15
|
message: OK
|
16
16
|
headers:
|
17
|
-
|
18
|
-
-
|
17
|
+
Connection:
|
18
|
+
- keep-alive
|
19
|
+
Server:
|
20
|
+
- nginx
|
21
|
+
Date:
|
22
|
+
- Mon, 12 Jan 2015 21:09:43 GMT
|
19
23
|
Content-Type:
|
20
24
|
- application/json; charset=utf-8
|
21
|
-
|
22
|
-
-
|
23
|
-
Etag:
|
24
|
-
- '"d41131ec03f64d6149aac44dfb2760e9"'
|
25
|
-
Server:
|
26
|
-
- nginx/1.4.1
|
25
|
+
Content-Length:
|
26
|
+
- '4137'
|
27
27
|
Status:
|
28
28
|
- 200 OK
|
29
|
-
|
30
|
-
-
|
31
|
-
Content-Length:
|
32
|
-
- '9073'
|
33
|
-
Connection:
|
34
|
-
- keep-alive
|
35
|
-
body:
|
36
|
-
encoding: UTF-8
|
37
|
-
string: '{"response":{"songs":[{"updated_by_human_at":1379540523,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"2011
|
38
|
-
Juno Awards In Toronto","stats":{"hot":false,"pageviews":1522},"annotation_count":3,"verified_annotation_count":0,"id":214614},{"updated_by_human_at":1390693486,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":44,"title":"All
|
39
|
-
Me","stats":{"concurrents":17,"hot":false,"pageviews":2201501},"annotation_count":87,"verified_annotation_count":2,"id":196551},{"updated_by_human_at":1388340209,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":3,"title":"Trust
|
40
|
-
Issues","stats":{"concurrents":4,"hot":false,"pageviews":241283},"annotation_count":34,"verified_annotation_count":0,"id":51360},{"updated_by_human_at":1385440338,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":3,"title":"Fireworks","stats":{"hot":false,"pageviews":150860},"annotation_count":46,"verified_annotation_count":0,"id":581},{"updated_by_human_at":1390541756,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":2,"title":"Over","stats":{"concurrents":3,"hot":false,"pageviews":238363},"annotation_count":36,"verified_annotation_count":0,"id":322},{"updated_by_human_at":1365880220,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Make
|
41
|
-
Things Right","stats":{"hot":false,"pageviews":5316},"annotation_count":19,"verified_annotation_count":0,"id":18066},{"updated_by_human_at":1387865621,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Come
|
42
|
-
Winter","stats":{"hot":false,"pageviews":24311},"annotation_count":53,"verified_annotation_count":0,"id":3100},{"updated_by_human_at":1365880200,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Thrill
|
43
|
-
Is Gone","stats":{"hot":false,"pageviews":6631},"annotation_count":40,"verified_annotation_count":0,"id":5168},{"updated_by_human_at":1389646403,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Try
|
44
|
-
Harder","stats":{"hot":false,"pageviews":5467},"annotation_count":20,"verified_annotation_count":0,"id":5166},{"updated_by_human_at":1378658552,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Mardi
|
45
|
-
Gras","stats":{"hot":false,"pageviews":7993},"annotation_count":14,"verified_annotation_count":0,"id":51146},{"updated_by_human_at":1390142872,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":10,"title":"The
|
46
|
-
Real Her","stats":{"concurrents":4,"hot":false,"pageviews":771087},"annotation_count":33,"verified_annotation_count":0,"id":55599},{"updated_by_human_at":1373263543,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Closer","stats":{"hot":false,"pageviews":43059},"annotation_count":62,"verified_annotation_count":0,"id":2387},{"updated_by_human_at":1365881919,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"The
|
47
|
-
Last Hope","stats":{"hot":false,"pageviews":8782},"annotation_count":33,"verified_annotation_count":0,"id":2517},{"updated_by_human_at":1381595863,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":2,"title":"Apology
|
48
|
-
for Autism Line","stats":{"hot":false,"pageviews":2416},"annotation_count":5,"verified_annotation_count":0,"id":193900},{"updated_by_human_at":1390492881,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"ATF
|
49
|
-
Radio freestyle","stats":{"hot":false,"pageviews":1153},"annotation_count":4,"verified_annotation_count":0,"id":68366},{"updated_by_human_at":1319586959,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Baby
|
50
|
-
Come With Me","stats":{"hot":false,"pageviews":10307},"annotation_count":9,"verified_annotation_count":0,"id":49098},{"updated_by_human_at":1362028629,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":2,"title":"Bag
|
51
|
-
Jackin Bitches","stats":{"hot":false,"pageviews":8207},"annotation_count":13,"verified_annotation_count":0,"id":57290},{"updated_by_human_at":1390366196,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":22,"title":"Bar
|
52
|
-
Mitzvah in 1999","stats":{"hot":false,"pageviews":6831},"annotation_count":15,"verified_annotation_count":0,"id":343015},{"updated_by_human_at":1389120705,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":1,"title":"Beautiful
|
53
|
-
Music","stats":{"hot":false,"pageviews":9734},"annotation_count":46,"verified_annotation_count":0,"id":1182},{"updated_by_human_at":1367805550,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Best
|
54
|
-
Friend","stats":{"hot":false,"pageviews":60273},"annotation_count":21,"verified_annotation_count":0,"id":65768},{"updated_by_human_at":1390470282,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":10,"title":"All
|
55
|
-
Of The Lights (Remix)","stats":{"hot":false,"pageviews":105441},"annotation_count":63,"verified_annotation_count":0,"id":5437},{"updated_by_human_at":1385869096,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":4,"title":"We''ll
|
56
|
-
Be Fine","stats":{"hot":false,"pageviews":495839},"annotation_count":26,"verified_annotation_count":0,"id":58341},{"updated_by_human_at":1355518523,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"We''ll
|
57
|
-
be Fine (French Version)","stats":{"hot":false,"pageviews":1838},"annotation_count":15,"verified_annotation_count":0,"id":87595},{"updated_by_human_at":1389119873,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Good
|
58
|
-
Riddance (Aristo Diss)","stats":{"hot":false,"pageviews":14695},"annotation_count":30,"verified_annotation_count":0,"id":51974},{"updated_by_human_at":1372025575,"primary_artist":{"image_url":"http://images.rapgenius.com/2b3fa8326a5277fa31f2012a7b581e2e.500x319x11.gif","url":"http://rapgenius.com/artists/Drake","name":"Drake","id":130},"pyongs_count":null,"title":"Bitch
|
59
|
-
Is Crazy","stats":{"hot":false,"pageviews":12069},"annotation_count":8,"verified_annotation_count":0,"id":18051}]},"meta":{"status":200}}'
|
60
|
-
http_version:
|
61
|
-
recorded_at: Mon, 27 Jan 2014 22:10:14 GMT
|
62
|
-
- request:
|
63
|
-
method: get
|
64
|
-
uri: https://api.rapgenius.com/artists/130/songs/?page=1
|
65
|
-
body:
|
66
|
-
encoding: US-ASCII
|
67
|
-
string: ''
|
68
|
-
headers:
|
69
|
-
User-Agent:
|
70
|
-
- rapgenius.rb v1.0.0
|
71
|
-
response:
|
72
|
-
status:
|
73
|
-
code: 200
|
74
|
-
message: OK
|
75
|
-
headers:
|
29
|
+
Access-Control-Allow-Methods:
|
30
|
+
- GET, POST, OPTIONS
|
76
31
|
Cache-Control:
|
77
32
|
- private, max-age=0, must-revalidate
|
78
|
-
|
79
|
-
-
|
80
|
-
Date:
|
81
|
-
- Sat, 01 Feb 2014 22:05:04 GMT
|
33
|
+
Access-Control-Allow-Credentials:
|
34
|
+
- 'false'
|
82
35
|
Etag:
|
83
|
-
- '"
|
84
|
-
|
85
|
-
-
|
86
|
-
|
87
|
-
- 200 OK
|
36
|
+
- '"6c3d3804d2b16b894f2e653d7800a47f"'
|
37
|
+
Access-Control-Allow-Headers:
|
38
|
+
- Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Content-Type,
|
39
|
+
Accept, X-Auth-Token
|
88
40
|
X-Runtime:
|
89
|
-
- '
|
90
|
-
|
91
|
-
- '
|
92
|
-
|
93
|
-
-
|
41
|
+
- '187'
|
42
|
+
Access-Control-Allow-Origin:
|
43
|
+
- '*'
|
44
|
+
Via:
|
45
|
+
- 1.1 vegur
|
94
46
|
body:
|
95
47
|
encoding: UTF-8
|
96
|
-
string: '{"response":{"
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
48
|
+
string: '{"response":{"artist":{"description":{"dom":{"tag":"root","children":[{"tag":"p","children":["Drake
|
49
|
+
is part of a generation of new rappers, along with ",{"tag":"a","data":{"api_path":"/artists/310"},"attributes":{"href":"http://genius.com/artists/Wiz-khalifa"},"children":["Wiz
|
50
|
+
Khalifa"]},", ",{"tag":"a","data":{"api_path":"/artists/68"},"attributes":{"href":"http://genius.com/artists/Kid-cudi"},"children":["Kid
|
51
|
+
Cudi"]}," and others, who came up through internet mixtapes. Drizzy put out
|
52
|
+
three mixtapes from 2006 to 2009. These mixtapes got him the attention of
|
53
|
+
",{"tag":"a","data":{"api_path":"/artists/4"},"attributes":{"href":"http://genius.com/artists/Lil-wayne"},"children":["Lil
|
54
|
+
Wayne"]},", and spawned the hit singles ",{"tag":"a","data":{"api_path":"/songs/147"},"attributes":{"href":"http://genius.com/lyrics/Drake-ft-eminem-kanye-west-and-lil-wayne/Forever"},"children":["\u201cForever\u201d"]},"
|
55
|
+
and ",{"tag":"a","data":{"api_path":"/songs/672"},"attributes":{"href":"http://genius.com/lyrics/Drake/Best-i-ever-had"},"children":["\u201cBest
|
56
|
+
I Ever Had.\u201d"]},", the latter coming from his critically acclaimed mixtape
|
57
|
+
",{"tag":"a","attributes":{"href":"http://genius.com/albums/Drake/So-far-gone"},"children":[{"tag":"em","children":["So
|
58
|
+
Far Gone"]}]},". During this period, Drake also made a slew of guest appearances
|
59
|
+
on tracks by artists from ",{"tag":"a","data":{"api_path":"/songs/2687"},"attributes":{"href":"http://genius.com/lyrics/Dj-khaled-ft-drake-lil-wayne-rick-ross-usher-and-young-jeezy/Fed-up"},"children":["DJ
|
60
|
+
Khaled"]}," to ",{"tag":"a","data":{"api_path":"/songs/674"},"attributes":{"href":"http://genius.com/lyrics/Jay-z-ft-drake/Off-that"},"children":["Jay-Z"]}]},"",{"tag":"p","children":["After
|
61
|
+
years without a record deal, Drake finally signed to Lil Wayne\u2019s Young
|
62
|
+
Money Entertainment label in 2009. And in 2010, Drake released his debut album
|
63
|
+
",{"tag":"a","attributes":{"href":"http://genius.com/posts/Drake-thank-me-later-all-the-lyrics-to-every-song-explained"},"children":[{"tag":"em","children":["Thank
|
64
|
+
Me Later"]}]}," to critical acclaim. His second album, ",{"tag":"em","children":[{"tag":"a","attributes":{"href":"http://genius.com/albums/Drake/Take-care"},"children":["Take
|
65
|
+
Care"]}]},", dropped in November 2011 and ",{"tag":"a","attributes":{"href":"http://www.youtube.com/watch?v=5s5dLSu3pyc","rel":"nofollow"},"children":["celebrated"]},"
|
66
|
+
with his crew for earning his first Grammy Award (for Best Rap Album) for
|
67
|
+
the album. His third project ",{"tag":"em","children":[{"tag":"a","attributes":{"href":"http://genius.com/albums/Drake/Nothing-was-the-same"},"children":["Nothing
|
68
|
+
Was The Same"]}]}," was released September 24th, 2013."]},"",{"tag":"ul","children":[{"tag":"li","children":[{"tag":"a","data":{"api_path":"/songs/391645"},"attributes":{"href":"http://genius.com/Clips-genius-drake-lyrics"},"children":["Music
|
69
|
+
Videos of the artist"]}]},""]}]},"plain":"Drake is part of a generation of
|
70
|
+
new rappers, along with Wiz Khalifa, Kid Cudi and others, who came up through
|
71
|
+
internet mixtapes. Drizzy put out three mixtapes from 2006 to 2009. These
|
72
|
+
mixtapes got him the attention of Lil Wayne, and spawned the hit singles \u201cForever\u201d
|
73
|
+
and \u201cBest I Ever Had.\u201d, the latter coming from his critically acclaimed
|
74
|
+
mixtape So Far Gone. During this period, Drake also made a slew of guest appearances
|
75
|
+
on tracks by artists from DJ Khaled to Jay-Z\n\nAfter years without a record
|
76
|
+
deal, Drake finally signed to Lil Wayne\u2019s Young Money Entertainment label
|
77
|
+
in 2009. And in 2010, Drake released his debut album Thank Me Later to critical
|
78
|
+
acclaim. His second album, Take Care, dropped in November 2011 and celebrated
|
79
|
+
with his crew for earning his first Grammy Award (for Best Rap Album) for
|
80
|
+
the album. His third project Nothing Was The Same was released September 24th,
|
81
|
+
2013.\n\n\nMusic Videos of the artist"},"tracking_paths":{"aggregate":"/artists/Drake","concurrent":"/artists/Drake"},"user":null,"url":"http://genius.com/artists/Drake","name":"Drake","id":130,"image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif"}},"meta":{"status":200}}'
|
119
82
|
http_version:
|
120
|
-
recorded_at:
|
83
|
+
recorded_at: Mon, 12 Jan 2015 21:09:43 GMT
|
121
84
|
- request:
|
122
85
|
method: get
|
123
|
-
uri: https://api.rapgenius.com/artists/130
|
86
|
+
uri: https://api.rapgenius.com/artists/130/songs/?page=1&text_format=dom,plain
|
124
87
|
body:
|
125
88
|
encoding: US-ASCII
|
126
89
|
string: ''
|
127
90
|
headers:
|
128
91
|
User-Agent:
|
129
|
-
- rapgenius.rb v1.0.
|
92
|
+
- rapgenius.rb v1.0.4
|
130
93
|
response:
|
131
94
|
status:
|
132
95
|
code: 200
|
133
96
|
message: OK
|
134
97
|
headers:
|
135
|
-
|
136
|
-
-
|
98
|
+
Connection:
|
99
|
+
- keep-alive
|
100
|
+
Server:
|
101
|
+
- nginx
|
102
|
+
Date:
|
103
|
+
- Mon, 12 Jan 2015 21:11:51 GMT
|
137
104
|
Content-Type:
|
138
105
|
- application/json; charset=utf-8
|
139
|
-
|
140
|
-
-
|
141
|
-
Etag:
|
142
|
-
- '"2677ffefc8fdd2c0efa9fbf1e2b70c2b"'
|
143
|
-
Server:
|
144
|
-
- nginx/1.4.1
|
106
|
+
Content-Length:
|
107
|
+
- '6297'
|
145
108
|
Status:
|
146
109
|
- 200 OK
|
147
110
|
X-Runtime:
|
148
|
-
- '
|
149
|
-
|
150
|
-
-
|
151
|
-
|
152
|
-
-
|
111
|
+
- '182'
|
112
|
+
Access-Control-Allow-Headers:
|
113
|
+
- Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Content-Type,
|
114
|
+
Accept, X-Auth-Token
|
115
|
+
Cache-Control:
|
116
|
+
- private, max-age=0, must-revalidate
|
117
|
+
Access-Control-Allow-Methods:
|
118
|
+
- GET, POST, OPTIONS
|
119
|
+
Access-Control-Allow-Credentials:
|
120
|
+
- 'false'
|
121
|
+
Etag:
|
122
|
+
- '"76c34401883857c8d1448b0f9ff00aad"'
|
123
|
+
Access-Control-Allow-Origin:
|
124
|
+
- '*'
|
125
|
+
Via:
|
126
|
+
- 1.1 vegur
|
153
127
|
body:
|
154
128
|
encoding: UTF-8
|
155
|
-
string: '{"response":{"
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
",
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
",
|
169
|
-
Me
|
170
|
-
|
171
|
-
|
172
|
-
the
|
173
|
-
|
129
|
+
string: '{"response":{"songs":[{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"0
|
130
|
+
to 100/The Catch Up","lyrics_updated_at":1415380761,"updated_by_human_at":1419443785,"annotation_count":1,"pyongs_count":2311,"id":156640},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"1Xtra
|
131
|
+
Freestyle","lyrics_updated_at":1415987388,"updated_by_human_at":1415987413,"annotation_count":1,"pyongs_count":9,"id":421444},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"2011
|
132
|
+
Juno Awards In Toronto","lyrics_updated_at":0,"updated_by_human_at":1396726815,"annotation_count":1,"pyongs_count":2,"id":214614},{"primary_artist":{"url":"http://genius.com/artists/Ob-obrien","name":"OB
|
133
|
+
O''Brien","image_url":"http://images.rapgenius.com/23c67850bbbe8050d0cf1000e4513341.310x311x1.jpg","id":24661},"title":"2
|
134
|
+
On/Thotful","lyrics_updated_at":1418604267,"updated_by_human_at":1418604267,"annotation_count":1,"pyongs_count":245,"id":427679},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"305
|
135
|
+
to My City","lyrics_updated_at":0,"updated_by_human_at":1414590255,"annotation_count":1,"pyongs_count":68,"id":217281},{"primary_artist":{"url":"http://genius.com/artists/Birdman","name":"Birdman","image_url":"http://images.rapgenius.com/18d7dff22dd87895d04b8b91113cce6d.670x380x1.jpg","id":86},"title":"4
|
136
|
+
My Town","lyrics_updated_at":0,"updated_by_human_at":1399167281,"annotation_count":1,"pyongs_count":11,"id":481},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"5AM
|
137
|
+
in Toronto","lyrics_updated_at":1413656472,"updated_by_human_at":1417149933,"annotation_count":1,"pyongs_count":61,"id":124418},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"6
|
138
|
+
God","lyrics_updated_at":1419796565,"updated_by_human_at":1420291958,"annotation_count":1,"pyongs_count":457,"id":500858},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"9am
|
139
|
+
in Dallas","lyrics_updated_at":1402005552,"updated_by_human_at":1416035906,"annotation_count":1,"pyongs_count":28,"id":514},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"About
|
140
|
+
The Game","lyrics_updated_at":0,"updated_by_human_at":1389903744,"annotation_count":1,"pyongs_count":5,"id":201539},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"A
|
141
|
+
Little Favour","lyrics_updated_at":0,"updated_by_human_at":1388851406,"annotation_count":1,"pyongs_count":1,"id":71058},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"A
|
142
|
+
Little Favour (GQ Freestyle)","lyrics_updated_at":0,"updated_by_human_at":1410042413,"annotation_count":1,"pyongs_count":2,"id":68760},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"All
|
143
|
+
Me","lyrics_updated_at":1399303015,"updated_by_human_at":1416554424,"annotation_count":1,"pyongs_count":438,"id":196551},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"All
|
144
|
+
Night Long (Miss Me Demo)","lyrics_updated_at":0,"updated_by_human_at":1375358824,"annotation_count":1,"pyongs_count":2,"id":114010},{"primary_artist":{"url":"http://genius.com/artists/Kanye-west","name":"Kanye
|
145
|
+
West","image_url":"http://images.rapgenius.com/538ed90e5af5d56c9558e44c0e8ad17c.715x444x1.jpg","id":72},"title":"All
|
146
|
+
of the Lights","lyrics_updated_at":1394195304,"updated_by_human_at":1415492854,"annotation_count":1,"pyongs_count":93,"id":1781},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"All
|
147
|
+
Of The Lights (Remix)","lyrics_updated_at":1414122943,"updated_by_human_at":1414122943,"annotation_count":1,"pyongs_count":21,"id":5437},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"All
|
148
|
+
This Love","lyrics_updated_at":1396840499,"updated_by_human_at":1398397541,"annotation_count":1,"pyongs_count":null,"id":18064},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"All
|
149
|
+
White","lyrics_updated_at":1419458169,"updated_by_human_at":1419458169,"annotation_count":1,"pyongs_count":16,"id":515863},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"title":"AM
|
150
|
+
2 PM","lyrics_updated_at":1397669037,"updated_by_human_at":1416941167,"annotation_count":1,"pyongs_count":4,"id":2751},{"primary_artist":{"url":"http://genius.com/artists/Meek-mill","name":"Meek
|
151
|
+
Mill","image_url":"http://s3.amazonaws.com/rapgenius/1373656023_meekmill.jpg","id":1319},"title":"Amen","lyrics_updated_at":1420508932,"updated_by_human_at":1420508931,"annotation_count":1,"pyongs_count":36,"id":73301}]},"meta":{"status":200}}'
|
174
152
|
http_version:
|
175
|
-
recorded_at:
|
153
|
+
recorded_at: Mon, 12 Jan 2015 21:11:52 GMT
|
176
154
|
- request:
|
177
155
|
method: get
|
178
|
-
uri: https://api.rapgenius.com/artists/130/songs/?page=3
|
156
|
+
uri: https://api.rapgenius.com/artists/130/songs/?page=3&text_format=dom,plain
|
179
157
|
body:
|
180
158
|
encoding: US-ASCII
|
181
159
|
string: ''
|
182
160
|
headers:
|
183
161
|
User-Agent:
|
184
|
-
- rapgenius.rb v1.0.
|
162
|
+
- rapgenius.rb v1.0.4
|
185
163
|
response:
|
186
164
|
status:
|
187
165
|
code: 200
|
188
166
|
message: OK
|
189
167
|
headers:
|
190
|
-
|
191
|
-
-
|
168
|
+
Connection:
|
169
|
+
- keep-alive
|
170
|
+
Server:
|
171
|
+
- nginx
|
172
|
+
Date:
|
173
|
+
- Mon, 12 Jan 2015 21:11:52 GMT
|
192
174
|
Content-Type:
|
193
175
|
- application/json; charset=utf-8
|
194
|
-
|
195
|
-
-
|
196
|
-
Etag:
|
197
|
-
- '"7279da41bd6d9d30263a9860e6b7d274"'
|
198
|
-
Server:
|
199
|
-
- nginx/1.4.1
|
176
|
+
Content-Length:
|
177
|
+
- '6157'
|
200
178
|
Status:
|
201
179
|
- 200 OK
|
202
180
|
X-Runtime:
|
203
|
-
- '
|
204
|
-
|
205
|
-
-
|
206
|
-
|
207
|
-
-
|
181
|
+
- '158'
|
182
|
+
Access-Control-Allow-Headers:
|
183
|
+
- Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Content-Type,
|
184
|
+
Accept, X-Auth-Token
|
185
|
+
Access-Control-Allow-Methods:
|
186
|
+
- GET, POST, OPTIONS
|
187
|
+
Access-Control-Allow-Credentials:
|
188
|
+
- 'false'
|
189
|
+
Cache-Control:
|
190
|
+
- private, max-age=0, must-revalidate
|
191
|
+
Access-Control-Allow-Origin:
|
192
|
+
- '*'
|
193
|
+
Etag:
|
194
|
+
- '"15994ffad3b4c08d314072d5bc954d6d"'
|
195
|
+
Via:
|
196
|
+
- 1.1 vegur
|
208
197
|
body:
|
209
198
|
encoding: UTF-8
|
210
|
-
string: '{"response":{"songs":[{"
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
199
|
+
string: '{"response":{"songs":[{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Best
|
200
|
+
I Ever Had (Remix)","pyongs_count":9,"lyrics_updated_at":1420775896,"updated_by_human_at":1420775895,"id":74017},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Between
|
201
|
+
Us","pyongs_count":3,"lyrics_updated_at":1404096603,"updated_by_human_at":1404099194,"id":81686},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Bibb
|
202
|
+
City","pyongs_count":null,"lyrics_updated_at":1414785373,"updated_by_human_at":1414785372,"id":561120},{"primary_artist":{"url":"http://genius.com/artists/Amariemowatt","name":"AmarieMowatt","image_url":null,"id":65441},"annotation_count":1,"title":"BitchA$$","pyongs_count":3,"lyrics_updated_at":1404445838,"updated_by_human_at":1409845525,"id":364059},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Bitch
|
203
|
+
Is Crazy","pyongs_count":null,"lyrics_updated_at":0,"updated_by_human_at":1372025575,"id":18051},{"primary_artist":{"url":"http://genius.com/artists/Jd-era","name":"JD
|
204
|
+
Era","image_url":"http://images.rapgenius.com/ee9a3e5cf96631d720c3e3c9c9a82198.600x897x1.jpg","id":12377},"annotation_count":1,"title":"Black
|
205
|
+
Magic","pyongs_count":1,"lyrics_updated_at":1417767810,"updated_by_human_at":1417767810,"id":72141},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Bollywood
|
206
|
+
Flow","pyongs_count":4,"lyrics_updated_at":0,"updated_by_human_at":1414631334,"id":3279},{"primary_artist":{"url":"http://genius.com/artists/Kaycee","name":"Kaycee","image_url":null,"id":72208},"annotation_count":1,"title":"Bossin
|
207
|
+
freestyle","pyongs_count":1,"lyrics_updated_at":0,"updated_by_human_at":1379579945,"id":220579},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Brand
|
208
|
+
New","pyongs_count":10,"lyrics_updated_at":0,"updated_by_human_at":1397771023,"id":4090},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Brand
|
209
|
+
New (Remix)","pyongs_count":2,"lyrics_updated_at":1414649247,"updated_by_human_at":1415238937,"id":92761},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Bria''s
|
210
|
+
Interlude","pyongs_count":15,"lyrics_updated_at":1393611894,"updated_by_human_at":1393611894,"id":4815},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Buried
|
211
|
+
Alive (Interlude)","pyongs_count":70,"lyrics_updated_at":1420603522,"updated_by_human_at":1420603522,"id":55602},{"primary_artist":{"url":"http://genius.com/artists/Justin-timberlake","name":"Justin
|
212
|
+
Timberlake","image_url":"http://s3.amazonaws.com/rapgenius/jt_givenchy_575.jpg","id":334},"annotation_count":1,"title":"Cabaret","pyongs_count":21,"lyrics_updated_at":1420774620,"updated_by_human_at":1420774619,"id":224193},{"primary_artist":{"url":"http://genius.com/artists/French-montana","name":"French
|
213
|
+
Montana","image_url":"http://s3.amazonaws.com/rapgenius/FrenchBear.jpg","id":1583},"annotation_count":1,"title":"Call
|
214
|
+
Me Montana","pyongs_count":3,"lyrics_updated_at":1397780722,"updated_by_human_at":1397780722,"id":57410},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Cameras","pyongs_count":40,"lyrics_updated_at":1418089786,"updated_by_human_at":1418089786,"id":58342},{"primary_artist":{"url":"http://genius.com/artists/Colin-munroe","name":"Colin
|
215
|
+
Munroe","image_url":"http://images.rapgenius.com/409dd5c72fe5f27d0deb826e69967cf1.473x473x1.jpg","id":1515},"annotation_count":1,"title":"Cannon
|
216
|
+
Ball","pyongs_count":null,"lyrics_updated_at":1405316489,"updated_by_human_at":1405316489,"id":32129},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Can''t
|
217
|
+
Hide From Love Freestyle","pyongs_count":null,"lyrics_updated_at":1412713649,"updated_by_human_at":1412713649,"id":81757},{"primary_artist":{"url":"http://genius.com/artists/Drake","name":"Drake","image_url":"http://images.rapgenius.com/6e996fe91d484c626f1b36686cb27d7c.450x253x70.gif","id":130},"annotation_count":1,"title":"Cece''s
|
218
|
+
Interlude","pyongs_count":9,"lyrics_updated_at":1405787127,"updated_by_human_at":1405787127,"id":4802},{"primary_artist":{"url":"http://genius.com/artists/Tank","name":"Tank","image_url":"http://s3.amazonaws.com/rapgenius/tank-11222010.jpg","id":1057},"annotation_count":1,"title":"Celebration","pyongs_count":null,"lyrics_updated_at":1398138831,"updated_by_human_at":1403774909,"id":32142},{"primary_artist":{"url":"http://genius.com/artists/Nicki-minaj","name":"Nicki
|
219
|
+
Minaj","image_url":"http://images.rapgenius.com/d499b6bfc572b1543d6ac4a8469bac24.605x610x1.png","id":92},"annotation_count":1,"title":"Champion","pyongs_count":16,"lyrics_updated_at":1415555301,"updated_by_human_at":1417018204,"id":69579}]},"meta":{"status":200}}'
|
231
220
|
http_version:
|
232
|
-
recorded_at:
|
221
|
+
recorded_at: Mon, 12 Jan 2015 21:11:52 GMT
|
233
222
|
- request:
|
234
223
|
method: get
|
235
|
-
uri: https://api.rapgenius.com/artists/bahahaha
|
224
|
+
uri: https://api.rapgenius.com/artists/bahahaha?text_format=dom,plain
|
236
225
|
body:
|
237
226
|
encoding: US-ASCII
|
238
227
|
string: ''
|
239
228
|
headers:
|
240
229
|
User-Agent:
|
241
|
-
- rapgenius.rb v1.0.
|
230
|
+
- rapgenius.rb v1.0.4
|
242
231
|
response:
|
243
232
|
status:
|
244
233
|
code: 404
|
245
234
|
message: Not Found
|
246
235
|
headers:
|
247
|
-
|
248
|
-
-
|
236
|
+
Connection:
|
237
|
+
- keep-alive
|
238
|
+
Server:
|
239
|
+
- nginx
|
240
|
+
Date:
|
241
|
+
- Mon, 12 Jan 2015 21:11:53 GMT
|
249
242
|
Content-Type:
|
250
243
|
- application/json; charset=utf-8
|
251
|
-
|
252
|
-
-
|
253
|
-
Server:
|
254
|
-
- nginx/1.4.1
|
244
|
+
Content-Length:
|
245
|
+
- '49'
|
255
246
|
Status:
|
256
247
|
- 404 Not Found
|
257
248
|
X-Runtime:
|
258
|
-
- '
|
259
|
-
|
260
|
-
-
|
261
|
-
|
262
|
-
-
|
249
|
+
- '3'
|
250
|
+
Cache-Control:
|
251
|
+
- no-cache
|
252
|
+
Access-Control-Allow-Origin:
|
253
|
+
- '*'
|
254
|
+
Access-Control-Allow-Methods:
|
255
|
+
- GET, POST, OPTIONS
|
256
|
+
Access-Control-Allow-Credentials:
|
257
|
+
- 'false'
|
258
|
+
Access-Control-Allow-Headers:
|
259
|
+
- Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Content-Type,
|
260
|
+
Accept, X-Auth-Token
|
261
|
+
Via:
|
262
|
+
- 1.1 vegur
|
263
263
|
body:
|
264
264
|
encoding: UTF-8
|
265
265
|
string: '{"meta":{"status":404,"message":"404 Not Found"}}'
|
266
266
|
http_version:
|
267
|
-
recorded_at:
|
267
|
+
recorded_at: Mon, 12 Jan 2015 21:11:53 GMT
|
268
268
|
recorded_with: VCR 2.5.0
|