GitHub - tsvb/nugsdotnet: A personal local + native (MAUI) client for nugs.net live-music streaming. Blazor WASM + .NET MAUI Blazor Hybrid over a shared RCL and ASP.NET Core proxy. .NET 10. · GitHub
Skip to content

tsvb/nugsdotnet

Folders and files

Repository files navigation

nugsdotnet — a personal hi-fi front-end for nugs.net live music

native CI .NET 10 Windows WinUI 3 native MIT license

A personal hi-fi front panel for nugs.net live music — a 100% native WinUI 3 Windows app. Fast search, a real queue, gapless playback, keyboard-first. No WebView, no proxy, no DRM games.


◖ Why this rig exists

The official nugs UI has slow search, weak queue/playlist UX, and no keyboard shortcuts. nugsdotnet is a faster front panel for the same catalog, run against your own subscription. It streams what you're entitled to and nothing more — no content is downloaded, redistributed, or stripped of DRM. Personal use only.

Spec sheet

App WinUI 3 (Windows App SDK 2.x) · unpackaged, self-contained
Runtime .NET 10 · Windows 10 2004+ / Windows 11, x64 or arm64
Audio FLAC 16/44 preferred, ALAC / MQA / AAC fallbacks, HLS adaptive · gapless via MediaPlaybackList look-ahead
Auth nugs password grant · tokens DPAPI-encrypted at rest
Identity RECEIVER '74 — warm-VFD dark/amber, custom title bar, brand type

◖ Signal path

No proxy, no WebView: the app talks to nugs directly. Auth and catalog calls go straight to the API, and audio feeds MediaPlayer from an in-process IRandomAccessStream that issues ranged CDN GETs with the required Referer/User-Agent itself — the whole reason the retired web heads needed a loopback server, done in-process.

  nugs.net API + CDN
        │
  ┌─────┴──────────────────────────────────────────────┐
  │ Nugsdotnet.Native.Core      auth · catalog · picks │   net10.0, tested on any OS
  ├────────────────────────────────────────────────────┤
  │ Nugsdotnet.Native           WinUI 3 front panel    │   HttpAudioStream → MediaPlayer
  └────────────────────────────────────────────────────┘
Project Role
native/Nugsdotnet.Native.Core Platform-agnostic: auth, DPAPI session store, catalog, stream resolver, recents
native/Nugsdotnet.Native The WinUI 3 app: views, playback, imaging, RECEIVER '74 theme
native/Nugsdotnet.Native.Tests xUnit suite for Core — runs cross-platform, gates CI

◖ Off the shelf — install it

Grab the latest nugsdotnet-<version>-x64-setup.exe from Releases — a per-user install, no admin, fully self-contained (no .NET or runtime installs). Each release also carries a winget manifest:

winget install --manifest .\nugsdotnet-<version>-winget-manifests

Cut-a-release details live in docs/RELEASING.md.


◖ Power on — run from source

Requires the .NET 10 SDK on Windows. No MAUI workload, no MSIX — the Windows App SDK arrives via NuGet.

# credentials via environment (the login screen's default), or type them in the UI
$env:NUGS_EMAIL = "you@example.com"
$env:NUGS_PASSWORD = "your-password"

dotnet run --project native\Nugsdotnet.Native\Nugsdotnet.Native.csproj

The full tour — dashboard home, transport, the Ctrl+D mini-player inspector with live stream metrics, gapless internals, roadmap — lives in native/README.md.

Front panel — keyboard shortcuts

key action
Ctrl+F Focus search
Ctrl+Space Play / pause
Ctrl+→ Next track
Ctrl+← Previous track
Ctrl+D Toggle dashboard

Media keys and the Windows media flyout work too (SMTC with full metadata).


◖ On the dial — roadmap

Phases 1–3 are landed: player, browse, dashboard, gapless, SMTC, resume-on-launch (queue + position primed on relaunch), HLS playback, remembered window/volume state, a local stash (star an album, it lands on the Home rail), and tag-triggered installer + winget distribution. Next up, as the itch strikes:

  • Code signing — Azure Trusted Signing to retire the SmartScreen prompt (hook is already in the release workflow).
  • Stash sync — push the local stash server-side if nugs' API ever exposes a favorites surface (none documented today).

◖ History — the web & MAUI era

This repo originally hosted three heads: a Blazor WebAssembly web app, a .NET MAUI Blazor Hybrid desktop app, and this native head. The WinUI client was the goal all along — once it reached feature parity (and then some), the Blazor/MAUI projects were retired. They live on in git history through the v0.2.1 tag and its releases, alongside the design notes under docs/superpowers/.


Built with .NET 10 · WinUI 3 · Windows App SDK — for personal use against your own nugs.net subscription. Not affiliated with nugs.net.

About

A personal local + native (MAUI) client for nugs.net live-music streaming. Blazor WASM + .NET MAUI Blazor Hybrid over a shared RCL and ASP.NET Core proxy. .NET 10.

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors