TUI music player for your self-hosted music servers that provides OpenSubsonic API
This program is personally tested against Ampache, a feature-rich OpenSubsonic-compatible music server. The program is occasionally tested against Navidrome too.
- Vim-like keybindings by default, though you are free to customise them however you want
- Every actions in this program can be done with keyboard!
- Select multiple items with Visual mode
- Use insert-mode keys (a, i, A, I) to add items to your play queue
- Check
/.configto see the full list of default keybindings!
- View playlists on the server
- Play music from the playlist
- Star or unstar songs with F
- Synchronised lyrics provided by LRCLIB if it exists
- Plain lyrics is also supported, but will not scroll automatically
- Speed changes (unfortunately the pitch changes for now)
- BPM toy: Tap a key (T by default) to the beat to see its BPM
Add the following input to your flake.nix
inputs = {
ampterm.url = "github:MangoCubes/ampterm";
};Then you can import inputs.ampterm.homeManager.default to your config. You can configure ampterm with the following code:
{ inputs, ... }:
{
imports = [ inputs.ampterm.homeManager.default ];
programs.ampterm = {
enable = true;
# This entire section gets converted into JSON.
extraOptions = {
auth = {
url = "echo https://your-opensubsonic-instance.com";
username = "echo admin";
password = "secret-tool lookup Path '/Ampache'";
};
use_legacy_auth = true;
behaviour.auto_focus = true;
features = {
lyrics.enable = true;
bpmtoy.enable = true;
cover_art.enable = true;
};
};
};
}The program comes with a set of default keybindings, which can be seen in /.config. However, you can put more keybindings in ~/.config/ampache/config.json to add to them, or override existing ones.
- Search functionality (local only, bit like slash (/) in Vim)
- MPRIS compatibility
- (Not really features but) Tests
- Local database
- Playlist Manager
- Extended features depending on the server you are using: Ampache, for instance, allows users to modify some metadata over the web. I plan to add some metadata editing tools if the server allows them.
- Offline playlist support: This should allow you to play musics you have on your device locally!
cargo build --release
# Output binary should be in ./target/release/ampterm