Skip to content

Releases: spotDL/spotify-downloader

v2.0.7 (Hotfix Release)

31 May 17:16
63b0597
Compare
Choose a tag to compare

Fixed

  • Patch PyTube so it correctly parses YouTube videos.
    (@ritiek) (#742)

v2.0.6

26 May 18:34
93ccc32
Compare
Choose a tag to compare

Fixed

  • Fix crash if YouTube search results contains live streams
    (@ritiek (#735)
  • Skip invalid tracks returned on playlist endpoint with Spotify Web-API
    (@ritiek) (#732)

v2.0.5

20 May 07:45
Compare
Choose a tag to compare

Fixed

  • In some cases when using -f to create sub-directories from metadata, where the
    full slugified download filename and the non-slugified download directory happen
    to differ, the download would fail. The download directory will now be derived from
    filename itself so that the sub-directory name always overlaps.
    (@ritiek) (2aa7dce)

Changed

v2.0.4

19 May 07:58
b13f12f
Compare
Choose a tag to compare

Fixed

  • Do not remove the currently downloading track from file on KeyboardInterrupt
    when --list is passed. (@ritiek) (#722)
  • Failure on invoking spotdl if FFmpeg isn't found. It should now warn about missing
    FFmpeg and move ahead without encoding. (@ritiek)
    (debe7ee)

v2.0.3 (Hotfix Release)

18 May 12:22
Compare
Choose a tag to compare

Fixed

  • Genius would sometimes return invalid lyrics. Retry a few times in such a case.

v2.0.2 (Hotfix Release)

18 May 09:47
Compare
Choose a tag to compare

Fixed

  • Skipping tracks with -m would crash.

v2.0.1 (Hotfix Release)

18 May 08:46
Compare
Choose a tag to compare

Fixed

  • -o m4a would always fail.

v2.0.0

17 May 23:27
Compare
Choose a tag to compare

Migrating from v1.2.6 to v2.0.0

For v2.0.0 to work correctly, you need to remove your previous config.yml due to
breaking changes in v2.0.0 (marked as [Breaking] in the below sections), new options being
added, and old ones being removed. You may want to first backup your old configuration for
reference. You can then install spotdl v2.0.0 and remove your current configuration by
running:

$ spotdl --remove-config

spotdl will automatically generate a new configuration file on the next run. You can
then replace the appropriate fields in the newly generated configuration file by
referring to your old configuration file.

All the below changes were made as a part of #690.

Added

  • -i now accepts automatic which would automatically select the best available stream
    irrespective of the format.
  • Added parameter -q (--quality {best,worst}) to select best (default) or worst audio quality.
  • Added -ne (--no-encode) to disable encoding.
  • Output to STDOUT with -f -.
  • Output to STDOUT with --write-to -.
  • Read tracks from STDIN in -s parameter.
  • Display a combined download & encode progress bar.

Changed

  • [Breaking] Tracks are now downloaded in the current working directory (instead of
    user's Music directory) by default.
  • [Breaking] Short for --album is now -a instead of -b.
  • [Breaking] Short for --all-albums is now -aa instead of -ab.
  • Allow "&" character in filenames.
  • [Breaking] Merge parameters -ff and -f to -f (--output-file).
  • [Breaking] Do not prefix formats with a dot when specifying -i and -o parameters
    Such as -o .mp3 is now written as -o mp3.
  • [Breaking] Search format now uses hyphen for word break instead of underscore. Such as
    -sf "{artist} - {track_name}" is now written as -sf "{artist} - {track-name}".
  • [Breaking] --write-successful and --skip is renamed to --write-successful-file and
    --skip-file respectively.
  • Partial re-write and internal API refactor.
  • Enhance debug log output readability.
  • Internally adapt to latest changes made in Spotipy library.
  • Switch to logging + coloredlogs instead of logzero. Our loggers weren't being
    setup properly with logzero.
  • Simplify checking for an downloaded already track. Previously it also analyzed metadata
    for the already downloaded track to determine whether to overwrite the already downloaded
    track, which caused unexpected behvaiours at times.
  • Codebase is now more modular making it easier to use spotdl in python scripts.
  • config.yml now uses underscores for separating between argument words instead of
    hyphens for better compatibility with argparse.

Optimized

  • Track download and encoding now happen parallely instead of sequentially making spotdl
    faster.
  • Lyrics and albumart are now downloaded in the background while the track is being downloaded
    instead of in the end. This reduces additional delays if we are to download them while applying
    metadata.
  • --write-m3u now only scrapes YouTube for required metadata making it much faster.
    Previously, it was also required to parse it via an external YouTube parsing library
    which was slow.
  • Switch to PyTube from Pafy. PyTube is faster and relies only on scraping.

Removed

  • [Breaking] Removed Avconv support. Only FFmpeg is supported now.
  • [Breaking] Removed --no-fallback-metadata parameter since not many people seem to find it useful.
  • [Breaking] Removed apparently misleading --download-only-metadata parameter.
  • [Breaking] Removed ability to set YouTube API key since we now use PyTube instead of Pafy, and
    PyTube does not require an API key.
  • [Breaking] As a side effect of above, --music-videos-only is also removed as this feature worked only
    with YouTube API.

v1.2.6 (Hotfix Release)

02 Mar 12:19
937ed6e
Compare
Choose a tag to compare

Fixed

Embed release date metadata only when available (follow up of #672) (@ritiek) (#674)

v1.2.5

02 Mar 11:30
9ecf957
Compare
Choose a tag to compare

Fixed

  • Skip crash when accessing YouTube-API-only fields in scrape mode (@ritiek) (#672)

Changed

  • Changed FFMPEG args to convert to 48k quality audio instead of the current 44k audio. (@AvinashReddy3108) (#667)