# mpdlisten MPD scrobbler for listenbrainz platform. This project is in very early stages so expect lots of changes. Also it mainly expects you to use [beets](https://github.com/beetbox/beets/) or similar program to tag your music beforehand. It will try to match the song anyway but it will not cache the results in anyway so it is not ideal. If you need more mature solution (with less ListenBrainz specific features) use [listenbrainz-mpd](https://codeberg.org/elomatreb/listenbrainz-mpd). ## Features - Submission of now playing songs - Ability to submit feedback for your songs (Love/Hate) - Sync weekly exploration/jams playlist that are automatically generated - Create new exploration playlist on ListenBrainz that contains only the songs you don't already have in your library - Sync loved songs from ListenBrainz into local playlist - Basic support for matching your songs with MusicBrainz IDs ## Installing mpdlisten Currently there are two ways to install mpdlisten. ### Install with Cargo `cargo install mpdlisten` ### Install with Nix flakes This project contains nix flake so you can install it with `nix run git+https://codeberg.org/anriha/mpdlisten` or you can add it as a module to your nixos configuration. ```nix { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; mpdlisten.url = "git+https://codeberg.org/anriha/mpdlisten"; }; outputs = { nixpkgs, mpdlisten, ... }: { nixosConfigurations."«hostname»" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ mpdlisten.nixosModules.x86_64-linux.mpdlisten ]; }; }; } ``` And after that you can enable it in your configuration like this ```nix services.mpdlisten = { enable = true; listenbrainz = { tokenFile = "«tokenFile»"; username = "«username»"; fetchJams = true; fetchExploration = true; syncLoved = true; }; }; ``` ## Configuration To configure if you are not using nix. Use default config location, on Linux this would be `$XDG_CONFIG_HOME/mpdlisten/mpdlisten.ini` or you can manually specify configuration file with command line `-c location/mpdlisten.ini`. To understand configuration file please take a look at the [sample one](./mpdlisten.ini.sample). ## Sending feedback You can send ListenBrainz feedback with mpd channels. Easiest way is with [mpc](https://github.com/MusicPlayerDaemon/mpc) `mpc sendmessage mpdlisten love` `mpc sendmessage mpdlisten hate`