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-inTo run it, run the following command in the terminal:
# For terminal interface
xp tui
# For gtk4 interface
xpFor 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 modestBuilding the program:
git clone https://github.com/Ryhon0/xp
cd xp
dub build -b release
strip xp