Package Details: spotdl 4.4.3-1

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.65
First Submitted: 2024-03-31 19:44 (UTC)
Last Updated: 2025-10-08 17:08 (UTC)

Latest Comments

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

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!

aminvakil commented on 2025-08-13 15:22 (UTC)

@gesh Thanks for your suggestion, I removed python-{poetry-core,wheel} from makedepends.

Also pkgrel did not get bumped because it doesn't change the final package.

gesh commented on 2025-08-12 18:06 (UTC)

It turns out python-poetry-core is unnecessary -- it's used upstream to manage their dependencies, but PEP517 means that just the build framework (python-{build,installer}) and the build backend (python-hatchling) are necessary. (python-wheel isn't necessary either nowadays)

mo0zi commented on 2025-05-06 21:11 (UTC) (edited on 2025-05-06 21:11 (UTC) by mo0zi)

Hi!

yay -S spotdl
...
Packages (1) spotdl-4.2.11-1
...
<no error>

then

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 12, in <module>
    from spotdl.console.download import download
  File "/usr/lib/python3.13/site-packages/spotdl/console/download.py", line 7, in <module>
    from spotdl.download.downloader import Downloader
  File "/usr/lib/python3.13/site-packages/spotdl/download/downloader.py", line 21, in <module>
    from spotdl.providers.audio import (
    ...<6 lines>...
    )
  File "/usr/lib/python3.13/site-packages/spotdl/providers/audio/__init__.py", line 5, in <module>
    from spotdl.providers.audio.bandcamp import BandCamp
  File "/usr/lib/python3.13/site-packages/spotdl/providers/audio/bandcamp.py", line 10, in <module>
    from spotdl.providers.audio.base import AudioProvider
  File "/usr/lib/python3.13/site-packages/spotdl/providers/audio/base.py", line 15, in <module>
    from spotdl.utils.formatter import (
    ...<3 lines>...
    )
  File "/usr/lib/python3.13/site-packages/spotdl/utils/formatter.py", line 15, in <module>
    import pykakasi
ModuleNotFoundError: No module named 'pykakasi'

but

pacman -Qi python-pykakasi
Name            : python-pykakasi
Version         : 2.3.0-2
...
Install Date    : Mon 08 Jul 2024 01:36:32 AM CEST
Install Reason  : Installed as a dependency for another package

thanks!

Tjuh commented on 2025-05-04 10:14 (UTC)

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in _run_module_as_main:198                                                                       │
│ in _run_code:88                                                                                  │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/spotdl/__main__.py:9 in <module>                               │
│                                                                                                  │
│    8 if __name__ == "__main__":                                                                  │
│ ❱  9 │   console_entry_point()                                                                   │
│   10                                                                                             │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/spotdl/console/entry_point.py:53 in console_entry_point        │
│                                                                                                  │
│    52 │   else:                                                                                  │
│ ❱  53 │   │   entry_point()                                                                      │
│    54                                                                                            │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/spotdl/console/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(                                                         │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/spotdl/utils/downloader.py:20 in check_ytmusic_connection      │
│                                                                                                  │
│   19 │   # Check if we are getting results from YouTube Music                                    │
│ ❱ 20 │   ytm = YouTubeMusic()                                                                    │
│   21 │   test_results = ytm.get_results("a")                                                     │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/spotdl/providers/audio/ytmusic.py:38 in __init__               │
│                                                                                                  │
│   37 │   │                                                                                       │
│ ❱ 38 │   │   self.client = YTMusic(language="de")                                                │
│   39                                                                                             │
│                                                                                                  │
│ /usr/lib/python3.13/site-packages/ytmusicapi/ytmusic.py:135 in __init__                          │
│                                                                                                  │
│   134 │   │   locale_dir = Path(__file__).parent.resolve() / "locales"                           │
│ ❱ 135 │   │   self.lang = gettext.translation("base", localedir=locale_dir, languages=[languag   │
│   136 │   │   self.parser = Parser(self.lang)                                                    │
│                                                                                                  │
│ /usr/lib/python3.13/gettext.py:537 in translation                                                │
│                                                                                                  │
│   536 │   │   from errno import ENOENT                                                           │
│ ❱ 537 │   │   raise FileNotFoundError(ENOENT,                                                    │
│   538 │   │   │   │   │   │   │   │   'No translation file found for domain', domain)            │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No translation file found for domain: 'base'

???

aminvakil commented on 2025-04-04 00:21 (UTC)

@hypercyanate Maybe related to python-soundcloud-v2 dependency?

It should be installed.

hypercyanate commented on 2025-04-01 19:14 (UTC) (edited on 2025-04-01 19:16 (UTC) by hypercyanate)

I get the following error while trying to run spotdl


$ spotdl url
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 12, in <module>
    from spotdl.console.download import download
  File "/usr/lib/python3.13/site-packages/spotdl/console/download.py", line 7, in <module>
    from spotdl.download.downloader import Downloader
  File "/usr/lib/python3.13/site-packages/spotdl/download/downloader.py", line 21, in <module>
    from spotdl.providers.audio import (
    ...<6 lines>...
    )
  File "/usr/lib/python3.13/site-packages/spotdl/providers/audio/__init__.py", line 13, in <module>
    from spotdl.providers.audio.soundcloud import SoundCloud
  File "/usr/lib/python3.13/site-packages/spotdl/providers/audio/soundcloud.py", line 10, in <module>
    from soundcloud import SoundCloud as SoundCloudClient

scenkner commented on 2025-02-09 14:39 (UTC)

@aminvakil Thank you for pointing me in the right direction!
My environment was tainted with leftover $PATH in both ~/.bash_profile & ~/.bashrc.
The modifications were created by pipx.