github Kopuz-org/kopuz v0.7.0

latest releases: v0.17.0, v0.16.2, v0.16.1...
3 months ago

This release adds two major data systems: a brand-new SoundCloud streaming backend and a full SQLite storage rewrite with a reactive data layer, plus a native YouTube Music streaming path, a desktop tray icon and mini-player, richer lyrics, and a long tail of fixes and translations.

(Flatpak may not work this time, sorry for the inconsistency i will fix it next release)

Highlights

SoundCloud is now a streaming backend. You can add SoundCloud as a server option, sign in through your browser, and browse it like any other source: favorites, playlists, home menu, search, and track playback. Public tracks work, and your liked/favorite tracks sync in.

New SQLite storage + reactive data layer. The whole library now lives in a SQLite database (crates/db, compile-checked queries via sqlx) behind a reactive data layer, alongside a MediaSource refactor and a unified "client wall" for backends. Large libraries load and update faster, and views react to data changes instead of re-fetching.

YouTube Music plays natively, with no yt-dlp and no botguard. YouTube Music now deciphers streams natively with a built-in solver and a cross-platform PoToken minter, so the old yt-dlp + botguard path is gone for playback. Anonymous mode works with a webview-minted token (browse, search, Discover, mix radio, public tracks), and signed-in accounts stream Premium-tier audio. Stream tier is now routed by itag (141/256/258/774 handled correctly), free to Premium is re-verified, and 0 kbps readouts are hidden.

Features

  • Tray icon for the desktop app. Click to hide/show the window.
  • Mini-player integration.
  • Local file type tag so local tracks are clearly marked.
  • Libre.fm scrobbling support (alongside existing Last.fm).
  • Progressive remote lyrics: Apple syllable-synced lyrics UI, enhanced word-synced lyrics, a new Paxsenix NetEase provider, and smarter fallback selection that fetches lyrics chunk-by-chunk.
  • Metadata viewer and editor for inspecting and editing track tags.
  • Fullscreen view: artist/album navigation buttons, a permanent bitrate readout, plus accessibility and localization for the tab buttons.
  • Album artist header is now a clickable link to the artist page.
  • In-app logging & observability: a tracing toggle, per-session log rotation, crash reports, and export / open-log-folder, with a Chrome-trace mode for performance debugging. Runtime println!/eprintln! is gone in favor of tracing.
  • Radio: added Turkish stations (Radyo 7, Nostalji).
  • Translations: localized messages across many languages, a new Vietnamese locale, and a Turkish README.
  • CI: fmt + clippy linting added.

Fixes

  • ytmusic: suppress the flashing cmd window on Windows process spawn.
  • Now-playing cover artwork is stored in the app cache dir instead of system temp, with an Android-writable cache path.
  • SoundCloud: fixed playlists, home-menu/album-menu integration, and offline + track covers.
  • Fullscreen: fixed the multimedia-side and hero layout.
  • player: dropped a duplicate resolve in play_queue_linear.
  • Flatpak: host-browser sign-in via flatpak-spawn plus soname/portal fixes.
  • Linux: tray and button fixes.
  • lyrics: corrected active-line focus timing, short-gap bridging, and remote-provider fallback.

What's Changed

  • feat(soundcloud): add soundcloud as a server option by @temidaradev in #413
  • fix(ytmusic): suppress cmd window on windows process spawn by @lilsemihboi in #418
  • fix: store now-playing cover artwork in app cache dir instead of system temp by @mvanhorn in #419
  • feat(local): add local file type tag by @temidaradev in #420
  • feat(mp): mini-player integration by @temidaradev in #421
  • feat(tray-icon): implement tray icon for kopuz by @temidaradev in #422
  • SQLite storage + reactive data layer, MediaSource refactor, client wall, and SoundCloud (#347) by @UMCEKO in #424

New Contributors

Full Changelog: v0.6.7...v0.7.0

Don't miss a new kopuz release

NewReleases is sending notifications on new releases.