spotify-downloader: pip does not install latest version of spotdl

System OS

Windows

Python Version

3.11 (CPython)

Install Source

pip / PyPi

Install version / commit hash

Version: 3.9.6

Expected Behavior vs Actual Behavior

keeps installing Version: 3.9.6 upgrading the package does nothing

Steps to reproduce - Ensure to include actual links!

1.pip install spotdl 2.spotdl --version

Traceback

usage: spotdl [-h] [--version] [--debug-termination] [--output OUTPUT]
              [--output-format {opus,m4a,ogg,mp3,wav,flac}] [--user-auth] [--use-youtube]
              [--lyrics-provider {genius,musixmatch}] [-p PATH_TEMPLATE] [-f FFMPEG] [--ignore-ffmpeg-version]
              [--download-threads DOWNLOAD_THREADS] [--search-threads SEARCH_THREADS] [--generate-m3u]
              query [query ...]
spotdl: error: the following arguments are required: query

#notice there is not an install ffmpeg option

Other details

No response

About this issue

  • Original URL
  • State: closed
  • Created 7 months ago
  • Comments: 18 (5 by maintainers)

Most upvoted comments

Explanation

Finally, I am able to replicate this issue. If anyone wants to replicate the issue, then install python 3.12.0 with pip 23.3.1. I tried the following.

  • Installed spotdl older version using pip install spotdl==3.9.6 and it installed perfectly.
  • Tried to upgrade it to latest using pip install --upgrade spotdl and it did NOT got upgraded to the latest version of spotdl.
  • I unintalled and tried to install nomally i.e. pip install spotdl but it also installed the version 3.9.6.
  • So, I tried to force install the latest version using pip install spotdl==4.2.2 and it gave the following error message.
Code\Playground\temp via  v3.12.0 (.venv) took 7s
❯ pip install spotdl==4.2.2
ERROR: Ignored the following yanked versions: 3.1.0, 3.1.1, 3.1.3
ERROR: Ignored the following versions that require a different python version: 4.0.0 Requires-Python >=3.7,<=3.11; 4.0.0rc1 Requires-Python >=3.7,<3.11; 4.0.0rc2 Requires-Python >=3.7,<3.11; 4.0.0rc3 Requires-Python >=3.7,<3.11; 4.0.0rc4 Requires-Python >=3.7,<3.11; 4.0.0rc5 Requires-Python >=3.7,<=3.11; 4.0.1 Requires-Python >=3.7,<=3.11; 4.0.2 Requires-Python >=3.7,<=3.11; 4.0.3 Requires-Python >=3.7,<=3.11; 4.0.4 Requires-Python >=3.7,<=3.11; 4.0.5 Requires-Python >=3.7,<=3.11; 4.0.6 Requires-Python >=3.7,<=3.11; 4.0.7 Requires-Python >=3.7.2,<3.12; 4.1.0 Requires-Python >=3.7.2,<3.12; 4.1.10 Requires-Python >=3.7.2,<3.12; 4.1.11 Requires-Python >=3.7.2,<3.12; 4.1.2 Requires-Python >=3.7.2,<3.12; 4.1.3 Requires-Python >=3.7.2,<3.12; 4.1.4 Requires-Python >=3.7.2,<3.12; 4.1.5 Requires-Python >=3.7.2,<3.12; 4.1.6 Requires-Python >=3.7.2,<3.12; 4.1.7 Requires-Python >=3.7.2,<3.12; 4.1.8 Requires-Python >=3.7.2,<3.12; 4.1.9 Requires-Python >=3.7.2,<3.12; 4.2.0 Requires-Python >=3.7.2,<3.12; 4.2.1 Requires-Python >=3.8,<3.12; 4.2.2 Requires-Python >=3.8,<3.12
ERROR: Could not find a version that satisfies the requirement spotdl==4.2.2 (from versions: 0.9.1, 0.9.2, 0.9.3, 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 3.1.2, 3.1.4, 3.2.1, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.4.0, 3.4.1, 3.4.2, 3.5.0, 3.5.1, 3.5.2, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.7.0, 3.7.1, 3.7.2, 3.8.0, 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.9.5, 3.9.6)
ERROR: No matching distribution found for spotdl==4.2.2

Judging by this, I can say with certainity that it’s the compatibility issue with the python 3.12.0.

I tried building it manually as instructed in the README section of the repo but it also didn’t work as I got the following error while executing the command poetry install

Current Python version (3.12.0) is not allowed by the project (>=3.8,<3.12).  
Please change python executable via the "env use" command.

Solution

So, the work around is to either downgrade the python version to an older one or you may use the executable shared in the assets.

Meanwhile, I will fork the repo and try to fix it.

Progress Update

Edit 1: There is dependency conflicts that can’t be resolved unless those packages catch up to the latest. Got the following while manually setting up the project and executed pip install poetry

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spotdl 4.2.2 requires platformdirs<5.0.0,>=4.0.0, but you have platformdirs 3.11.0 which is incompatible.
spotdl 4.2.2 requires rapidfuzz==2.15.1, but you have rapidfuzz 3.5.2 which is incompatible.
syncedlyrics 0.5.0 requires rapidfuzz<3.0.0,>=2.13.2, but you have rapidfuzz 3.5.2 which is incompatible.

So, the work around is to either downgrade the python version to an older one or you may use the executable shared in the assets.

This also seems to work: pip install -U --force --ignore-requires-python spotdl