Package Details: spotdl 4.5.0-3

Git Clone URL: https://aur.archlinux.org/spotdl.git (read-only, click to copy)
Package Base: spotdl
Description: Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).
Upstream URL: https://github.com/spotDL/spotify-downloader
Keywords: download-music mp3 music playlists song song-lyrics spotify youtube-music
Licenses: MIT
Conflicts: python-spotdl
Provides: python-spotdl
Replaces: python-spotdl
Submitter: zoorat
Maintainer: zoorat (pekkarr, aminvakil)
Last Packager: aminvakil
Votes: 28
Popularity: 0.022611
First Submitted: 2024-03-31 19:44 (UTC)
Last Updated: 2026-06-23 05:41 (UTC)

Latest Comments

1 2 3 4 5 6 .. 11 Next › Last »

gesh commented on 2026-05-17 17:44 (UTC)

Guilty as charged :)

aminvakil commented on 2026-05-17 17:41 (UTC)

Yeah, and someone has just suggested me to adopt tls-client-git as well and fix it :) https://github.com/aminvakil/aur/issues/668

gesh commented on 2026-05-17 17:34 (UTC)

Understood. A regrettable state of affairs.

aminvakil commented on 2026-05-17 17:31 (UTC)

@gesh

Yes all of them are necessary, I do not like the state of project as well, each release is taking at least an hour of mine to find deps, fix them if necessary, adopt them, ...

gesh commented on 2026-05-17 17:23 (UTC) (edited on 2026-05-17 17:24 (UTC) by gesh)

I'm getting a bit lost trying to vet the new dependencies due to python-spotipyfree. Are all of them truly necessary? Some of the transitive deps (tls-client-git) look unmaintained.

Regardless, it's taking long enough for me that I'm giving up on this update for the moment -- I don't use spotdl enough for this to be worth it.

aminvakil commented on 2026-01-28 09:39 (UTC)

@dmsh python-spotipy is a dependency indeed and should be installed, it's not available in official repositories and should be installed from AUR.

dmsh commented on 2026-01-26 17:41 (UTC) (edited on 2026-01-26 17:42 (UTC) by dmsh)

spotdl=4.4.3

  File "/usr/bin/spotdl", line 5, in <module>
    from spotdl import console_entry_point
  File "/usr/lib/python3.14/site-packages/spotdl/__init__.py", line 13, in <module>
    from spotdl.console import console_entry_point
  File "/usr/lib/python3.14/site-packages/spotdl/console/__init__.py", line 5, in <module>
    from spotdl.console.entry_point import console_entry_point
  File "/usr/lib/python3.14/site-packages/spotdl/console/entry_point.py", line 12, in <module>
    from spotdl.console.download import download
  File "/usr/lib/python3.14/site-packages/spotdl/console/download.py", line 7, in <module>
    from spotdl.download.downloader import Downloader
  File "/usr/lib/python3.14/site-packages/spotdl/download/downloader.py", line 20, in <module>
    from spotdl.download.progress_handler import ProgressHandler
  File "/usr/lib/python3.14/site-packages/spotdl/download/progress_handler.py", line 23, in <module>
    from spotdl.types.song import Song
  File "/usr/lib/python3.14/site-packages/spotdl/types/song.py", line 11, in <module>
    from spotdl.utils.spotify import SpotifyClient
  File "/usr/lib/python3.14/site-packages/spotdl/utils/spotify.py", line 16, in <module>
    from spotipy import Spotify
ModuleNotFoundError: No module named 'spotipy

Package 'python-spotipy=2.25.2' installed

smiley commented on 2025-11-26 14:31 (UTC)

=============================== FAILURES ================================ _____ test_synced_only ________

def test_synced_only():
  lrc = _test_provider("Lrclib", synced_only=True)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests.py:51:


provider = 'Lrclib', kwargs = {'synced_only': True}, lrc = None @py_assert3 = False @py_format5 = 'assert False\n{False = isinstance(None, str)\n}'

def _test_provider(provider: str, **kwargs):
    lrc = syncedlyrics.search(search_term=q, providers=[provider], **kwargs)
    logging.debug(lrc)
  assert isinstance(lrc, str)

E assert False E + where False = isinstance(None, str)

tests.py:15: AssertionError --------------------------- Captured log call --------------------------- ERROR syncedlyrics:init.py:67 An error occurred while searching for an LRC on Lrclib ERROR syncedlyrics:init.py:68 ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) ======================== short test summary info ======================== FAILED tests.py::test_synced_only - assert False ===================== 1 failed, 7 passed in 35.77s ====================== ==> ERROR: A failure occurred in check(). Aborting... error: failed to build 'python-syncedlyrics-1.0.1-1': error: can't build spotdl-4.4.3-1, deps not satisfied: python-syncedlyrics error: packages failed to build: python-syncedlyrics-1.0.1-1 spotdl-4.4.3-1

harre commented on 2025-10-24 23:35 (UTC)

Please add annotated-doc as dependancy:

$ spotdl    
Traceback (most recent call last):
  File "/usr/bin/spotdl", line 5, in <module>
    from spotdl import console_entry_point
  File "/usr/lib/python3.13/site-packages/spotdl/__init__.py", line 13, in <module>
    from spotdl.console import console_entry_point
  File "/usr/lib/python3.13/site-packages/spotdl/console/__init__.py", line 5, in <module>
    from spotdl.console.entry_point import console_entry_point
  File "/usr/lib/python3.13/site-packages/spotdl/console/entry_point.py", line 17, in <module>
    from spotdl.console.web import web
  File "/usr/lib/python3.13/site-packages/spotdl/console/web.py", line 12, in <module>
    from fastapi import Depends, FastAPI
  File "/usr/lib/python3.13/site-packages/fastapi/__init__.py", line 7, in <module>
    from .applications import FastAPI as FastAPI
  File "/usr/lib/python3.13/site-packages/fastapi/applications.py", line 16, in <module>
    from annotated_doc import Doc
ModuleNotFoundError: No module named 'annotated_doc'

mo0zi commented on 2025-10-23 06:51 (UTC)

Hi

yay -S spotdl

====================================================================================== test session starts =======================================================================================
platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0
rootdir: /home/mozi/.cache/yay/python-syncedlyrics/src/syncedlyrics-1.0.1
configfile: pyproject.toml
plugins: anyio-4.11.0
collected 8 items                                                                                                                                                                                

tests.py ..F.....                                                                                                                                                                          [100%]

============================================================================================ FAILURES ============================================================================================
__________________________________________________________________________________ test_musixmatch_translation ___________________________________________________________________________________

    def test_musixmatch_translation():
        lrc = _test_provider("Musixmatch", lang="es")
        # not only testing there is a result, but the translation is also included
>       assert syncedlyrics.utils.has_translation(lrc)
E       assert False
E        +  where False = <function has_translation at 0x7fbec6584680>("[00:01.03] My Invisalign has funny\n(Mi Invisalign tiene un aspecto divertido)\n[00:01.78] I have taken out my Invisa...:05.32] I'm, I'm a bad guy\n(Soy un chico malo) (bad guy, bad guy)\n[03:10.18] I'm a bad—\n(Soy un malo-)\n[03:10.85] ")
E        +    where <function has_translation at 0x7fbec6584680> = <module 'syncedlyrics.utils' from '/home/mozi/.cache/yay/python-syncedlyrics/src/syncedlyrics-1.0.1/syncedlyrics/utils.py'>.has_translation
E        +      where <module 'syncedlyrics.utils' from '/home/mozi/.cache/yay/python-syncedlyrics/src/syncedlyrics-1.0.1/syncedlyrics/utils.py'> = syncedlyrics.utils

tests.py:30: AssertionError
==================================================================================== short test summary info =====================================================================================
FAILED tests.py::test_musixmatch_translation - assert False
================================================================================== 1 failed, 7 passed in 13.44s ==================================================================================
==> ERROR: A failure occurred in check().
    Aborting...
 -> Failed to install layer, rolling up to next layer.error:error making: python-syncedlyrics - exit status 4

Thanks for help!