-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquery_libs.py
43 lines (36 loc) · 1.15 KB
/
query_libs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import requests, json
from random import shuffle
def get_tracks(tag: str, num=3):
url = "http://ws.audioscrobbler.com/2.0/"
key = "aa0ea82681d54b0e0fa96a56695cd659"
params = {
"method": "tag.gettoptracks",
"tag": tag,
"api_key": key,
"limit": 50,
"format": "json",
}
response = requests.get(url, params=params)
content = json.loads(response.content)
tracks = [track for track in content["tracks"]["track"]]
shuffle(tracks)
tracks = tracks[:num]
return [
{"artist": track["artist"]["name"].strip(), "title": track["name"].strip()}
for track in tracks
]
def get_lyrics(artist: str, track: str):
url = f"https://api.lyrics.ovh/v1/{artist}/{track}"
response = requests.get(url)
content = json.loads(response.content)
lyrics = content["lyrics"]
return lyrics
def get_random_songs(tag: str):
tracks = get_tracks(tag)
songs = []
for track in tracks:
lyrics = get_lyrics(track["artist"], track["title"])
songs.append(
{"artist": track["artist"], "title": track["title"], "lyrics": lyrics}
)
return songs