lyrics search from genius api

pull/1/head
Yash Agarwal 2017-06-17 12:21:36 +05:30
parent 134be89024
commit 10dcd16391
1 changed files with 34 additions and 2 deletions

View File

@ -37,6 +37,38 @@ def get_song_name(title, artist):
return title + ' - ' + artist return title + ' - ' + artist
def get_lyrics_genius(song_name):
GENIUS_KEY = "TxvC3bwsONZ1lh3j8Idq-VFBXKk5SlwYoAyGwkWFvbqkJB8vwdMGV7b5Q4sJSTd2"
base_url = "https://api.genius.com"
headers = {'Authorization': 'Bearer %s' % (GENIUS_KEY)}
search_url = base_url + "/search"
data = {'q': song_name}
response = requests.get(search_url, data=data, headers=headers)
json = response.json()
try:
song_info = json['response']['hits'][0]['result']['api_path']
except KeyError:
print("Could not find lyrics")
return None
song_url = base_url + song_info
response = requests.get(song_url, headers=headers)
json = response.json()
song_path = json['response']['song']['path']
song_url = "http://genius.com" + song_path
page = requests.get(song_url)
html = BeautifulSoup(page.text, "html.parser")
# remove script tags that they put in the middle of the lyrics
[h.extract() for h in html('script')]
lyrics = html.find("div", class_="lyrics").get_text()
lyrics.replace('\n', ' ')
return lyrics
def get_metadata_spotify(spotify, song_name): def get_metadata_spotify(spotify, song_name):
metadata = {} metadata = {}
meta_tags = spotify.search(song_name, limit=1)['tracks']['items'][0] meta_tags = spotify.search(song_name, limit=1)['tracks']['items'][0]
@ -65,8 +97,8 @@ def get_metadata_spotify(spotify, song_name):
metadata['disc_num'] = meta_tags['disc_number'] metadata['disc_num'] = meta_tags['disc_number']
metadata['albumart'] = meta_tags['album']['images'][0]['url'] metadata['albumart'] = meta_tags['album']['images'][0]['url']
# metadata['lyrics'] = get_lyrics_genius( metadata['lyrics'] = get_lyrics_genius(
# get_song_name(metadata['title'], metadata['artist'])) get_song_name(metadata['title'], metadata['artist']))
return metadata return metadata