Skip to content
 
 

Repository files navigation

Spotidark

A native Spotify client by Darkroom Engineering, built on Spotifast by Carmine Paolino and the Spotifast contributors. Their work provides the application, playback engine integration, and desktop features that make this fork possible.

Spotidark keeps the Rust, egui, and librespot architecture, with a monochrome Darkroom interface and an independent app identity. Spotify remains the music source. Local playback requires Spotify Premium.

What you can do

  • Play music locally and control Spotify Connect devices.
  • Browse your library, playlists, albums, artists, podcasts, and saved episodes.
  • Search, manage playlists, save songs, and use the queue and lyrics views.
  • Use media keys, keyboard shortcuts, the system tray, and Spotify links.
  • Use light, dark, and custom themes, the equalizer, Winamp skins, and MilkDrop.

These capabilities are inherited from Spotifast. Spotify account permissions, API availability, and librespot support still determine what works.

Interface

The header keeps navigation, search, a View menu and your account menu. Open Settings from the account menu. View contains the Winamp mini player, MilkDrop and panel commands; their keyboard shortcuts still work. Choose the playback device from the player bar. In tight layouts, Search or Cmd/Ctrl+F opens a dedicated query row so controls remain usable beside the queue or lyrics panel. Search filters use a compact selector when the usual row cannot fit.

Library filters use a compact selector when the sidebar is narrow. Settings keeps specialist controls in expandable sections, and personal-app setup opens when requested. Settings → Appearance → Motion follows the system preference on macOS and Windows, or lets you choose full or reduced motion explicitly. On Linux, choose reduced motion in the app. Reduced motion removes movement and scaling while retaining useful color feedback.

Build and run

Spotidark's release workflow builds a universal macOS DMG and a Windows x64 EXE installer. Published builds appear in Releases. Spotifast's Homebrew, AUR, Flatpak, and other packages install the upstream app, not Spotidark. Linux remains available from source.

git clone https://github.com/darkroomengineering/spotidark.git
cd spotidark
cargo run --locked --release --bin spotidark

Rust is pinned in rust-toolchain.toml. MilkDrop also needs CMake, a C++ compiler, and libclang. On Linux, install the ALSA, PulseAudio, xkbcommon, and Wayland development libraries. See the preserved upstream build documentation for platform prerequisites. A smaller build without MilkDrop is available:

cargo run --locked --release --no-default-features --bin spotidark

Install only the fork command so upstream commands can coexist:

cargo install --path . --locked --bin spotidark

The internal Rust package and library retain the name fastpotify to keep upstream integration straightforward. The compatibility binaries spotifast and fastpotify also build, but are not needed to run Spotidark.

On macOS, build an app bundle after compiling the release binary:

bash packaging/macos/bundle.sh target/release/spotidark /tmp/Spotidark.app 0.8.0
open /tmp/Spotidark.app

The script uses an ad-hoc signature unless CODESIGN_IDENTITY is supplied. This is a local development bundle, not a notarized public release. Linux launcher assets are packaging/applications/spotidark.desktop and packaging/icons/spotidark.svg; the spotidark command must be on your PATH.

Sign in and Spotify access

Choose Sign in with Spotify. Approval happens in your browser on Spotify's own pages. Spotidark retains upstream's shared Web API access and separate librespot playback authorization. Add a personal Spotify developer app in Settings → Account to use its separate quota for supported requests.

Darkroom owns this repository and the fork's release destination. It does not own the inherited public shared Spotify client registration or Spotify's service. No Darkroom Spotify developer registration is bundled in this first version. See how the inherited connections work and supported Spotify capabilities.

Spotidark uses separate settings, caches, credential storage, and desktop instance identifiers. Sign in again when switching from Spotifast; the fork does not import or clear Spotifast's credentials. On Linux, settings are in ~/.config/spotidark/settings.json. On macOS and Windows, they use the native application directories for the engineering / darkroom / spotidark identity.

Automatic updates

Every push to main runs CI. Once its checks pass, CI builds and publishes spotidark-macos.dmg and spotidark-windows.exe as the rolling release, then removes the previous release. Each build has an increasing version for OTA. Apple signing is currently deferred: macOS downloads are ad-hoc signed and not notarized. Complete signing credentials enable Developer ID signing and Apple notarization automatically.

Installed macOS and Windows builds check for updates and download them in the background by default. Choose Restart to update when ready; an update never interrupts playback automatically. Existing saved download preferences remain respected. Settings also provides a manual update check and an opt-out.

Downloads are verified against GitHub's SHA-256 release metadata, so there is no separate appcast or checksum download. Move the macOS app into Applications before updating. Source and package-manager installations use their existing installation method. See release and update details.

Personal Spotify app

Follow the personal Spotify app guide to create your own app and connect it in Settings. The app includes all five setup steps, a button to copy the exact redirect URI, and Client ID validation before authorization. Each developer needs an app under their own developer account: Development Mode allows 5 allow-listed users, and quota is counted per developer account.

Development and upstream updates

git remote add upstream https://github.com/crmne/spotifast.git
git fetch upstream
cargo run --locked --features demo --bin spotidark -- --demo

Demo mode uses sample data without signing into Spotify. See CONTRIBUTING.md for checks and product boundaries. Keep upstream changes reviewable, preserve contributor history, and retain copyright notices when integrating updates.

The detailed documentation and legacy packaging recipes remain as upstream reference material. Their Spotifast download links, migration instructions, and release history do not describe Spotidark distributions.

Credits and license

The original MIT license and copyright notice are preserved. Spotidark is an independent fork, not affiliated with or endorsed by Spotify AB or the Spotifast team. Spotify is a trademark of Spotify AB.

About

Darkroom Engineering’s native Spotify client. A fork of Spotifast by Carmine Paolino and contributors, built with Rust, egui, and librespot.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages