diff --git a/spotdl/lyrics/providers/__init__.py b/spotdl/lyrics/providers/__init__.py index 5fcb123..9453de2 100644 --- a/spotdl/lyrics/providers/__init__.py +++ b/spotdl/lyrics/providers/__init__.py @@ -1,2 +1,4 @@ -from spotdl.lyrics.providers.lyricwikia_wrapper import LyricWikia from spotdl.lyrics.providers.genius import Genius +from spotdl.lyrics.providers.lyricwikia_wrapper import LyricWikia + +LyricClasses = (Genius, LyricWikia) diff --git a/spotdl/spotify_tools.py b/spotdl/spotify_tools.py index c73174d..0f62a4f 100644 --- a/spotdl/spotify_tools.py +++ b/spotdl/spotify_tools.py @@ -11,12 +11,14 @@ import functools from spotdl import const from spotdl import internals -from spotdl.lyrics.providers import LyricWikia +from spotdl.lyrics.providers import LyricClasses from spotdl.lyrics.exceptions import LyricsNotFound spotify = None + + def generate_token(): """ Generate the token. """ credentials = oauth2.SpotifyClientCredentials( @@ -75,12 +77,16 @@ def generate_metadata(raw_song): meta_tags[u"total_tracks"] = album["tracks"]["total"] log.debug("Fetching lyrics") - track = LyricWikia(meta_tags["artists"][0]["name"], meta_tags["name"]) + meta_tags["lyrics"] = None - try: - meta_tags["lyrics"] = track.get_lyrics() - except LyricsNotFound: - meta_tags["lyrics"] = None + for LyricClass in LyricClasses: + track = LyricClass(meta_tags["artists"][0]["name"], meta_tags["name"]) + try: + meta_tags["lyrics"] = track.get_lyrics() + except LyricsNotFound: + continue + else: + break # Some sugar meta_tags["year"], *_ = meta_tags["release_date"].split("-")