From 23f7c8420bd501577f217b01548cdcf766b483b9 Mon Sep 17 00:00:00 2001 From: nathom Date: Sat, 17 Apr 2021 13:41:36 -0700 Subject: [PATCH] Fix bugs related to Tidal single tracks --- streamrip/config.py | 1 + streamrip/metadata.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/streamrip/config.py b/streamrip/config.py index f3fab8b..523d1dd 100644 --- a/streamrip/config.py +++ b/streamrip/config.py @@ -169,6 +169,7 @@ class Config: creds = dict(self.file["tidal"]) logger.debug(creds) del creds["quality"] # should not be included in creds + del creds['download_videos'] return creds @property diff --git a/streamrip/metadata.py b/streamrip/metadata.py index 83bba30..9a1d663 100644 --- a/streamrip/metadata.py +++ b/streamrip/metadata.py @@ -71,6 +71,7 @@ class TrackMetadata: self.encoder = None self.compilation = None self.cover = None + self.tracktotal = None self.tracknumber = None self.discnumber = None self.disctotal = None @@ -156,7 +157,7 @@ class TrackMetadata: elif self.__source == "tidal": self.album = resp.get("title") - self.tracktotal = resp.get("numberOfTracks") + self.tracktotal = resp.get("numberOfTracks", 1) # genre not returned by API self.date = resp.get("releaseDate") @@ -177,8 +178,10 @@ class TrackMetadata: } ) self.streamable = resp.get("allowStreaming", False) - self.quality = TIDAL_Q_MAP[resp["audioQuality"]] - self.bit_depth = 24 if self.quality == 3 else 16 + if resp.get("audioQuality"): # for album entries in single tracks + self.quality = TIDAL_Q_MAP[resp["audioQuality"]] + + self.bit_depth = 24 if self.get('quality', False) == 3 else 16 self.sampling_rate = 44100 elif self.__source == "deezer": @@ -244,8 +247,6 @@ class TrackMetadata: self.tracknumber = track.get("track_position", 1) self.discnumber = track.get("disk_number") self.artist = track.get("artist", {}).get("name") - if track.get("album"): - self.add_album_meta(track["album"]) elif self.__source == "soundcloud": self.title = track["title"].strip() @@ -261,6 +262,9 @@ class TrackMetadata: else: raise ValueError(self.__source) + if track.get("album"): + self.add_album_meta(track["album"]) + def _mod_title(self, version, work): if version is not None: self.title = f"{self.title} ({version})"