diff --git a/CHANGES.md b/CHANGES.md index 6d55bbe..c0962c7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,24 +7,28 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. The release dates mentioned follow the format `DD-MM-YYYY`. ## [Unreleased] + +## [2.0.4] - 19-05-2020 ### Fixed +- Do not remove the currently downloading track from file on `KeyboardInterrupt` + when `--list` is passed. ([@ritiek](https://github.com/ritiek/spotify-downloader)) (#722) - Failure on invoking spotdl if FFmpeg isn't found. It should now warn about missing - FFmpeg and move ahead without encoding. [@ritiek](https://github.com/ritiek) + FFmpeg and move ahead without encoding. ([@ritiek](https://github.com/ritiek)) (debe7ee9024e2ec65eed9935460c62f4eecd03ea) ## [2.0.3] (Hotfix Release) - 18-05-2020 ### Fixed - Genius would sometimes return invalid lyrics. Retry a few times in such a case. - [@ritiek](https://github.com/ritiek) (29b1f31a2622f749df83c3072c4cbb22615bff95) + ([@ritiek](https://github.com/ritiek)) (29b1f31a2622f749df83c3072c4cbb22615bff95) ## [2.0.2] (Hotfix Release) - 18-05-2020 ### Fixed -- Skipping tracks with `-m` would crash. [@ritiek](https://github.com/ritiek) +- Skipping tracks with `-m` would crash. ([@ritiek](https://github.com/ritiek)) (bbe43da191093302726ddc9a48f0fa0a55be6fb6) ## [2.0.1] (Hotfix Release) - 18-05-2020 ### Fixed -- `-o m4a` would always fail. [@ritiek](https://github.com/ritiek) +- `-o m4a` would always fail. ([@ritiek](https://github.com/ritiek)) (cd5f224e379f3feefc95e338ec50674f976e2e89) ## [2.0.0] - 18-05-2020 diff --git a/spotdl/command_line/core.py b/spotdl/command_line/core.py index 1aef002..24b1fbf 100644 --- a/spotdl/command_line/core.py +++ b/spotdl/command_line/core.py @@ -321,7 +321,7 @@ class Spotdl: def download_tracks_from_file(self, path): logger.info( - "Checking and removing any duplicate tracks in {}.".format(path) + 'Checking and removing any duplicate tracks in "{}".'.format(path) ) tracks = spotdl.util.readlines_from_nonbinary_file(path) tracks = self.strip_and_filter_duplicates(tracks) @@ -346,12 +346,12 @@ class Spotdl: yt_search_format=self.arguments["search_format"], yt_manual=self.arguments["manual"] ) + log_track_query = '{position}. Downloading "{track}"'.format( + position=position, + track=track + ) + logger.info(log_track_query) try: - log_track_query = '{position}. Downloading "{track}"'.format( - position=position, - track=track - ) - logger.info(log_track_query) metadata = search_metadata.on_youtube_and_spotify() self.download_track_from_metadata(metadata) except (urllib.request.URLError, TypeError, IOError) as e: @@ -363,6 +363,11 @@ class Spotdl: tracks.append(track) except (NoYouTubeVideoFoundError, NoYouTubeVideoMatchError) as e: logger.error("{err}".format(err=e.args[0])) + except KeyboardInterrupt: + # The current track hasn't been downloaded completely. + # Make sure we continue from here the next the program runs. + tracks.insert(0, track) + raise else: if self.arguments["write_successful_file"]: with open(self.arguments["write_successful_file"], "a") as fout: diff --git a/spotdl/version.py b/spotdl/version.py index a33f3fe..de5baf7 100644 --- a/spotdl/version.py +++ b/spotdl/version.py @@ -1,2 +1,2 @@ -__version__ = "2.0.3" +__version__ = "2.0.4"