From d4a4934f7a3b005e258d82862e73ee120629baf7 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 1 Nov 2023 17:38:50 -0400 Subject: [PATCH 01/14] Improve error handling --- beetsplug/deezer.py | 46 +++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 4c70d841e..2f3f28364 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -75,13 +75,12 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): deezer_id = self._get_id("album", album_id, self.id_regex) if deezer_id is None: return None - - album_data = requests.get(self.album_url + deezer_id).json() - if "error" in album_data: - self._log.debug( - f"Error fetching album {album_id}: " - f"{album_data['error']['message']}" - ) + try: + album_data = requests.get(self.album_url + deezer_id, + timeout=10).json() + except requests.exceptions as e: + self._log.debug("Error fetching album {}\n Error: {}", + deezer_id, e) return None contributors = album_data.get("contributors") if contributors is not None: @@ -108,8 +107,13 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): "by {} API: '{}'".format(self.data_source, release_date) ) - tracks_obj = requests.get(self.album_url + deezer_id + "/tracks").json() - tracks_data = tracks_obj["data"] + try: + tracks_obj = requests.get(self.album_url + deezer_id + "/tracks", + timeout=10).json() + tracks_data = tracks_obj["data"] + except requests.exceptions.ReadTimeout: + self._log.debug("Timeout fetching album tracks for {}", deezer_id) + tracks_data = None if not tracks_data: return None while "next" in tracks_obj: @@ -192,21 +196,27 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): deezer_id = self._get_id("track", track_id, self.id_regex) if deezer_id is None: return None - track_data = requests.get(self.track_url + deezer_id).json() - if "error" in track_data: - self._log.debug( - f"Error fetching track {track_id}: " - f"{track_data['error']['message']}" - ) + try: + track_data = requests.get(self.track_url + deezer_id, + timeout=10).json() + except requests.exception as e: + self._log.debug("Error fetching track {}\n Error: {}", + deezer_id, e) return None track = self._get_track(track_data) # Get album's tracks to set `track.index` (position on the entire # release) and `track.medium_total` (total number of tracks on # the track's disc). - album_tracks_data = requests.get( - self.album_url + str(track_data["album"]["id"]) + "/tracks" - ).json()["data"] + try: + album_tracks_data = requests.get( + self.album_url + str(track_data["album"]["id"]) + "/tracks", + timeout=10, + ).json()["data"] + except requests.exceptions as e: + self._log.debug("Error fetching album tracks for {} \n Error: {}", + track_data["album"]["id"], e) + return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): if track_data["disk_number"] == track.medium: From a5f4599cd323e443eb2603b4eaa6e7b2f2acab09 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 1 Nov 2023 18:04:43 -0400 Subject: [PATCH 02/14] Update changelog.rst --- docs/changelog.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 52c681dc0..0672dbbdd 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -144,6 +144,8 @@ New features: Bug fixes: +* :doc:`/plugins/deezer`: Improve Deezer plugin error handling. + :bug:`4983` * :doc:`/plugins/spotify`: Add a limit of 3 retries, instead of retrying endlessly when the API is not available. * Fix a crash when the Spotify API timeouts or does not return a `Retry-After` interval. :bug:`4942` From c1e91f42df03f3f0f3818814f2792c5bf9212a0a Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 1 Nov 2023 18:12:23 -0400 Subject: [PATCH 03/14] Formatting --- beetsplug/deezer.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 2f3f28364..55ee23358 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -76,11 +76,11 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): if deezer_id is None: return None try: - album_data = requests.get(self.album_url + deezer_id, - timeout=10).json() + album_data = requests.get( + self.album_url + deezer_id, timeout=10 + ).json() except requests.exceptions as e: - self._log.debug("Error fetching album {}\n Error: {}", - deezer_id, e) + self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) return None contributors = album_data.get("contributors") if contributors is not None: @@ -108,8 +108,9 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): ) try: - tracks_obj = requests.get(self.album_url + deezer_id + "/tracks", - timeout=10).json() + tracks_obj = requests.get( + self.album_url + deezer_id + "/tracks", timeout=10 + ).json() tracks_data = tracks_obj["data"] except requests.exceptions.ReadTimeout: self._log.debug("Timeout fetching album tracks for {}", deezer_id) @@ -197,11 +198,13 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): if deezer_id is None: return None try: - track_data = requests.get(self.track_url + deezer_id, - timeout=10).json() + track_data = requests.get( + self.track_url + deezer_id, timeout=10 + ).json() except requests.exception as e: - self._log.debug("Error fetching track {}\n Error: {}", - deezer_id, e) + self._log.debug( + "Error fetching track {}\n Error: {}", deezer_id, e + ) return None track = self._get_track(track_data) @@ -214,8 +217,11 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): timeout=10, ).json()["data"] except requests.exceptions as e: - self._log.debug("Error fetching album tracks for {} \n Error: {}", - track_data["album"]["id"], e) + self._log.debug( + "Error fetching album tracks for {} \n Error: {}", + track_data["album"]["id"], + e, + ) return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): From 39fd14cec7e8f0903b83b5db6df7a1527be9702f Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Thu, 16 Nov 2023 12:28:56 -0500 Subject: [PATCH 04/14] Update changelog.rst --- docs/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 0672dbbdd..a83bfbc15 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -144,7 +144,7 @@ New features: Bug fixes: -* :doc:`/plugins/deezer`: Improve Deezer plugin error handling. +* :doc:`/plugins/deezer`: Improve Deezer plugin error handling and set requests timeout to 10 seconds. :bug:`4983` * :doc:`/plugins/spotify`: Add a limit of 3 retries, instead of retrying endlessly when the API is not available. * Fix a crash when the Spotify API timeouts or does not return a `Retry-After` interval. From 4cf2c6d3a19531f634d6bde3021141b03de547fe Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 22 Nov 2023 11:52:33 -0500 Subject: [PATCH 05/14] Handle Deezer API errors --- beetsplug/deezer.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 55ee23358..9408b2d76 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -82,6 +82,10 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): except requests.exceptions as e: self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) return None + else: + if 'error' in album_data: + self._log.debug("Deezer API error: {}", album_data['error']['message']) + return None contributors = album_data.get("contributors") if contributors is not None: artist, artist_id = self.get_artist(contributors) @@ -223,6 +227,10 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): e, ) return None + else: + if 'error' in album_tracks_data: + self._log.debug("Deezer API error: {}", album_tracks_data['error']['message']) + return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): if track_data["disk_number"] == track.medium: From 3f68856e58adc1ee0da86d75fa7dfa3fae2b98b8 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 22 Nov 2023 11:54:10 -0500 Subject: [PATCH 06/14] Lint --- beetsplug/deezer.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 9408b2d76..39941131a 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -80,11 +80,13 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self.album_url + deezer_id, timeout=10 ).json() except requests.exceptions as e: - self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) + self._log.debug("Error fetching album {}\n Error: {}", + deezer_id, e) return None else: if 'error' in album_data: - self._log.debug("Deezer API error: {}", album_data['error']['message']) + self._log.debug("Deezer API error: {}", + album_data['error']['message']) return None contributors = album_data.get("contributors") if contributors is not None: @@ -229,7 +231,8 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): return None else: if 'error' in album_tracks_data: - self._log.debug("Deezer API error: {}", album_tracks_data['error']['message']) + self._log.debug("Deezer API error: {}", + album_tracks_data['error']['message']) return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): From b4cc654153c5ba1cd2978ef4557fc7ad3336a330 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 22 Nov 2023 11:56:06 -0500 Subject: [PATCH 07/14] Formatting fixes --- beetsplug/deezer.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 39941131a..7ade2374a 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -80,13 +80,13 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self.album_url + deezer_id, timeout=10 ).json() except requests.exceptions as e: - self._log.debug("Error fetching album {}\n Error: {}", - deezer_id, e) + self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) return None else: - if 'error' in album_data: - self._log.debug("Deezer API error: {}", - album_data['error']['message']) + if "error" in album_data: + self._log.debug( + "Deezer API error: {}", album_data["error"]["message"] + ) return None contributors = album_data.get("contributors") if contributors is not None: @@ -230,9 +230,11 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): ) return None else: - if 'error' in album_tracks_data: - self._log.debug("Deezer API error: {}", - album_tracks_data['error']['message']) + if "error" in album_tracks_data: + self._log.debug( + "Deezer API error: {}", + album_tracks_data["error"]["message"], + ) return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): From 33f8ae3e504870dc17e3b6f803706fb4b5f0f8c0 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 22 Nov 2023 12:02:39 -0500 Subject: [PATCH 08/14] Use exception instead of a module in try-except block --- beetsplug/deezer.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 7ade2374a..66368bba1 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -79,14 +79,15 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): album_data = requests.get( self.album_url + deezer_id, timeout=10 ).json() - except requests.exceptions as e: - self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) + except (requests.exceptions.ConnectionError, + requests.exceptions.RequestException) as e: + self._log.debug("Error fetching album {}\n Error: {}", + deezer_id, e) return None else: - if "error" in album_data: - self._log.debug( - "Deezer API error: {}", album_data["error"]["message"] - ) + if 'error' in album_data: + self._log.debug("Deezer API error: {}", + album_data['error']['message']) return None contributors = album_data.get("contributors") if contributors is not None: @@ -222,7 +223,8 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self.album_url + str(track_data["album"]["id"]) + "/tracks", timeout=10, ).json()["data"] - except requests.exceptions as e: + except (requests.exceptions.ConnectionError, + requests.exceptions.RequestException) as e: self._log.debug( "Error fetching album tracks for {} \n Error: {}", track_data["album"]["id"], @@ -230,11 +232,9 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): ) return None else: - if "error" in album_tracks_data: - self._log.debug( - "Deezer API error: {}", - album_tracks_data["error"]["message"], - ) + if 'error' in album_tracks_data: + self._log.debug("Deezer API error: {}", + album_tracks_data['error']['message']) return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): From b2fe89d70c7c0213ce6c0ebb696db52ff6ba8d3d Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Wed, 22 Nov 2023 12:03:33 -0500 Subject: [PATCH 09/14] formatting fixes --- beetsplug/deezer.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 66368bba1..d9947e4c3 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -79,15 +79,17 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): album_data = requests.get( self.album_url + deezer_id, timeout=10 ).json() - except (requests.exceptions.ConnectionError, - requests.exceptions.RequestException) as e: - self._log.debug("Error fetching album {}\n Error: {}", - deezer_id, e) + except ( + requests.exceptions.ConnectionError, + requests.exceptions.RequestException, + ) as e: + self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) return None else: - if 'error' in album_data: - self._log.debug("Deezer API error: {}", - album_data['error']['message']) + if "error" in album_data: + self._log.debug( + "Deezer API error: {}", album_data["error"]["message"] + ) return None contributors = album_data.get("contributors") if contributors is not None: @@ -223,8 +225,10 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self.album_url + str(track_data["album"]["id"]) + "/tracks", timeout=10, ).json()["data"] - except (requests.exceptions.ConnectionError, - requests.exceptions.RequestException) as e: + except ( + requests.exceptions.ConnectionError, + requests.exceptions.RequestException, + ) as e: self._log.debug( "Error fetching album tracks for {} \n Error: {}", track_data["album"]["id"], @@ -232,9 +236,11 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): ) return None else: - if 'error' in album_tracks_data: - self._log.debug("Deezer API error: {}", - album_tracks_data['error']['message']) + if "error" in album_tracks_data: + self._log.debug( + "Deezer API error: {}", + album_tracks_data["error"]["message"], + ) return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): From dee893a7d0686f3816f08163b438823f464159cb Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Thu, 23 Nov 2023 09:40:03 -0500 Subject: [PATCH 10/14] Add helper function and address comments --- beetsplug/deezer.py | 91 +++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 52 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index d9947e4c3..291f539f4 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -63,6 +63,25 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): return [deezer_update_cmd] + def fetch_data(self, url): + try: + response = requests.get(url, timeout=10) + response.raise_for_status() + data = response.json() + except ( + requests.exceptions.ConnectionError, + requests.exceptions.RequestException, + ) as e: + self._log.debug("Error fetching data from {}\n Error: {}", url, e) + return None + else: + if "error" in data: + self._log.debug( + "Deezer API error: {}", data["error"]["message"] + ) + return None + return data + def album_for_id(self, album_id): """Fetch an album by its Deezer ID or URL and return an AlbumInfo object or None if the album is not found. @@ -75,22 +94,9 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): deezer_id = self._get_id("album", album_id, self.id_regex) if deezer_id is None: return None - try: - album_data = requests.get( - self.album_url + deezer_id, timeout=10 - ).json() - except ( - requests.exceptions.ConnectionError, - requests.exceptions.RequestException, - ) as e: - self._log.debug("Error fetching album {}\n Error: {}", deezer_id, e) + album_data = self.fetch_data(self.album_url + deezer_id) + if album_data is None: return None - else: - if "error" in album_data: - self._log.debug( - "Deezer API error: {}", album_data["error"]["message"] - ) - return None contributors = album_data.get("contributors") if contributors is not None: artist, artist_id = self.get_artist(contributors) @@ -115,14 +121,13 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): "Invalid `release_date` returned " "by {} API: '{}'".format(self.data_source, release_date) ) - + tracks_obj = self.fetch_data(self.album_url + deezer_id + "/tracks") + if tracks_obj is None: + return None try: - tracks_obj = requests.get( - self.album_url + deezer_id + "/tracks", timeout=10 - ).json() tracks_data = tracks_obj["data"] - except requests.exceptions.ReadTimeout: - self._log.debug("Timeout fetching album tracks for {}", deezer_id) + except KeyError: + self._log.debug("Error fetching album tracks for {}", deezer_id) tracks_data = None if not tracks_data: return None @@ -206,42 +211,26 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): deezer_id = self._get_id("track", track_id, self.id_regex) if deezer_id is None: return None - try: - track_data = requests.get( - self.track_url + deezer_id, timeout=10 - ).json() - except requests.exception as e: - self._log.debug( - "Error fetching track {}\n Error: {}", deezer_id, e - ) + track_data = self.fetch_data(self.track_url + deezer_id) + if track_data is None: return None track = self._get_track(track_data) # Get album's tracks to set `track.index` (position on the entire # release) and `track.medium_total` (total number of tracks on # the track's disc). + album_tracks_obj = self.fetch_data( + self.album_url + str(track_data["album"]["id"]) + "/tracks" + ) + if album_tracks_obj is None: + return None try: - album_tracks_data = requests.get( - self.album_url + str(track_data["album"]["id"]) + "/tracks", - timeout=10, - ).json()["data"] - except ( - requests.exceptions.ConnectionError, - requests.exceptions.RequestException, - ) as e: + album_tracks_data = album_tracks_obj["data"] + except KeyError: self._log.debug( - "Error fetching album tracks for {} \n Error: {}", - track_data["album"]["id"], - e, + "Error fetching album tracks for {}", track_data["album"]["id"] ) return None - else: - if "error" in album_tracks_data: - self._log.debug( - "Deezer API error: {}", - album_tracks_data["error"]["message"], - ) - return None medium_total = 0 for i, track_data in enumerate(album_tracks_data, start=1): if track_data["disk_number"] == track.medium: @@ -318,11 +307,9 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self._log.debug("No deezer_track_id present for: {}", item) continue try: - rank = ( - requests.get(f"{self.track_url}{deezer_track_id}") - .json() - .get("rank") - ) + rank = self.fetch_data( + f"{self.track_url}{deezer_track_id}" + ).get("rank") self._log.debug( "Deezer track: {} has {} rank", deezer_track_id, rank ) From 2115f3107052e2d93100b347926caae3bb580439 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Sat, 25 Nov 2023 10:27:29 -0500 Subject: [PATCH 11/14] Fix comments --- beetsplug/deezer.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 291f539f4..1085e7ab5 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -69,17 +69,16 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): response.raise_for_status() data = response.json() except ( - requests.exceptions.ConnectionError, + requests.ConnectionError, requests.exceptions.RequestException, ) as e: self._log.debug("Error fetching data from {}\n Error: {}", url, e) return None - else: - if "error" in data: - self._log.debug( - "Deezer API error: {}", data["error"]["message"] - ) - return None + if "error" in data: + self._log.debug( + "Deezer API error: {}", data["error"]["message"] + ) + return None return data def album_for_id(self, album_id): From 1a77d9575b30a6d7e0b05814e3bdb6f8f1148ca7 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Sat, 25 Nov 2023 10:29:02 -0500 Subject: [PATCH 12/14] Formatting fixes --- beetsplug/deezer.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 1085e7ab5..29f42639b 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -75,9 +75,7 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): self._log.debug("Error fetching data from {}\n Error: {}", url, e) return None if "error" in data: - self._log.debug( - "Deezer API error: {}", data["error"]["message"] - ) + self._log.debug("Deezer API error: {}", data["error"]["message"]) return None return data From 7ffbd040a1a68ecf9154836f24a91e5eccc229e8 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Fri, 1 Dec 2023 08:43:14 -0500 Subject: [PATCH 13/14] Updated error handling --- beetsplug/deezer.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 29f42639b..7ecc140d6 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -68,10 +68,7 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): response = requests.get(url, timeout=10) response.raise_for_status() data = response.json() - except ( - requests.ConnectionError, - requests.exceptions.RequestException, - ) as e: + except requests.exceptions.RequestException as e: self._log.debug("Error fetching data from {}\n Error: {}", url, e) return None if "error" in data: From a4ce25fce0685db1339b2e154a17ee487ff237eb Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Fri, 1 Dec 2023 12:09:47 -0500 Subject: [PATCH 14/14] Changed debug logs to error --- beetsplug/deezer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/beetsplug/deezer.py b/beetsplug/deezer.py index 7ecc140d6..a2e16f59f 100644 --- a/beetsplug/deezer.py +++ b/beetsplug/deezer.py @@ -69,10 +69,10 @@ class DeezerPlugin(MetadataSourcePlugin, BeetsPlugin): response.raise_for_status() data = response.json() except requests.exceptions.RequestException as e: - self._log.debug("Error fetching data from {}\n Error: {}", url, e) + self._log.error("Error fetching data from {}\n Error: {}", url, e) return None if "error" in data: - self._log.debug("Deezer API error: {}", data["error"]["message"]) + self._log.error("Deezer API error: {}", data["error"]["message"]) return None return data