diff --git a/streamrip/core.py b/streamrip/core.py index c7c9862..797d385 100644 --- a/streamrip/core.py +++ b/streamrip/core.py @@ -386,7 +386,8 @@ class MusicDL(list): playlist.append(track) return True - except NoResultsFound: + except (NoResultsFound, StopIteration) as err: + logger.debug("No results found for query=%s. Exception: %s", query, err) return False for purl in lastfm_urls: @@ -469,9 +470,11 @@ class MusicDL(list): if i > limit: return else: + logger.debug("Not generator") items = ( results.get("data") or results.get("items") or results.get("collection") ) + logger.debug("Number of results: %d", len(items)) if items is None: raise NoResultsFound(query) @@ -637,7 +640,7 @@ class MusicDL(list): if remaining_tracks_match is not None: remaining_tracks = int(remaining_tracks_match.group(1)) - 50 else: - raise ParsingError("Error parsing lastfm page") + raise ParsingError("Error parsing lastfm page: %s", r.text) playlist_title_match = re.search( r'

([^<]+)

', r.text diff --git a/streamrip/metadata.py b/streamrip/metadata.py index 9ded6c6..f0809f0 100644 --- a/streamrip/metadata.py +++ b/streamrip/metadata.py @@ -235,7 +235,7 @@ class TrackMetadata: self.tracknumber = track.get("track_number", 1) self.discnumber = track.get("media_number", 1) - self.artist = safe_get(track, "performer", "name") + self.artist = safe_get(track, "artist", "name") elif self.__source == "tidal": self.title = track["title"].strip() @@ -249,7 +249,7 @@ class TrackMetadata: self._mod_title(track.get("version"), None) self.tracknumber = track.get("track_position", 1) self.discnumber = track.get("disk_number", 1) - self.artist = track.get("artist", {}).get("name") + self.artist = safe_get(track, "artist", "name") elif self.__source == "soundcloud": self.title = track["title"].strip()