21 releases (8 breaking)
new 0.10.1 | May 23, 2025 |
---|---|
0.9.1 | May 21, 2025 |
#85 in Audio
661 downloads per month
2MB
2K
SLoC
Angry Duiker
A TUI DLNA music player. Allows you to stream your music from any DLNA server on your network such as Plex or MiniDLNA. This project was inspired by termusic. It's meant to be more lightweight and designed to stream from a media server rather than from disk.
Table of Contents
Features
- Supports playing most audio formats supported by Symphonia.
- Album art rendering (see Configuration Section).
- Stream Music from DLNA servers such as Plex or MiniDLNA (I have only tested it with Plex).
- Playlists
- Construct playlists from DLNA content.
- Save playlist to a file.
- Load playlist from a file.
- Fuzzy search of loaded playlist and DLNA content list.
- Shuffle mode allows you to play songs from the playlist in random order.
- This has true randomness, there is no seed.
- No volume control: you'll hear every byte. Use hardware volume to save you ears 😁.
Compatibility
OS | Kitty | Ghostty | Alacritty |
---|---|---|---|
Ubuntu | ✅ | ✅ | ✅ |
Arch | untested | ✅ | untested |
Windows | untested | untested | untested |
MacOS | untested | ✅ | untested |
DLNA Server | Status |
---|---|
Plex | ✅ |
MiniDLNA | untested |
Screenshots
Installation
With Cargo
cargo install angry-duiker
Usage
angry-duiker
Controls
Press c
when you open the app.
Configuration
The album art is finicky and specific to the terminal emulator and font that you are using. This, and some other options, are configurable via the auto-generated config file at $HOME/.config/angry-duiker/config.toml
. page_size
refers to how many rows you jump down when using the page up/down keys.
image_protocol_type = "halfblocks"
image_width = 10
page_size = 10
image_protocol_type
Different terminals use different packages for image rendering.
Option | Description |
---|---|
"" | Disables album art rendering completely. |
halfblocks | Blurry, but renders in most terminal emulators. |
kitty | Renders in Kitty and Ghostty (that I know of). |
sixel | Probably renders in Alacritty (with Sixel support). |
iterm2 | Probably renders in iTerm2 (I haven't tested this). |
image_width
Depending on the width of your font, you may want to customize how many columns you allocate for the album art.
Contributions
This project is fully open source and welcomes contributions 🙂. Every MR should have a corresponding issue. No AI slop please 🙏.
Dependencies
~39–73MB
~1M SLoC