nixos-config/home/programs/beets.nix
2025-07-22 19:15:58 +02:00

73 lines
1.7 KiB
Nix

{pkgs, ...}: let
musicDir = "/server/library/music";
beetsDir = "/home/xun/beets";
in {
programs.beets = {
enable = true;
package = pkgs.beets-unstable;
settings = {
directory = "${musicDir}/beets";
library = "${beetsDir}/beets.db";
import = {
write = true;
move = true;
copy = false;
autotag = true;
confidence = 0.9;
timid = true;
group_albums = true;
};
original_date = true;
plugins = ["lyrics" "missing" "unimported" "edit" "duplicates" "info"];
lyrics = {
synced = true; # prefer synced
sources = ["lrclib" "genius" "google"];
};
paths = {
# default = "$albumartist/$album$year/$albumartist - $track - $title";
default = "$albumartist/$album%aunique{}/$track $title";
singleton = "single/$artist/$title";
comp = "comp/$album%aunique{}/$track $title";
};
unimported.ignore_extensions = ["jpg" "png"];
# threaded = true;
# timeout = 5;
# verbose = false;
match = {
strong_rec_thresh = 0.1;
medium_rec_thresh = 0.25;
rec_gap_thresh = 0.25;
distance_weights = {
source = 2.0;
artist = 3.0;
album = 3.0;
media = 1.0;
mediums = 1.0;
year = 1.0;
country = 0.5;
label = 0.5;
catalognum = 0.5;
albumdisambig = 0.5;
album_id = 5.0;
tracks = 2.0;
missing_tracks = 0.9;
unmatched_tracks = 0.6;
track_title = 3.0;
track_artist = 2.0;
track_index = 1.0;
track_length = 2.0;
track_id = 5.0;
};
};
};
};
}