diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix index 32dc47f53188..02628bf74ec1 100644 --- a/pkgs/tools/audio/spotdl/default.nix +++ b/pkgs/tools/audio/spotdl/default.nix @@ -6,27 +6,39 @@ python3.pkgs.buildPythonApplication rec { pname = "spotdl"; - version = "3.9.6"; + version = "4.0.6"; + + format = "pyproject"; src = fetchFromGitHub { owner = "spotDL"; repo = "spotify-downloader"; rev = "refs/tags/v${version}"; - hash = "sha256-JoeNVMuEslz7A7G4ZvikimZrG75YrH5Mx3Oamtfy4cM="; + hash = "sha256-oZyEh76nNKMeEenz0dNLQ5Hd9jRaot6He8toxDSZZ/8="; }; + nativeBuildInputs = with python3.pkgs; [ + poetry-core + pythonRelaxDepsHook + ]; + + pythonRelaxDeps = true; + propagatedBuildInputs = with python3.pkgs; [ spotipy - pytube - rich - rapidfuzz - mutagen ytmusicapi + pytube yt-dlp + mutagen + rich beautifulsoup4 requests - unidecode - setuptools + rapidfuzz + python-slugify + uvicorn + pydantic + fastapi + platformdirs ]; checkInputs = with python3.pkgs; [ @@ -37,8 +49,36 @@ python3.pkgs.buildPythonApplication rec { pytest-subprocess ]; - # requires networking - doCheck = false; + preCheck = '' + export HOME=$TMPDIR + ''; + + disabledTestPaths = [ + # require networking + "tests/test_init.py" + "tests/test_matching.py" + "tests/utils/test_m3u.py" + "tests/utils/test_metadata.py" + "tests/utils/test_search.py" + ]; + + disabledTests = [ + # require networking + "test_album_from_string" + "test_album_from_url" + "test_album_length" + "test_artist_from_url" + "test_artist_from_string" + "test_convert" + "test_download_ffmpeg" + "test_download_song" + "test_playlist_from_string" + "test_playlist_from_url" + "test_playlist_length" + "test_preload_song" + "test_song_from_search_term" + "test_song_from_url" + ]; makeWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])