42b7c1b
Go to file
Footsiefat 4b79296100
Update README.md
2021-10-20 08:50:15 +13:00
.gitignore Convert function now export to the correct bitrate 2021-10-18 13:04:27 +02:00
README.md Update README.md 2021-10-20 08:50:15 +13:00
requirements.txt removed because librespot-python added it to their dep list 2021-10-20 08:46:04 +13:00
zspotify.py Downloads entire track at once now 2021-10-20 08:42:32 +13:00

README.md

zspotify

Spotify song downloader without injecting into the windows client image

Requirements:

Binaries

- Python 3.8 or greater
- ffmpeg*

Python packages:

- pip install -r requirements.txt

*ffmpeg can be installed via apt for Debian-based distros or by downloading the binaries from ffmpeg.org and placing them in your %PATH% in Windows.

  • Use "-p" or "--playlist" to download a saved playlist from your account

  • Use "-ls" or "--liked-songs" to download all the liked songs from your account

  • Supply the URL or ID of a Track/Album/Playlist as an argument to download it

  • Don't supply any arguments and it will give you a search input field to find and download a specific Track/Album/Playlist via the query.

  • Change the MUSIC_FORMAT variable in zspotify.py to "ogg" if you rather that over "mp3"

  • Change the FORCE_PREMIUM in zspotify.py to True if it is not automatically detecting your premium account.

  • Change the RAW_AUDIO_AS_IS in zspotify.py to True if you wish to only save the raw audio stream without any re-encoding.

image

Changelog:

v1.6 (20 Oct 2021):

  • Added Pillow to requirements.txt.
  • Removed websocket-client from requirements.txt because librespot-python added it to their dependency list.
  • Made it hide your password when you type it in.
  • Added manual override to force premium quality if zspotify cannot auto detect it.
  • Added option to just download the raw audio with no re-encoding at all.
  • Added Shebang line so it runs smoother on Linux.
  • Made it download the entire track at once now so it is more efficent and fixed a bug users encountered.

v1.5 (19 Oct 2021):

  • Made downloading a lot more efficient and probably faster.
  • Made the sanitizer more efficient.
  • Formatted and linted all the code.

v1.4 (19 Oct 2021):

  • Added option to encode the downloaded tracks in the "ogg" format rather than "mp3".
  • Added small improvement to sanitation function so it catches another edge case.

v1.3 (19 Oct 2021):

  • Added auto detection about if the current account is premium or not. If it is a premium account it automatically sets the quality to VERY_HIGH and otherwise HIGH if we are using a free account.
  • Fixed conversion function so it now exports to the correct bitrate.
  • Added sanitation to playlist names to help catch an edge case crash.
  • Added option to download all your liked songs into a sub-folder.

v1.2 (18 Oct 2021):

  • Added .gitignore.
  • Replaced dependency list in README.md with a proper requirements.txt file.
  • Improved the readability of README.md.

v1.1 (16 Oct 2021):

  • Added try/except to help catch crashes where a very few specific tracks would crash either the downloading or conversion part.

v1.0 (14 Oct 2021):

  • Ajusted some functions so it runs again with the newer version of librespot-python.
  • Improved my sanitization function so it catches more edge cases.
  • Fixed an issue where sometimes spotify wouldnt provide a song id for a track we are trying to download. It will now detect and skip these invalid tracks.
  • Added additional check for tracks that cannot be "played" due to licence(and similar) issues. These tracks will be skipped.

v0.9 (13 Oct 2021):

  • Initial upload, needs adjustments to get working again after backend rewrite.