Skip to content

Pip fastapi update causes spotdl to not work #2397

@EthanWellner-dev

Description

@EthanWellner-dev

System OS

Windows

Python Version

3.9 (CPython)

Install Source

pip / PyPi

Install version / commit hash

v4.2.11

Expected Behavior vs Actual Behavior

When updating fastapi, I get this error: 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.11 requires fastapi<0.104.0,>=0.103.0, but you have fastapi 0.115.13 which is incompatible.

before updating fastapi, this command worked: spotdl download https://www.youtube.com/watch?v=nN7yAxMOVok

But now, it comes up with multiple errors:

Steps to reproduce - Ensure to include actual links!

pip install fastapi --upgrade

Traceback

navigation.py:117 in nav                 
│                                                                                               
│   116 │   │   for k in items:                                                                 
│ ❱ 117 │   │   │   root = root[k]                                                              
│   118 │   except (KeyError, IndexError, TypeError) as e:                
KeyError: 'header'


runpy. │
│ py:197 in _run_module_as_main                                                                  │
│                                                                                                │
│   196 │   │   sys.argv[0] = mod_spec.origin                                                    │
│ ❱ 197 │   return _run_code(code, main_globals, None,                                           │
│   198 │   │   │   │   │    "__main__", mod_spec)


runpy. │
│ py:87 in _run_code                                                                             │
│                                                                                                │
│    86 │   │   │   │   │      __spec__ = mod_spec)                                              │
│ ❱  87 │   exec(code, run_globals)                                                              │
│    88 │   return run_globals                                                                   │
│                                                                                                │
│ in <module>:7           

spotdl\console\entry_point.py:53 in                 │
│ console_entry_point                                                                            │
│                                                                                                │
│    52 │   else:                                                                                │
│ ❱  53 │   │   entry_point()                                                                    │
│    54         

\entry_point.py:100 in entry_point    │
│                                                                                                │
│    99 │   if "youtube-music" in downloader_settings["audio_providers"]:                        │
│ ❱ 100 │   │   if not check_ytmusic_connection():                                               │
│   101 │   │   │   raise DownloaderError(                     

                   spotdl\utils\downloader.py:21 in                    │
│ check_ytmusic_connection                                                                       │
│                                                                                                │
│   20 │   ytm = YouTubeMusic()                                                                  │
│ ❱ 21 │   test_results = ytm.get_results("a")                                                   │
│   22 │   if len(test_results) == 0:            

audio\ytmusic.py:57 in get_results │
│                                                                                                │
│   56 │   │                                                                                     │
│ ❱ 57 │   │   search_results = self.client.search(search_term, **kwargs)                        │
│   58                                                                    

                      search.py:213 in search           │
│                                                                                                │
│   212 │   │   │   if "musicCardShelfRenderer" in res:                                          │
│ ❱ 213 │   │   │   │   top_result = parse_top_result(                                           │
│   214 │   │   │   │   │   res["musicCardShelfRenderer"], self.parser.get_search_result_types() 

And more.

Other details

As the pip error shows, the current version of spotdl probobly isn't compatible with the new version of fastapi.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugUnexpected problem or unintended behavior that needs to be fixed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions