devlocalhost / pyspodl

pyspodl - a spotify downloader using librespot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pyspodl - a spotify downloader using librespot

using the module librespot-python by kokarare1212

important

I may not work on pyspodl anymore. I dont want to work on this program anymore, im just tired of it. So please do not expect any new features. I will of course update the program if a bug or problem is found, I just will not add any features. Feel free to fork and add your own features

What is different from other downloaders?

Well, maybe nothing. pyspodl can only do these things: download tracks, albums and playlists in "high" (non-premium) and "very high" (premium account required) quality. It downloads them from Spotify, it does not use another source like some other programs do.

how to use

Requirements: python3, git. Make sure you have those and a linux PC/environment, then

  • Create an application from spotify dashboard, and copy the client ID and secret
  • Run this command: git clone https://github.com/devlocalhost/pyspodl
  • Paste the client id and secret into the config file, inside the "pyspodl" directory.
  • Run pip3 install git+https://github.com/kokarare1212/librespot-python.
  • You will also need Pillow for the album cover, mutagen for tags, and toml to read the config file: pip3 install Pillow mutagen toml.
  • Now you can use pyspodl like this: python3 pyspodl

examples

python pyspodl -l LINK

python pyspodl -l "LINK1 LINK2 LINK3"

python pyspodl -l ... -c /path/to/config.file

Or, check python -h

updating pyspodl

When there's a new update, you can simply run git pull in the directory where you cloned pyspodl.

the config file

Before you start using pyspodl, you need to fill out the config file.

config entries

  • email: your account email
  • password: your accounts password
  • token: used to send request to spotify api. you do not need to touch this.
  • client_id: used to get the token
  • client_secret: used to get the token
  • timeout: tells the program to wait x seconds before downloading the next song from a playlist or album (to avoid account bans, but I never had an account get banned by using my program).
  • premium_downloads: download tracks in higher quality. only for premium accounts.
  • download_path: the path to download the tracks
  • set_metadata: set tags for the tracks
  • track_format: the format the tracks will be saved in. check the config file for possible entries

config example

[account]
email = "" # your accounts email
password = "" # the password
token = "" # used to communicate with spotify api
client_id = "" # used to get the token
client_secret = "" # same thing as above

[downloading]
timeout = 2 # in seconds
premium_downloads = false # can be false or true
download_path = "" # download path for the tracks
set_metadata = true # can be false or true
track_format = "{artist}/{album}/{title}" # can be: artist, album, title, tracknumber, year
# the above format will save a song like this: download_path/Nas/Illmatic/The World Is Yours.ogg
#                                                         artist    album              title

help

Feel free to fork or make PR's (pull requests). If you're forking, please leave this repos link in your readme and kokarare1212's module repo link. If you have any problems/want to report a bug or request a feature, open an issue

About

pyspodl - a spotify downloader using librespot

License:MIT License


Languages

Language:Python 100.0%