xp icon indicating copy to clipboard operation
xp copied to clipboard

GUI and TUI music player with support for multiple streaming services.

xp

GUI and TUI music player with support for multiple streaming services.

Features

  • Gtk4 GUI and TUI
  • Downloading music from multiple streaming services. See table below.
  • Partial MPRIS implementation (play/pause, seek, quit, see ddbus#60)

Supported services

Service Notes
Local files Metadata provided by taglib_c
YouTube
Spotify Audio is downloaded with youtube-dl's ytsearch: feature
SoundCloud

Building and installing

Installing

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.

Building

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