No description
  • C 98.2%
  • Makefile 0.9%
  • Meson 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-21 20:13:36 +02:00
data chore: bump version to 1.0.4 2026-09-21 20:13:36 +02:00
src fix: resolve playable CDN streams for SoundCloud tracks 2026-09-21 19:51:34 +02:00
tests Initial commit: Silky music player with multi-backend streaming, MPRIS, and adaptive Libadwaita UI 2026-09-21 00:08:46 +02:00
.gitignore Initial commit: Silky music player with multi-backend streaming, MPRIS, and adaptive Libadwaita UI 2026-09-21 00:08:46 +02:00
Makefile Initial commit: Silky music player with multi-backend streaming, MPRIS, and adaptive Libadwaita UI 2026-09-21 00:08:46 +02:00
meson.build fix: resolve playable CDN streams for SoundCloud tracks 2026-09-21 19:51:34 +02:00
README.md Add release download links and Alpine installation instructions to README 2026-09-21 00:56:49 +02:00

Silky

Silky is a lightweight, responsive Libadwaita / GTK4 music player written in C.

Features

  • Multi-backend support:
    • Local Library: Fast scanning with TagLib metadata extraction (.mp3, .flac, .ogg, .m4a, .wav, .opus).
    • Navidrome / Subsonic: MD5 salt authentication, server search, cover art and streaming.
    • Deezer: REST search API with high-quality preview streaming.
    • SoundCloud: API v2 search and progressive stream resolving.
    • YouTube / Invidious: Audio stream extraction.
    • Spotify (NTify approach): Spotify metadata mapping with lossless stream resolution.
  • Audio Engine: GStreamer pipeline with shuffle, repeat modes (Off/All/One), continuous playback progression, and seek support.
  • Playlists & M3U: SQLite database store with M3U import and export.
  • Desktop Integration: Full MPRIS D-Bus support (org.mpris.MediaPlayer2.Silky) for system media controls and lock screen widgets.
  • Adaptive UI: Responsive Libadwaita layout scaling down to mobile viewports (AdwBreakpoint, AdwViewSwitcherBar, AdwClamp).

Releases & Downloads

Pre-built binaries for Alpine Linux (x86_64 and aarch64 / arm64):

Run on Alpine

apk add libadwaita gtk4.0 gstreamer gst-plugins-base \
    gst-plugins-good gst-plugins-bad gst-plugins-ugly \
    gst-libav libsoup3 json-glib sqlite-libs taglib

tar -xvf silky-alpine-x86_64.tar.gz
./silky

Building from Source

Requirements

  • clang / gcc
  • meson & ninja or make
  • libadwaita-1
  • gtk4
  • gstreamer-1.0 & gstreamer-audio-1.0
  • libsoup-3.0
  • json-glib-1.0
  • sqlite3
  • taglib_c

Compile with Make

make CC=clang
./silky

Compile with Meson

CC=clang meson setup build
ninja -C build
./build/silky

Run Tests

make test CC=clang