zspotify/README.md

76 lines
3.5 KiB
Markdown
Raw Normal View History

2021-10-20 08:39:37 +02:00
# XSpotify
### A Spotify downloader needing only a python interpreter and ffmpeg.
<p align="center">
<img src="https://user-images.githubusercontent.com/12180913/138040605-c9d46e45-3830-4a4b-a7ac-c56bb0d76335.png">
</p>
2021-10-18 07:51:25 +02:00
2021-10-13 09:30:07 +02:00
```
2021-10-18 07:51:25 +02:00
Requirements:
2021-10-18 07:50:10 +02:00
Binaries
2021-10-18 07:51:25 +02:00
- Python 3.8 or greater
- ffmpeg*
2021-10-13 09:30:07 +02:00
2021-10-18 07:50:10 +02:00
Python packages:
2021-10-18 10:08:54 +02:00
- pip install -r requirements.txt
2021-10-18 07:51:25 +02:00
```
2021-10-18 07:53:17 +02:00
\*ffmpeg can be installed via apt for Debian-based distros or by downloading the binaries from [ffmpeg.org](https://ffmpeg.org) and placing them in your %PATH% in Windows.
2021-10-13 09:30:07 +02:00
2021-10-19 21:50:15 +02:00
- 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
2021-10-13 09:30:07 +02:00
- 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.
2021-10-19 02:18:53 +02:00
2021-10-19 21:21:15 +02:00
- 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.
2021-10-19 21:36:34 +02:00
- 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.
2021-10-19 02:44:00 +02:00
2021-10-19 21:36:34 +02:00
![image](https://user-images.githubusercontent.com/12180913/137978357-ee682c19-9a83-4820-82a1-7dad5230804c.png)
2021-10-19 02:44:00 +02:00
2021-10-19 02:18:53 +02:00
## **Changelog:**
2021-10-19 21:50:15 +02:00
**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.
2021-10-19 09:19:06 +02:00
**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.
2021-10-19 02:44:00 +02:00
**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.
2021-10-19 02:18:53 +02:00
**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.
2021-10-19 21:50:15 +02:00
- Added option to download all your liked songs into a sub-folder.
2021-10-19 02:18:53 +02:00
**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.