diff --git a/lyrics b/lyrics index f09f045..6481e03 100755 --- a/lyrics +++ b/lyrics @@ -8,23 +8,24 @@ args = " ".join(sys.argv[1:]) if not args: sys.exit(1) -url = "https://search.azlyrics.com/suggest.php?q=%s" % args -search_term = requests.get(url).json() -if not search_term["term"]: +# Expect: Artist - Song +if "-" not in args: sys.exit(1) -suggestions = search_term["songs"] +artist, title = map(str.strip, args.split("-", 1)) -if suggestions: - resp = requests.get(suggestions[0]["url"]) - lyrics_page = BeautifulSoup(resp.content, "lxml") +url = f"https://api.lyrics.ovh/v1/{artist}/{title}" +resp = requests.get(url) - lyrics_container = lyrics_page.find("div", attrs={"class": "ringtone"}).parent - lyrics_header = suggestions[0]["autocomplete"] - lyrics_text = lyrics_container.find("div", attrs={"class": ""}).text.strip() +if resp.status_code != 200: + sys.exit(1) + +data = resp.json() +lyrics = data.get("lyrics") - print(lyrics_header, end="\n\n") - print(lyrics_text) - sys.exit(0) -else: +if not lyrics: sys.exit(1) + +print(f"{artist} - {title}", end="\n\n") +print(lyrics) +sys.exit(0) \ No newline at end of file