github sunnypatell/sunnify-spotify-downloader v2.4.0

9 hours ago

what's changed

fixed

  • the headless CLI now prints on Windows (closes #92). a Windows .exe is linked for exactly one subsystem - WINDOWED (no console when the GUI is double-clicked) or CONSOLE (the shell waits and output reaches the terminal), never both - so the all-in-one binary that opens the GUI printed nothing and exited 0 when run as sunnify <cmd> in a terminal. attaching to the parent console can't fix it (the shell doesn't wait for a windowed process) and --hide-console is unreliable on Windows 11 / Windows Terminal, so every Windows release now also ships Sunnify-Windows-CLI.exe, a console build from the same spec and the same code - pyinstaller's own two-binary answer, the python.exe/pythonw.exe model. the one-line installer puts it on your PATH as sunnify, and typing sunnify still opens the GUI. the double-click GUI download is byte-for-byte unchanged, and macOS/Linux have no subsystem split so they were never affected.
  • CLI output no longer crashes on a legacy Windows code page. the /»/ glyphs doctor and download progress print raised UnicodeEncodeError on a cp1252 console or a redirected pipe; stdout/stderr are now forced to utf-8 (PEP 528), so a glyph degrades to ? at worst and a run never aborts.

nothing changed for macOS or Linux, and the GUI is untouched on every platform - this is a Windows-CLI-only release.


verifying this release: every asset, including the new Sunnify-Windows-CLI.exe, is covered by SLSA build L3 provenance - gh attestation verify <asset> --repo sunnypatell/sunnify-spotify-downloader, or check checksums.txt with sha256sum -c.

install via homebrew (macos):

brew tap sunnypatell/sunnify https://github.com/sunnypatell/sunnify-spotify-downloader
brew install --cask sunnify

full changelog: v2.3.0...v2.4.0

thanks @de666 for flagging #92.

⭐ if sunnify saved you time, star the repo - stars are how people find it.

attestations from this build

direct links to each attestation generated by the workflow run that produced these binaries (sigstore-signed, public-good rekor log entry, SLSA build L3 via the release-build.yml reusable workflow):

the *.sigstore.json assets attached above are the same attestations as offline-verifiable bundles. these get auto-refreshed on every release re-build, so the links above always correspond to the binaries currently attached to this release.

Don't miss a new sunnify-spotify-downloader release

NewReleases is sending notifications on new releases.