GUI and TUI music player with support for multiple streaming services.
- Gtk4 GUI and TUI
- Downloading music from multiple streaming services. See table below.
- Partial MPRIS implementation (play/pause, seek, quit, see ddbus#60)
Service | Notes |
---|---|
Local files | Metadata provided by taglib_c |
YouTube | |
Spotify | Audio is downloaded with youtube-dl's ytsearch: feature |
SoundCloud |
xp is available on the AUR, to install it, use the following command:
yay -S xp-git yt-dlp yt-dlp-drop-in
To run it, run the following command in the terminal:
# For terminal interface
xp tui
# For gtk4 interface
xp
For other platforms, refer to the build instructions below.
The following dependencies are required for building:
- DUB and D compiler (prefarably LDC2)
The following runtime dependencies are required:
- SDL2_mixer
- gtk4 and libadwaita
- yt-dlp/youtube-dl
- ffmpeg or avconv
- taglib (taglib_c)
- dbus
- sqlite3
- modest
Commands to install these packages for select platforms:
# Arch Linux
# Build dependencies
sudo pacman -S dub ldc
# Runtime dependencies
sudo pacman -S liblphobos dbus sdl2_mixer gtk4 libadwaita youtube-dl ffmpeg taglib dbus sqlite3 modest
Building the program:
git clone https://github.com/Ryhon0/xp
cd xp
dub build -b release
strip xp