From 27d6c791ce7c0d9601fe28adfac922637202749e Mon Sep 17 00:00:00 2001 From: shirt <2660574+shirt-dev@users.noreply.github.com> Date: Tue, 26 Oct 2021 16:14:31 -0400 Subject: [PATCH] Fix audio copy, set bitrate based on account type if not in config --- zspotify/const.py | 3 +-- zspotify/track.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/zspotify/const.py b/zspotify/const.py index 3708c58..8a0df9e 100644 --- a/zspotify/const.py +++ b/zspotify/const.py @@ -122,8 +122,7 @@ CONFIG_DEFAULT_SETTINGS = { 'ROOT_PATH': '../ZSpotify Music/', 'ROOT_PODCAST_PATH': '../ZSpotify Podcasts/', 'SKIP_EXISTING_FILES': True, - 'DOWNLOAD_FORMAT': 'mp3', - 'BITRATE': '160k', + 'DOWNLOAD_FORMAT': 'ogg', 'FORCE_PREMIUM': False, 'ANTI_BAN_WAIT_TIME': 1, 'OVERRIDE_AUTO_WAIT': False, diff --git a/zspotify/track.py b/zspotify/track.py index 87452de..65ad590 100644 --- a/zspotify/track.py +++ b/zspotify/track.py @@ -2,6 +2,7 @@ import os import time from typing import Any, Tuple, List +from librespot.audio.decoders import AudioQuality from librespot.metadata import TrackId from ffmpy import FFmpeg from tqdm import tqdm @@ -129,13 +130,22 @@ def convert_audio_format(filename) -> None: file_codec = CODEC_MAP.get(download_format, "copy") if file_codec != 'copy': bitrate = ZSpotify.get_config(BITRATE) + if not bitrate: + if ZSpotify.DOWNLOAD_QUALITY == AudioQuality.VERY_HIGH: + bitrate = '320k' + else: + bitrate = '160k' else: bitrate = None + output_params = ['-c:a', file_codec] + if bitrate: + output_params += ['-b:a', bitrate] + ff_m = FFmpeg( global_options=['-y', '-hide_banner', '-loglevel error'], inputs={temp_filename: None}, - outputs={filename: ['-c:a', file_codec] + ['-b:a', bitrate] if bitrate else []} + outputs={filename: output_params} ) ff_m.run() if os.path.exists(temp_filename):