diff --git a/src/podcast.py b/src/podcast.py index ccd8a694..43dae318 100644 --- a/src/podcast.py +++ b/src/podcast.py @@ -1,3 +1,4 @@ +import os from typing import Optional from librespot.audio.decoders import VorbisOnlyAudioQuality @@ -49,10 +50,11 @@ def download_episode(episode_id) -> None: episode_id = EpisodeId.from_base62(episode_id) stream = ZSpotify.get_content_stream(episode_id, ZSpotify.DOWNLOAD_QUALITY) - create_download_directory(ZSpotify.get_config(ROOT_PODCAST_PATH) + extra_paths) + download_directory = os.path.dirname(__file__) + ZSpotify.get_config(ROOT_PODCAST_PATH) + extra_paths + create_download_directory(download_directory) total_size = stream.input_stream.size - with open(ZSpotify.get_config(ROOT_PODCAST_PATH) + extra_paths + filename + MusicFormat.OGG.value, + with open(download_directory + filename + MusicFormat.OGG.value, 'wb') as file, tqdm( desc=filename, total=total_size, @@ -65,6 +67,4 @@ def download_episode(episode_id) -> None: stream.input_stream.stream().read(ZSpotify.get_config(CHUNK_SIZE)))) # convert_audio_format(ROOT_PODCAST_PATH + - # extra_paths + filename + '.ogg') - - # related functions that do stuff with the spotify API + # extra_paths + filename + '.ogg') \ No newline at end of file diff --git a/src/track.py b/src/track.py index dc148b0d..96dcd6a8 100644 --- a/src/track.py +++ b/src/track.py @@ -53,6 +53,7 @@ def get_song_info(song_id) -> tuple[list[str], str, str, Any, Any, Any, Any, Any # noinspection PyBroadException def download_track(track_id: str, extra_paths='', prefix=False, prefix_value='', disable_progressbar=False) -> None: """ Downloads raw song audio from Spotify """ + download_directory = os.path.join(os.path.dirname(__file__), ZSpotify.get_config(ROOT_PATH), extra_paths) try: (artists, album_name, name, image_url, release_year, disc_number, track_number, scraped_song_id, is_playable) = get_song_info(track_id) @@ -63,11 +64,11 @@ def download_track(track_id: str, extra_paths='', prefix=False, prefix_value='', ) else f'{prefix_value} - {song_name}' if ZSpotify.get_config(SPLIT_ALBUM_DISCS): - filename = os.path.join(ZSpotify.get_config(ROOT_PATH), extra_paths, 'Disc ' + str( - disc_number) + '/' + song_name + '.' + ZSpotify.get_config(DOWNLOAD_FORMAT)) + filename = os.path.join(download_directory, f'Disc {disc_number}', + f'{song_name}.{ZSpotify.get_config(DOWNLOAD_FORMAT)}') else: - filename = os.path.join(ZSpotify.get_config(ROOT_PATH), extra_paths, - song_name + '.' + ZSpotify.get_config(DOWNLOAD_FORMAT)) + filename = os.path.join(download_directory, + f'{song_name}.{ZSpotify.get_config(DOWNLOAD_FORMAT)}') except Exception: print('### SKIPPING SONG - FAILED TO QUERY METADATA ###') else: @@ -84,7 +85,7 @@ def download_track(track_id: str, extra_paths='', prefix=False, prefix_value='', track_id = scraped_song_id track_id = TrackId.from_base62(track_id) stream = ZSpotify.get_content_stream(track_id, ZSpotify.DOWNLOAD_QUALITY) - create_download_directory(ZSpotify.get_config(ROOT_PATH) + extra_paths) + create_download_directory(download_directory) total_size = stream.input_stream.size with open(filename, 'wb') as file, tqdm( @@ -102,7 +103,7 @@ def download_track(track_id: str, extra_paths='', prefix=False, prefix_value='', if ZSpotify.get_config(DOWNLOAD_FORMAT) == 'mp3': convert_audio_format(filename) set_audio_tags(filename, artists, name, album_name, - release_year, disc_number, track_number) + release_year, disc_number, track_number) set_music_thumbnail(filename, image_url) if not ZSpotify.get_config(OVERRIDE_AUTO_WAIT):