github lokal-music/desktop v14.1.4
Release v14.1.4

one hour ago

Release Banner

Merge pull request #741 from lokal-music/release/v14.1.4


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

  • Fix LastWave desktop search artwork and stream URL parity with mobile (#740)

    Details

    Diagnosis

    The mobile HTTP add-on path already handles missing cover metadata and streamURL inline media from search; desktop did not. Desktop only accepted streamUrl (lowercase u) in the /stream decoder and MPD manifest detection. LastWave search can omit artworkURL altogether, so desktop showed placeholders, although it already has a Deezer/Apple/YouTube artwork resolver. The uploaded user log contains no LastWave request-specific failure, so these are verified code mismatches, not yet a verified cause of every reported playback failure.

    Changes

    • Recognize streamURL, downloadURL, mediaURL aliases in nested /stream responses and DASH manifest extraction.
    • Cache a clearly progressive HTTPS streamURL from a search result privately in the Electron process, using it for playback when no explicit quality preference is configured. Reject previews, encrypted/DRM links, header-dependent links, suspicious media hosts and opaque URLs; fallback to the regular /stream flow. Force retry and downloads continue through /stream.
    • Match mobile's cover fallback for HTTP search results: backfill missing images asynchronously in bounded groups using Lokal's existing artwork resolver, protect against stale search/provider changes, and preserve the artwork in result metadata for queue/save.
    • Add redacted [online-addon-search] and [online-stream] prepare diagnostics so subsequent failures can be identified without revealing account tokens or signed media URLs.
    • Regression fixtures cover missing search artwork, inline streamURL, nested uppercase /stream URLs, MPD streamURL and explicit quality settings.

    Validation and remaining uncertainty

    Reviewed source parity against lokal-music/mobile/lib/features/discovery/discovery_sources.dart and discovery_artwork.dart. Backend JavaScript parses successfully. CI workflow Desktop LastWave and background lyrics runs the expanded lastwave-desktop-port.test.mjs, related signing/hybrid tests, and compiles Vite frontend.

    No authenticated live LastWave endpoint test has been performed: the supplied application log has no LastWave request-specific event and does not establish whether the user's configured HMAC signing key or CDN availability is correct. Do not claim live playback success before retesting the actual account on the built app. This change does not alter unsigned HTTP add-ons' signing rules or embed any signing key.

    Summary by CodeRabbit

    • New Features

      • Add-on search results can now use eligible direct recording links for playback, while playback settings that specify quality or format continue to use the provider’s stream resolution.
      • Missing artwork can be filled in for add-on search results when matching artwork is available.
      • More add-on playback links and artwork fields are recognized.
    • Bug Fixes

      • Improved handling of add-on search results that include playback links, helping tracks play and display artwork more reliably.

Contributors: @CHEYCKIT

Full Changelog: v14.1.3...v14.1.4


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-14.1.4-arm64-mac.zip: [13210845C230984B6B5C9159C7077A7A7F481B185A191935169B3BED1AD91C7B]
Lokal-14.1.4-arm64-mac.zip.blockmap: [D7B3B64897FB662C5BF451E81C5E2D75CE24D03D12F7AB44E38F5D4CDF324300]
Lokal-14.1.4-arm64.AppImage: [CFB24D56AC514D99C09592C1E143E9B77E9B4F9A100789C46609AA864EA713B4]
Lokal-14.1.4-arm64.dmg: [C3A857BBEAA91F57B390DB15AA01F3B296C059C9F76262F8A8FB81D8E3352D9D]
Lokal-14.1.4-arm64.dmg.blockmap: [44A239778215D7DD5FB96F1FB9AFF36ABA696BB0F35902CCB5FF4B1E06A3D743]
Lokal-14.1.4-mac.zip: [B488B43289C198CC3CE59A66F88ADEDF618568A61A24E41A15F77B99CC774A57]
Lokal-14.1.4-mac.zip.blockmap: [F082F9AF9C0CB6B184DC933C5AB8B79763F04147F31CC8B5BBAECAFFC2B3F736]
Lokal-14.1.4.AppImage: [690C0DC124FA2177030AAF745A695A1AA67069C10B04259475818366432B0E2B]
Lokal-14.1.4.dmg: [2786F20CF5A61E3CEA81B4ECEA2FD8F761D99E34C2FFF43DA82CBBDEA5880E27]
Lokal-14.1.4.dmg.blockmap: [6501AC4F909A8291A26C0623E1B8BF0DED537FA2760A52908C9F884D3699793F]
Lokal-14.1.4.exe: [32890FF4464BC5FDF8945CBB1DAD1825F876F4604CFCA19F95F46D38E5992334]
Lokal-Setup-14.1.4.exe: [6F928BA945E1BF51747B5247A7438EB3A0034706BDF98F8BD9F582BBF1CDE963]
Lokal-Setup-14.1.4.exe.blockmap: [FB2470E1AD52527483B17B33D579029E9DEB9E80ECD00549408431679C700E42]
builder-debug.yml: [0815839BDDE2EA9C51271AB8CF80AE42B94F1CE071CCBAA9105AA5041B5429FF]
latest-linux-arm64.yml: [37B63A3AB37EF039A035E5025F06CCE32F2279182C62D04F49C71E11ABEC3776]
latest-linux.yml: [D1B7CD66061D43EE4DAC6012A5659E01186FD7F2BA32E94EEAFB53917DD5513C]
latest-mac.yml: [CD3E2DEA724138D147657F21E5C9BDBA59A2580283C4E83039EFF3CC97BA500D]
latest.yml: [87E2C1058BB8E907D174EF8AB658C537A2843619C01637F01B9BF5F31CA3479C]
lokal-music_14.1.4_amd64.deb: [E1368B06CB70611491771286AB01E3EEE941ED756FFF22D756495B390827F9D2]
lokal-music_14.1.4_arm64.deb: [F12F039D2FE47BE8EE4E1A165FEC38AC1B3A42D499C5043BC14AFFF4649ECCB0]

Don't miss a new desktop release

NewReleases is sending notifications on new releases.