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