From 0a7250eff254c131943164dd1697cf529e9c13bd Mon Sep 17 00:00:00 2001 From: Constantin Gierczak--Galle Date: Sat, 22 Mar 2025 17:45:49 +0100 Subject: [PATCH] fix: use configured lossy_bitrate --- streamrip/converter.py | 18 +++++++++++++----- streamrip/media/track.py | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/streamrip/converter.py b/streamrip/converter.py index aa4aa2aa..71649ed6 100644 --- a/streamrip/converter.py +++ b/streamrip/converter.py @@ -176,6 +176,10 @@ class FLAC(Converter): container = "flac" lossless = True + def get_quality_arg(_rate: int): -> str + """Mock function. Lossless codecs do not need extra quality arguments.""" + return "" + class LAME(Converter): """Class for libmp3lame converter. @@ -205,8 +209,8 @@ class LAME(Converter): container = "mp3" default_ffmpeg_arg = "-q:a 0" # V0 - def get_quality_arg(self, rate): - return self._bitrate_map[rate] + def get_quality_arg(rate: int): -> str + return LAME._bitrate_map[rate] class ALAC(Converter): @@ -217,6 +221,10 @@ class ALAC(Converter): container = "m4a" lossless = True + def get_quality_arg(_rate): + """Mock function. Lossless codecs do not need extra quality arguments.""" + return "" + class Vorbis(Converter): """Class for libvorbis converter. @@ -232,7 +240,7 @@ class Vorbis(Converter): container = "ogg" default_ffmpeg_arg = "-q:a 6" # 160, aka the "high" quality profile from Spotify - def get_quality_arg(self, rate: int) -> str: + def get_quality_arg(rate: int) -> str: arg = "qscale:a %d" if rate <= 128: return arg % (rate / 16 - 4) @@ -256,7 +264,7 @@ class OPUS(Converter): container = "opus" default_ffmpeg_arg = "-b:a 128k" # Transparent - def get_quality_arg(self, _: int) -> str: + def get_quality_arg(_rate: int) -> str: return "" @@ -274,7 +282,7 @@ class AAC(Converter): container = "m4a" default_ffmpeg_arg = "-b:a 256k" - def get_quality_arg(self, _: int) -> str: + def get_quality_arg(_: int) -> str: return "" diff --git a/streamrip/media/track.py b/streamrip/media/track.py index b09cfa13..540f80c0 100644 --- a/streamrip/media/track.py +++ b/streamrip/media/track.py @@ -90,6 +90,7 @@ async def _convert(self): sampling_rate=c.sampling_rate, bit_depth=c.bit_depth, remove_source=True, # always going to delete the old file + ffmpeg_arg = engine_class.get_quality_arg(c.lossy_bitrate) ) await engine.convert() self.download_path = engine.final_fn # because the extension changed