Package Details: spotdl 4.2.11-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: 25
Popularity: 0.31
First Submitted: 2024-03-31 19:44 (UTC)
Last Updated: 2025-01-17 09:00 (UTC)

Latest Comments

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

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.

aminvakil commented on 2025-02-09 09:25 (UTC)

@scenkner This package and any other AUR package which has followed guidelines, installs app in /usr/bin and do not mess with /home .

There is something else wrong in your environment which tries to load spotdl from /home/my_user_name/.local/bin/spotdl.

Maybe you have tried to install it using other way and have not cleaned up after?

scenkner commented on 2025-02-09 01:40 (UTC) (edited on 2025-02-09 05:01 (UTC) by scenkner)

I'm getting a similar output as TheTimBrick:
Traceback (most recent call last):
File "/home/my_user_name/.local/bin/spotdl", line 5, in <module>
from spotdl import console_entry_point
ModuleNotFoundError: No module named 'spotdl'

I've tried rebuilding both python-spotipy and python-spotdl however the response is the same.
I've installed rebuild-detector and upon running checkrebuild, nothing python or spotdl related are listed.
Note that I am on python 3.13.1-1.

gesh commented on 2024-09-30 16:18 (UTC)

Will get back to the VCR patch soon(TM), but in the meantime, note that given that we're not building with the python-setuptools backend, the python-wheel makedep is unnecessary.

gesh commented on 2024-07-02 19:56 (UTC) (edited on 2024-07-07 19:57 (UTC) by gesh)

test_matching keeps throwing HTTP 429 errors -- this is known upstream1. I wrote a PR to use mock results from the Spotify API instead to avoid the rate-limiting, I'm still testing it to make sure it works, but hopefully it'll work soon3.

(EDIT: The situation is still problematic even after my PR, and in fact several other tests are failing for me as well. Reported upstream4.)

(EDIT 2024-07-07: I need to drop the PR for the moment -- work is ramping up. So far, I've managed to reduce the failures somewhat, tests need to be run with -k 'not test_config' -m 'not novcr' to skip the known-broken tests)

In diagnosing this, found the dependencies needed to be updated, below is a patch to bring them up to date (omitted are my edits to the PKGBUILD to apply my patches):

diff --git a/PKGBUILD b/PKGBUILD
index d10b1c8..f046abf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -18,10 +19,7 @@ license=('MIT')
 depends=(
    'ffmpeg'
    'python'
-   'python-bandcamp-api'
    'python-beautifulsoup4'
-   'python-dacite'
-   'python-demjson3'
    'python-fastapi'
    'python-mutagen'
    'python-platformdirs'
@@ -35,13 +33,26 @@ depends=(
    'python-slugify'
    'python-spotipy'
    'python-syncedlyrics'
-   'python-typing_extensions'
    'python-ytmusicapi'
    'uvicorn'
    'yt-dlp'
 )
-makedepends=('python-build' 'python-installer' 'python-wheel' 'python-poetry-core')
-checkdepends=('python-pytest-asyncio' 'python-pytest-mock')
+makedepends=('git'
+    'python-build'
+    'python-installer'
+    'python-wheel'
+    'python-poetry-core'
+)
+checkdepends=(
+    'python-dill'
+    'python-pyfakefs'
+    'python-pytest-asyncio'
+    'python-pytest-cov'
+    'python-pytest-mock'
+    'python-pytest-recording'
+    'python-pytest-subprocess'
+    'python-vcrpy'
+)
 provides=('python-spotdl')
 replaces=('python-spotdl')
 conflicts=('python-spotdl')