mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 09:50:16 +00:00
Write to {filename}.temp when downloading
This commit is contained in:
@@ -307,7 +307,7 @@ class Arguments:
|
||||
|
||||
if self.parsed.output_file == "-" and self.parsed.no_metadata is False:
|
||||
logger.warn(
|
||||
"Cannot write metadata when target file is STDOUT. Pass "
|
||||
"Cannot write metadata when target is STDOUT. Pass "
|
||||
"--no-metadata explicitly to hide this warning."
|
||||
)
|
||||
self.parsed.no_metadata = True
|
||||
|
||||
@@ -60,7 +60,6 @@ class Spotdl:
|
||||
client_secret=self.arguments["spotify_client_secret"]
|
||||
)
|
||||
spotify_tools = SpotifyHelpers()
|
||||
# youtube_tools.set_api_key()
|
||||
logger.debug("Received arguments:\n{}".format(self.arguments))
|
||||
|
||||
if self.arguments["song"]:
|
||||
@@ -209,6 +208,11 @@ class Spotdl:
|
||||
s, spaces_to_underscores=self.arguments["no_spaces"]
|
||||
)
|
||||
)
|
||||
download_to_stdout = filename == "-"
|
||||
if download_to_stdout:
|
||||
temp_filename = filename
|
||||
else:
|
||||
temp_filename = "{filename}.temp".format(filename=filename)
|
||||
|
||||
to_skip_download = self.arguments["dry_run"]
|
||||
if os.path.isfile(filename):
|
||||
@@ -227,18 +231,21 @@ class Spotdl:
|
||||
|
||||
logger.info('Downloading to "{filename}"'.format(filename=filename))
|
||||
if Encoder is None:
|
||||
track.download(stream, filename)
|
||||
track.download(stream, temp_filename)
|
||||
else:
|
||||
track.download_while_re_encoding(
|
||||
stream,
|
||||
filename,
|
||||
temp_filename,
|
||||
target_encoding=output_extension,
|
||||
encoder=Encoder()
|
||||
)
|
||||
|
||||
if not self.arguments["no_metadata"]:
|
||||
track.metadata["lyrics"] = track.metadata["lyrics"].join()
|
||||
self.apply_metadata(track, filename, output_extension)
|
||||
self.apply_metadata(track, temp_filename, output_extension)
|
||||
|
||||
if not download_to_stdout:
|
||||
os.rename(temp_filename, filename)
|
||||
|
||||
def apply_metadata(self, track, filename, encoding):
|
||||
logger.info("Applying metadata")
|
||||
|
||||
Reference in New Issue
Block a user