github lokal-music/lokal v12.3.2
Release v12.3.2

2 hours ago

Release Banner

Merge pull request #635 from lokal-music/release/v12.3.2


Changelog

Windows builds: free code signing provided by SignPath.io, certificate by SignPath Foundation (code signing policy).

FYI:
Lokal is 100% local; the library, history, anything in database, or any info that is used for API's such as yt-dlp, LRCLIB, is NOT seen by us.

What's Changed

  • refactor(desktop): unify provider acquisition and eliminate playback-only resolution stalls (#634)

    Details

    What changed

    A core Morneye playback rework across Qobuz, Tidal, Deezer, Amazon and other installed download providers:

    • Play and Save now use the same provider availability→download path. A successful availability check begins acquisition directly; a negative result retries once after optional enrichment for every provider, including native Tidal. No Tidal-specific bypass remains.
    • Only Qobuz may hand a verified growing direct-file transfer to the player. Other Morneye sources use completed, codec-checked download files, without speculative live probes.
    • Completed non-live audio moves into playback cache instead of incurring a second full-file copy when on the same volume (cross-volume copy remains).
    • Provider authorization and failed availability retries are bounded. Download requests abort after 90 seconds of no real transfer/progress; this watchdog is only active during download, not interactive verification.
    • Logs expose initialization, availability, retry, first byte, download completion, Qobuz live readiness and final playback readiness without track IDs, tokens, signed URLs or credentials.

    Coverage

    Added a desktop Morneye integration regression verifying both Play and Save for a native Tidal track: availability → enrichment → availability → download, plus provider parity/header tests. Native YouTube/SoundCloud/Monochrome and HTTP sources were not changed.

    Validation still needed

    node --test scripts/provider-progressive-parity.test.mjs scripts/mornye-packages.test.mjs and desktop build. Real authenticated provider tests must compare click→first byte, click→playable, buffering and seek behavior. No measured timing parity or passing CI is asserted here. For segmented/DRM sources playback cannot start before the usable file has been assembled.

    Summary by CodeRabbit

    • New Features

      • Qobuz playback can now begin while media is still downloading, with readiness updates.
      • Downloads show transfer progress when supported.
    • Bug Fixes

      • Track availability is rechecked after enrichment when needed, improving acquisition when initial metadata is incomplete.
      • Downloads that stop receiving audio for 90 seconds now fail with a retryable error.
      • Completed downloads are staged more reliably, including when moving files across storage locations.

Contributors: @CHEYCKIT

Full Changelog: v12.3.1...v12.3.2


Setup

See README.md for full setup instructions.

macOS: this build is ad-hoc signed, not notarized (no Developer ID certificate is configured). The first time, right-click Lokal in Applications and choose Open, or run xattr -dr com.apple.quarantine /Applications/Lokal.app.


Binary Checksums (SHA-256)

Lokal-12.3.2-arm64-mac.zip: [AC340266405E1F95524453083E3CB2C1B969D6825D6E7DF0A9C235173331D598]
Lokal-12.3.2-arm64-mac.zip.blockmap: [6D5CCCAAC2808D793F394EBBE18838B0A3DA0D6B2385DAD9E100BA7FED2B057D]
Lokal-12.3.2-arm64.AppImage: [CE428F9E1CF0FDF720F12958A1519E2F118CD7AAF92A0DA98F749E39BEA2E7EF]
Lokal-12.3.2-arm64.dmg: [957BF45F0E620F34E09B1F3629187D0325F116DAD3D24EBC47AC6207D7E36874]
Lokal-12.3.2-arm64.dmg.blockmap: [6DD4388598952F15796662E5EB4AD317DD6E7F3BE522B20D96A8349A2332115B]
Lokal-12.3.2-mac.zip: [7FCB76BBB4DFD42C345D611878F6150C5B50AEDF97E3D7CE86548A4A5EE5A76E]
Lokal-12.3.2-mac.zip.blockmap: [31ECDDC570D34CDA23AED2D636EFF86F713DE76A36239ADD99532BE81612421D]
Lokal-12.3.2.AppImage: [5FB3522AC2233E70CB84E6D17F492BBA0E48D3DDA1C374BE793F9555BE29702C]
Lokal-12.3.2.dmg: [8F90C8CEAFD981144AEE8626C719BC5B708A59B68A3A63043ED43A536ECACF01]
Lokal-12.3.2.dmg.blockmap: [4D887D145E0017B8EFEAB81EFD6A121ABB4EF9598092316B5BDE5606A9954A32]
Lokal-12.3.2.exe: [FEE25C7D0CE150917FE7502564A1CA4DB32F81A5ED80B052FCBEDA82BBA5ECE5]
Lokal-Setup-12.3.2.exe: [B49CD2CC8B922873BFE5E98BC614929AB459B1AC229233562E746DEEEFBFAE50]
Lokal-Setup-12.3.2.exe.blockmap: [3B07928357644B7EDB762435F9526236374879D8C481AAC4B16AF0CA760CCB7E]
builder-debug.yml: [CF7ADD70790736A4ACA33177A719D5FD3221300E98ACF45EC49CED673EE8E1E3]
latest-linux-arm64.yml: [26127DF2966276DF543AFD8023BB5A4E0066554F5D8C57401DFB9DA82D56251A]
latest-linux.yml: [DA9297DCCF062E5590F5AFD4F8CC8780EA5574DE277987CD0007DAC66BEB5172]
latest-mac.yml: [AF8025DD152899ADD0E6CE2645AF5D41B5BC711DCF6CE4343504CAB18EA5C8B0]
latest.yml: [9C6704E029BEC27A5944224D71192CC351781180D4DD39DD17F2265556169B8D]
lokal-music_12.3.2_amd64.deb: [25AE56C19B1E5BD31B3C88F17626BF278CD0AAAEF3A9DA1E64E0828DF5EDDE6B]
lokal-music_12.3.2_arm64.deb: [02693C37D24689938D4560F2FD8C48350B4CE3FAB83A09D9BB5D9EAE3571968C]

Don't miss a new lokal release

NewReleases is sending notifications on new releases.