From 41c4ef4f794f54cd741977d251c1a00f436042b1 Mon Sep 17 00:00:00 2001 From: nathom Date: Mon, 5 Apr 2021 15:41:33 -0700 Subject: [PATCH] =?UTF-8?q?Fix=20bug=20where=20mp3=20and=20=E2=80=94qualit?= =?UTF-8?q?y=20doesn=E2=80=99t=20work?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + streamrip/cli.py | 9 +++++---- streamrip/downloader.py | 9 ++++++++- streamrip/metadata.py | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 7b3e3d5..7de602c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ test.py /Downloads /Street Runner.mp3 /StreamripDownloads +/ADDYS.wav diff --git a/streamrip/cli.py b/streamrip/cli.py index da0d178..29991aa 100644 --- a/streamrip/cli.py +++ b/streamrip/cli.py @@ -58,13 +58,14 @@ def cli(ctx, **kwargs): config.session["conversion"]["enabled"] = True config.session["conversion"]["codec"] = kwargs["convert"] if kwargs["quality"] is not None: - if kwargs["quality"] not in range(5): + quality = int(kwargs['quality']) + if quality not in range(5): click.secho("Invalid quality", fg="red") return - config.session["qobuz"]["quality"] = kwargs["quality"] - config.session["tidal"]["quality"] = kwargs["quality"] - config.session["deezer"]["quality"] = kwargs["quality"] + config.session["qobuz"]["quality"] = quality + config.session["tidal"]["quality"] = quality + config.session["deezer"]["quality"] = quality core = MusicDL(config) diff --git a/streamrip/downloader.py b/streamrip/downloader.py index b844622..1072c16 100644 --- a/streamrip/downloader.py +++ b/streamrip/downloader.py @@ -1,4 +1,5 @@ import logging +from pprint import pprint import os import re import shutil @@ -671,6 +672,7 @@ class Album(Tracklist): def load_meta(self): assert hasattr(self, "id"), "id must be set to load metadata" self.meta = self.client.get(self.id, media_type="album") + pprint(self.meta) # update attributes based on response for k, v in self._parse_get_resp(self.meta, self.client).items(): @@ -695,6 +697,11 @@ class Album(Tracklist): :rtype: dict """ if client.source == "qobuz": + if resp.get("maximum_sampling_rate", False): + sampling_rate = resp['maximum_sampling_rate'] * 1000 + else: + sampling_rate = None + return { "id": resp.get("id"), "title": resp.get("title"), @@ -709,7 +716,7 @@ class Album(Tracklist): resp.get("maximum_bit_depth"), resp.get("maximum_sampling_rate") ), "bit_depth": resp.get("maximum_bit_depth"), - "sampling_rate": resp.get("maximum_sampling_rate") * 1000, + "sampling_rate": sampling_rate, "tracktotal": resp.get("tracks_count"), } elif client.source == "tidal": diff --git a/streamrip/metadata.py b/streamrip/metadata.py index da64d2c..12c2572 100644 --- a/streamrip/metadata.py +++ b/streamrip/metadata.py @@ -330,7 +330,7 @@ class TrackMetadata: else: text = getattr(self, k) - if text is not None: + if text is not None and v is not None: yield (v.__name__, v(encoding=3, text=text)) def __mp4_tags(self) -> Tuple[str, str]: