Skip to content

Releases: SysAdminDoc/LibreSpot

LibreSpot v3.0

03 Feb 01:11
276cd72

Choose a tag to compare

LibreSpot v3.0.0

Complete rewrite — rebuilt from the ground up covering architecture, reliability, security, and visual design. Every function, every UI element, and every code path has been audited and improved.

2026-02-02 19_59_24-LibreSpot

Premium GUI Redesign

The entire interface has been redesigned with a premium software aesthetic inspired by tools like Warp, Arc, and Raycast.

  • New zinc-based color palette replacing the original blue-slate scheme — deeper blacks, refined grays, consistent visual hierarchy
  • Floating window with soft drop shadow (BlurRadius 28) and rounded corners (12px)
  • Gradient accent line at the top of the window — sweeping dark green to bright green
  • Green status LED in the title bar indicating active state
  • Terminal-style log display with macOS-inspired header dots, Cascadia Mono font stack, and deeper background for contrast
  • Rounded progress bar with green gradient fill (6px height, custom ControlTemplate with TemplateBinding for proper error-state color changes)
  • Redesigned mode tabs — underline indicator style with 2px green bar instead of filled backgrounds
  • Easy Install panel — feature checklist with green circle checkmarks and centered card layout
  • Custom Install panel — section headers with green dot indicators, improved column spacing (20px gap), checkbox backgrounds tint green when checked
  • Maintenance panel — status cards with dot indicators, section accent bars (green for actions, red for uninstall), button accent stripes with hover animation
  • Refined ComboBox dropdowns — drop shadow on popup, rounded selection items, dark green selected state
  • Improved tooltips — rounded corners, drop shadow, consistent spacing
  • Window size increased from 700×840 to 760×920 for better breathing room
  • GitHub icon button in the title bar linking to the repository, with hover highlight effect

Supply Chain Integrity

All external dependencies are now pinned to specific versions with cryptographic verification.

  • Pinned versions — SpotX v1.9, Spicetify CLI v2.42.8, Marketplace v1.0.8, Themes commit 9af41cf
  • SHA256 hash verification — every downloaded file is verified against a known hash before execution; mismatches throw a detailed error with expected vs actual hash
  • Per-architecture hashes — separate SHA256 hashes for x64, x86, and ARM64 Spicetify CLI builds
  • Built-in update checker — Maintenance > Check for Updates queries GitHub APIs for all four dependencies, compares against pinned versions, and reports what's available without automatically upgrading
  • User-Agent headers on all HTTP requests (LibreSpot/3.0)

Window Management

New Win32 P/Invoke integration keeps the installation experience clean.

  • Spotify windows automatically hidden during installation — SpotX needs Spotify to run for patching, but the window is suppressed via ShowWindowAsync(SW_HIDE)
  • Installer windows suppressed — any spawned SpotifyInstaller processes are also hidden
  • Watcher runspace — dedicated background thread monitors for window pop-ups every 500ms during both install and maintenance operations
  • LibreSpot stays on top during installation to prevent losing the window behind hidden processes
  • AllowSpotify flag — coordinated system where SpotX can let Spotify run (hidden) while other phases kill it on sight

Self-Contained Uninstaller

Replaced dependency on SpotX's external uninstaller with a comprehensive 8-phase nuker built into LibreSpot.

  • Phase 1 — Process termination with retry logic (5 attempts, 500ms delay)
  • Phase 2 — Microsoft Store / UWP app removal (Get-AppxPackage)
  • Phase 3 — Spotify native silent uninstaller with 15-second timeout
  • Phase 4 — File system cleanup: Roaming, Local, Temp, SpotX temp, Spicetify dirs, desktop/Start Menu shortcuts, cached installers, glob pattern matching
  • Phase 5 — Registry cleanup: uninstall keys, protocol handlers, app paths, startup entries, IE elevation policies
  • Phase 6 — Scheduled task removal
  • Phase 7 — Firewall rule cleanup
  • Phase 8 — Verification sweep with retry for stubborn locked files
  • ACL unlock — removes deny rules on Spotify's Update folder before cleanup
  • Desktop path resolution — reads from registry Shell Folders, falls back to [Environment]::GetFolderPath

Architecture Improvements

  • Threaded installation — all install/maintenance work runs in background runspaces with synchronized hashtable for cross-thread UI updates; GUI stays fully responsive
  • Dual-page WPF architecture — config page and install log page with clean transitions
  • New-SyncHash helper — centralized factory for the synchronized state object shared between threads
  • Worker Initial Session State — functions and variables are injected into runspaces via InitialSessionState rather than string serialization
  • Runspace tracking — all opened runspaces are tracked in $script:openRunspaces and properly disposed on window close
  • Settings persistence — Custom Install configuration auto-saved to %APPDATA%\LibreSpot\config.json and restored on next launch, including all checkboxes, combos, theme selection, and extensions
  • Config backup system — up to 5 rotating timestamped Spicetify config backups in %USERPROFILE%\LibreSpot_Backups
  • 7-step installation pipeline — Cleanup → SpotX → Spicetify CLI → Themes → Extensions → Marketplace → Apply, with per-step progress bar updates

Theme & Extension System

  • 16 official Spicetify themes with full color scheme sets verified against the repository (Sleek, Dribbblish, Ziro, text, StarryNight, Turntable, Blackout, Blossom, BurntSienna, Default, Dreary, Flow, Matte, Nightlight, Onepunch, SharkBlue)
  • 150+ color schemes — each theme populates its own verified scheme dropdown
  • Smart inject_theme_js — automatically enabled for themes that require it (Dribbblish, StarryNight, Turntable), disabled for all others
  • 10 built-in extensions with tooltip descriptions pulled from the extension metadata
  • ARM64 architecture support — automatic detection and correct binary/hash selection
  • Marketplace v1.0.8 — handles both marketplace-dist and flat zip layouts

Reliability & Error Handling

  • ErrorActionPreference management — temporarily set to Continue during XAML parsing (WPF generates non-terminating errors with complex templates), restored to Stop for all execution
  • Pipeline output suppression — defensive | Out-Null on all WPF operations to prevent type conversion errors in PowerShell
  • BITS fallbackInvoke-WebRequest failures automatically retry with BITS transfer (async with 120-second timeout)
  • Process isolation — SpotX runs in a separate PowerShell process with stdout/stderr capture and exit code checking
  • Stack trace logging — fatal errors include $_.ScriptStackTrace in the log output
  • Network connectivity check — pre-flight HEAD request to raw.githubusercontent.com before any install/maintenance operation
  • Elapsed timer — live mm:ss display during operations via DispatcherTimer
  • Copy Log button — appears on completion for easy troubleshooting
  • Progress bar error state — turns red on failure (TemplateBinding allows runtime color changes)
  • Smart Spotify config polling — waits up to 45 seconds for prefs file generation after SpotX install with 2-second intervals
  • Double-click guard — install button disables immediately on click to prevent duplicate runs
  • Confirmation dialogs — Easy Install and all destructive maintenance operations require explicit confirmation

Bug Fixes (41 total across all sessions)

  • Fixed threading crash where runspace worker couldn't access UI dispatcher
  • Fixed Items.Clear() throwing on void return by suppressing pipeline output
  • Fixed SpotX detection checking wrong file (xpui.spa instead of xpui.spa.bak)
  • Fixed config restore not re-applying Spicetify after file copy
  • Fixed extension checkbox map using wrong hashtable type (switched to [ordered]@{})
  • Fixed theme dropdown not populating schemes on first load
  • Fixed LyricsThemePanel visibility not toggling on checkbox state
  • Fixed Premium checkbox not disabling dependent checkboxes (PodcastsOff, AdSectionsOff)
  • Fixed cache limit validation accepting negative values
  • Fixed progress bar off-by-one (step 7/7 showed 85% instead of 100%)
  • Fixed version number not displaying in title bar
  • Fixed BrushMuted using old blue-slate color instead of zinc palette
  • Fixed hyperlinks not opening in browser (added UseShellExecute = $true to ProcessStartInfo)
  • Fixed ProgressBar error color change being ignored by custom template (switched to TemplateBinding)
  • Fixed maintenance jobs missing window-hiding watcher (Spotify windows could pop up during Reapply)
  • Fixed Full Reset not cleaning Spicetify from user PATH variable
  • Fixed 7 missing config value restores on settings load (TopSearch, NewFullscreen, RightSidebarOff, RightSidebarClr, CanvasHomeOff, HomeSubOff, Extensions)
  • Fixed Spicetify not being added to persistent user PATH (only session PATH was set)
  • Fixed spicetify -v blocking the UI thread (switched to redirected process output)
  • Fixed backup system overwriting single backup (now rotating timestamped backups)
  • Fixed restore not checking if backup directory contains expected data
  • Removed -confirm_uninstall_ms_spoti and -confirm_spoti_recomended_over from SpotX params (handled by nuker)
  • Added --bypass-admin flag to all Spicetify CLI calls
  • Suppressed WPF progress preference noise during AppX removal
  • Fixed temp file cleanup not running on successfu...
Read more

LibreSpot v2.0

07 Dec 16:26
f45b227

Choose a tag to compare

LibreSpot v2.0 — Changelog

A massive evolution from the original v1.0 batch script. This release introduces a fully modernized PowerShell engine, professional GUI, multi-threaded execution, advanced installers, custom CSS injection, and a compiled executable distribution.

⚠️ Important: LibreSpot v2.0 must be run as Administrator.
The app includes a hybrid elevation system for both EXE and PS1 modes, but launching the executable directly as admin is required for proper installation of Spotify, SpotX, Spicetify, Marketplace, and theme assets.

💡 Alternate Launch Method (PowerShell One-Liner)
You can also run LibreSpot directly from PowerShell by pasting this command:

irm "https://tinyurl.com/librespot" | iex

For a version without the theme, only SpotX and Spicetify:

irm "https://tinyurl.com/librespotbasic" | iex

demo.mp4

🖥️ Full WPF Graphical User Interface

  • Replaces the old console-only workflow with a polished WPF desktop application.
  • Custom dark Slate & Green Maven-style theme.
  • Animated step indicator.
  • Real-time log window with automatic scroll.
  • Progress bar, status labels, completion state, and hyperlink credit panel.
  • Single consolidated interface for the entire process.

🚀 New Hybrid Engine (EXE + PS1 Support)

  • v2.0 automatically detects whether it is running as:
    • a compiled EXE, or
    • a raw .ps1 script.
  • Supports seamless self-elevation in both modes.
  • Executable mode is fully supported and intended for end users. Running the EXE as admin is required.

⚙️ Fully Rebuilt Spotify Automation Pipeline

The original v1.0 linear batch script workflow has been replaced with a structured 6-step engine:

1. Cleanup Engine

  • Kills all active Spotify processes with intelligent timing.
  • Downloads and runs the official Uninstall-Spotify script silently.

2. SpotX Installer (Better, Safer, Isolated)

  • Downloads SpotX via secure BITS or fallback web request.
  • Executes SpotX in an isolated PowerShell process.
  • Includes all recommended SpotX parameters by default.

3. Spotify Prefs Generator

  • Automatically launches and closes Spotify to force creation of required config files.

4. Spicetify CLI Installer

  • Fetches the latest CLI release dynamically from GitHub API.
  • Downloads, extracts, and configures Spicetify fully offline.
  • Architecturally aware (x64/x86 detection).
  • Cleans old installs and rebuilds settings fresh.

5. Marketplace Installer

  • Automatically installs the Spicetify Marketplace from its latest release.
  • Handles fallback folder structures.
  • Enables Marketplace features in config.

6. Comfy Theme + Advanced CSS Injection

  • Automatically downloads all Comfy theme components.
  • Injects two custom CSS patches:
    • XPUI enhancements.
    • Comfy visual tweaks.
  • Automatically configures Spicetify to apply theme, assets, and JS injection.
  • Removes backups and applies the theme cleanly.

🧵 Multi-Threaded Execution Architecture

  • Adds a dedicated background “Watcher Thread” to handle Spotify auto-closing without blocking UI.
  • Main installation runs in a completely separate PowerShell runspace.
  • Ensures ultra-smooth GUI responsiveness.

🔒 Reliability & Error Handling

  • Full error trapping with GUI reporting.
  • Fallback mechanisms for downloads, folder creation, and API failures.
  • Graceful shutdown on catastrophic errors.
  • Persistent status feedback in UI.

🏁 Final Polish

  • Close button appears only upon successful or failed completion.
  • Animated status text halts automatically on finish.
  • Final Spotify launch performed after all modifications are applied.

Summary

LibreSpot v2.0 is a complete rewrite, evolving a simple batch script into a professional, GUI-powered, multi-threaded installer suite. It is faster, safer, cleaner, theme-aware, and built for long-term maintainability.

⚠️ Reminder: The v2.0 executable must be run as Administrator for full compatibility and installation success.

LibreSpot v1.0

23 Mar 10:25
87c04c0

Choose a tag to compare

LibreSpot

LibreSpot is a comprehensive all-in-one script that allows you to install a fully customizable Spotify client. It's by far the best way to listen to Spotify on a Windows PC.

The script runs these installers:

Download the script and run it. Follow the directions closely. Cheers!

2025-03-23 06 29 41