rapgenius 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|