nur-packages/pkgs/tools/misc/spotify-ripper/default.nix

75 lines
1.9 KiB
Nix
Raw Normal View History

2020-10-15 19:05:13 +11:00
{ stdenv
, lib
2020-10-15 19:05:13 +11:00
, fetchFromGitHub
, python3Packages
, lame
2020-10-15 19:05:13 +11:00
2022-10-26 10:50:59 +11:00
, aacSupport ? false
, faac
, alacSupport ? false
, libav
, flacSupport ? false
, flac
, m4aSupport ? false
, mp4Support ? false
, fdk-aac-encoder
, oggSupport ? false
, vorbisTools
, opusSupport ? false
, opusTools
2020-10-15 19:05:13 +11:00
}:
2022-10-26 10:50:59 +11:00
assert aacSupport -> faac.meta.available;
assert alacSupport -> libav.meta.available;
assert flacSupport -> flac.meta.available;
2020-10-15 19:05:13 +11:00
assert m4aSupport || mp4Support -> fdk-aac-encoder.meta.available;
2022-10-26 10:50:59 +11:00
assert oggSupport -> vorbisTools.meta.available;
assert opusSupport -> opusTools.meta.available;
2020-10-15 19:05:13 +11:00
python3Packages.buildPythonApplication rec {
2020-10-15 19:05:13 +11:00
pname = "spotify-ripper";
version = "20210724.5bfd3f7";
2020-10-15 19:05:13 +11:00
src = fetchFromGitHub {
owner = "ast261";
2020-10-15 19:05:13 +11:00
repo = pname;
rev = "5bfd3f7a52f2767b433fd315145409837a3c33f0";
sha256 = "sha256-LLunGzs9Mg4S00Su260b+M5w/XwS+kICl/YXQdR/cPI=";
2020-10-15 19:05:13 +11:00
};
propagatedBuildInputs = (with python3Packages; [
2020-10-15 19:05:13 +11:00
colorama
mutagen
pyspotify
requests
schedule
setuptools
spotipy
]) ++ [
lame
2020-10-15 19:05:13 +11:00
(if flacSupport then flac else null)
(if alacSupport then libav else null)
(if aacSupport then faac else null)
(if (m4aSupport || mp4Support) then fdk-aac-encoder else null)
(if oggSupport then vorbisTools else null)
(if opusSupport then opusTools else null)
];
# Remove impure executables.
patches = [ ./fix-setup.patch ];
meta = with lib; {
2020-10-15 19:05:13 +11:00
description = "Rip Spotify URIs to audio files, including ID3 tags and cover art";
longDescription = ''
Spotify-ripper is a small ripper script for Spotify that rips Spotify URIs
to audio files and includes ID3 tags and cover art. By default
spotify-ripper will encode to MP3 files, but includes the ability to rip
to WAV, FLAC, Ogg Vorbis, Opus, AAC, and MP4/M4A.
'';
homepage = "https://github.com/hbashton/spotify-ripper";
# spotify-ripper itself is MIT, but the upstream libspotify is unfree.
license = licenses.unfree;
2020-10-15 19:05:13 +11:00
};
}