diff --git a/streamrip/client/deezer.py b/streamrip/client/deezer.py index 3f42260..9315e8f 100644 --- a/streamrip/client/deezer.py +++ b/streamrip/client/deezer.py @@ -173,7 +173,7 @@ async def get_downloadable( "quality allowed is 1.", ) except deezer.WrongGeolocation: - if not is_retry: + if not is_retry and fallback_id: return await self.get_downloadable(fallback_id, quality, is_retry=True) raise NonStreamableError( "The requested track is not available. This may be due to your country/location.", diff --git a/streamrip/media/track.py b/streamrip/media/track.py index 695ad9b..b09cfa1 100644 --- a/streamrip/media/track.py +++ b/streamrip/media/track.py @@ -138,7 +138,7 @@ async def resolve(self) -> Track | None: try: meta = TrackMetadata.from_resp(self.album, source, resp) except Exception as e: - logger.error(f"Error building track metadata for {id=}: {e}") + logger.error(f"Error building track metadata for {self.id}: {e}") return None if meta is None: @@ -147,7 +147,13 @@ async def resolve(self) -> Track | None: return None quality = self.config.session.get_source(source).quality - downloadable = await self.client.get_downloadable(self.id, quality) + try: + downloadable = await self.client.get_downloadable(self.id, quality) + except NonStreamableError as e: + logger.error( + f"Error getting downloadable data for track {meta.tracknumber} [{self.id}]: {e}" + ) + return None downloads_config = self.config.session.downloads if downloads_config.disc_subdirectories and self.album.disctotal > 1: