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.192493
First Submitted: 2024-03-31 19:44 (UTC)
Last Updated: 2025-01-17 09:00 (UTC)

Latest Comments

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

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')

pekkarr commented on 2024-06-29 20:03 (UTC)

@DodoLeDev thanks for the report, I backported the fix into PKGBUILD in commit f0efe44bbdb7

DodoLeDev commented on 2024-06-29 10:14 (UTC)

Because of spotDL/spotify-downloader#2119, spotDL is currently unusable as-is, throwing this error:

ImportError: cannot import name 'is_lrc_valid' from 'syncedlyrics.utils' (/usr/lib/python3.12/site-packages/syncedlyrics/utils.py)

A PR is waiting for approval in order to fix this issue.

If, like me, you don't want to wait, edit the PKGBUILD as follows:

50,51c51,52
< source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz")
< b2sums=('cb45720745936cb4e14fb121e34871614e5be4bdc10f0c23058f979dfd788dd7da06ceb3cc633c93fb7bf799080256f718e29f8ff30fba275be9c6c3f9eae2ca')
---
> source=("$pkgname::git+https://github.com/spotDL/spotify-downloader")
> b2sums=('SKIP')
55c56
<   cd spotify-downloader-$pkgver
---
>   cd "$pkgname"
56a58,59
>   git fetch origin pull/2120/head:lyrics-patch
>   git checkout lyrics-patch
61c64
<   cd spotify-downloader-$pkgver
---
>   cd "$pkgname"
66c69
<   cd spotify-downloader-$pkgver
---
>   cd "$pkgname"

pekkarr commented on 2024-05-06 12:01 (UTC)

@HLFH about the out-of-date flag

pkgrel requires bump bc of python 3.12 release

The pkgrel bump in 00f2bfde happened after Python 3.12 was released to the stable repos, so that served as the Python 3.12 rebuild bump. AUR packages aren't required to bump pkgrel on rebuilds however. I'll thus unflag the package.

pekkarr commented on 2024-04-27 12:28 (UTC)

@dr460nf1r3 Python 3.12 was just released into the stable repos, which means that you need to rebuild all python packages installed from AUR.

dr460nf1r3 commented on 2024-04-27 12:12 (UTC)

Tests seem to be broken however:

==> Starting check()...
ImportError while loading conftest '/home/nico/spotdl/src/spotify-downloader-4.2.5/tests/conftest.py'.
tests/conftest.py:7: in <module>
from spotdl.download.downloader import Downloader
spotdl/__init__.py:13: in <module>
from spotdl.console import console_entry_point
spotdl/console/__init__.py:5: in <module>
from spotdl.console.entry_point import console_entry_point
spotdl/console/entry_point.py:10: in <module>
from spotdl.console.download import download
spotdl/console/download.py:7: in <module>
from spotdl.download.downloader import Downloader
spotdl/download/downloader.py:20: in <module>
from spotdl.download.progress_handler import ProgressHandler
spotdl/download/progress_handler.py:23: in <module>
from spotdl.types.song import Song
spotdl/types/song.py:11: in <module>
from spotdl.utils.spotify import SpotifyClient
spotdl/utils/spotify.py:16: in <module>
from spotipy import Spotify
E   ModuleNotFoundError: No module named 'spotipy'
Tests failed!

pekkarr commented on 2024-04-27 12:00 (UTC)

@dr460nf1r3 thanks for reporting, it's now fixed in 00f2bfde.