Skip to content

Releases: LUC4N3X/Levyra-deepsound

Levyra 2.3.21

Choose a tag to compare

@github-actions github-actions released this 18 Aug 19:14

Levyra 2.3.21

Highlights

Levyra 2.3.21 is a broad Android update that brings together the work merged after 2.3.20: a redesigned Now Playing experience, substantially improved Canvas presentation, richer Search, album and playlist batch downloads, a cleaner Library, serverless playlist sharing, optional DeArrow video metadata, major offline-download fixes, and a stronger YouTube playback compatibility layer.

The release also hardens Levyra against recent YouTube stream-delivery, HTTP 403 and PoToken changes. Playback now has more reliable source selection and recovery paths, while a bounded server-driven compatibility policy can adjust already-implemented resolver/client choices without downloading executable code or silently changing Levyra's privacy and security model.

What's New

Player, Canvas and Mini Player

  • Reworked Now Playing around a single artwork-derived ambience so artwork, Canvas, metadata, timeline and controls read as one composition instead of stacked layers.
  • Refined the mini player with a calmer ambience-tinted surface, lighter chrome and a more deliberate progress treatment.
  • Improved transport hierarchy, spacing, contrast and player action placement.
  • Added Levyra's signature playback-wave polish to the timeline and media presentation while keeping animation tied to actual playback state.
  • Canvas now preserves the source aspect ratio instead of stretching motion artwork to the display.
  • Improved center-crop limits for unusually shaped Canvas sources so video remains proportional and blends into the surrounding ambience.
  • Increased the quality ceiling for immersive Canvas presentation while keeping a lighter budget for smaller artwork surfaces.
  • Improved selection of high-resolution Apple editorial motion artwork and matching for singles that have missing or generic album metadata.
  • Added smoother static-artwork to Canvas transitions and improved contrast behind title, artist, timeline and transport controls.
  • Added persistent Canvas quality preferences, including Auto, Data Saver and High.
  • Added persistent Canvas source preferences for the supported motion-artwork providers.
  • Added a hardened community/Spotify Canvas catalog path alongside Apple and Tidal fallbacks, with static artwork remaining the permanent fallback when no safe match exists.

Search and Discovery

  • Search now treats songs, music videos, albums, artists and playlists as real separate entities.
  • Added Playlists and Videos as dedicated result categories.
  • Entity classification now follows YouTube Music navigation/page metadata instead of localized subtitle words, improving behavior across languages.
  • Added independent per-section pagination and loading/error state so "Show all" can expand one result type without inflating or blocking the whole search screen.
  • Improved canonical deduplication so the same album or entity returned through different endpoints does not appear repeatedly, while genuinely distinct releases remain separate.
  • Improved artist result handling, album deduplication and video artwork fallbacks.
  • Isolated artist verification, track enrichment and album refinement so a failure in one enrichment path does not erase otherwise valid search sections.

Album and Playlist Batch Downloads

  • Album and playlist downloads are now grouped into persistent batches instead of behaving like unrelated per-track jobs.
  • Batch state includes aggregate progress, retry and cancellation behavior.
  • Batch children reuse the existing Room and WorkManager persistence path so progress can survive process recreation.
  • Completed and cancelled batches are kept out of the active Library surface while failed batches remain visible for retry.
  • Fixed batch membership and continuation edge cases found during review, including repeated continuation tokens and overlapping ownership of the same track.

Downloads and Offline Reliability

  • Fixed downloads that could stall around 4% before media bytes were actually transferred.
  • Fixed tracks that downloaded only on the second attempt because a rejected probe incorrectly discarded an otherwise valid export source.
  • Levyra can now reuse a complete progressive muxed MP4 when YouTube does not provide a usable audio-only stream, then extract the audio track locally with Media3 Transformer before normal tagging and MediaStore registration.
  • Improved HTTP range validation, stale-source rejection and bounded range planning for offline exports.
  • Fixed first-attempt download failures that could also interrupt or stall the track currently playing.
  • Offline export now uses cache/failure handling isolated from live playback so a failed download cannot incorrectly quarantine the healthy source used by the player.
  • Concurrent exports of the same track are coalesced around the cache writer instead of pulling the same bytes from upstream multiple times.
  • Improved cleanup and staging-space handling when a muxed source must be reduced to audio.

Library

  • Redesigned the Android Library around a clearer, more compact hierarchy while preserving existing actions.
  • Simplified the header, category navigation, search, sort and selection controls.
  • Rebuilt track-row hierarchy so title, artist and technical metadata are easier to scan.
  • Consolidated secondary actions into a cleaner overflow flow while preserving play, queue, playlist, download and delete behavior.
  • Improved single-download removal with confirmation and clearer empty states for an empty Library versus an empty search result.
  • Simplified the offline-download summary and fixed search-field clipping/layout issues.
  • Fixed Listening Pulse header wrapping and weekly-chart scaling issues.

Playlist Sharing

  • Added serverless Levyra playlist sharing through a versioned Levyra payload and levyra://playlist deep link.
  • Shared playlists carry bounded playlist metadata and track identities rather than private playback URLs.
  • Received playlists reuse Levyra's existing preview/import resolution flow and can be resolved against current playable sources before import.
  • Added integrity and size limits to keep shared payloads bounded and deterministic.

Video Metadata

  • Added an optional DeArrow-backed video metadata enhancement path.
  • When enabled, supported video items can use community-improved titles and thumbnails.
  • The setting is opt-in and is scoped to video metadata rather than rewriting normal music-track identity.

Playback Reliability

YouTube stream selection and recovery

  • Levyra now rejects adaptive GoogleVideo audio sources that cannot reliably serve a complete track instead of allowing playback to stop after the initial buffered portion.
  • When needed, playback can fall back to a complete progressive source while remaining in Song mode.
  • Improved handling of failed or no-op YouTube n transformations so a throttled URL is not published as if it were healthy.
  • Added/refined VisionOS and Android Reel paths and bounded Android Reel responses.
  • Improved quarantine behavior so the URL that actually failed is rejected on the next resolution attempt instead of immediately looping back into the same 403 source.
  • Fixed cases where native Video mode reused an audio-only cached source and produced audio over a blank video surface.
  • Preserved original song identity across Song -> Video -> Song round trips.

PoToken compatibility

  • Restored playback against newer YouTube anti-bot behavior using Levyra's existing PoToken infrastructure.
  • PoToken-capable/attested playback paths are preferred when the current response requires them.
  • Android Reel can act as a proven song fallback when ordinary audio candidates are stale or rejected.
  • The local YouTube player configuration and decoder paths have been synchronized with the current playback strategy.

Server-driven compatibility policy

Levyra now includes a bounded server-driven playback compatibility policy. It may adjust only behavior that already exists in the APK, such as resolver strategy order, supported client enable/disable state, client priority, selected client versions and PoToken requirements for implemented clients.

The policy cannot download executable code, inject arbitrary endpoints, add credentials, provide cookies or introduce a new playback implementation. Invalid policies are rejected and the last known-good policy remains available locally. Playback failures can request an early refresh so selected upstream compatibility changes do not always require an emergency APK.

Queue precache and crossfade

  • Improved reuse between queue precache, manual skip, auto-advance and crossfade preparation.
  • Already resolved upcoming tracks can be reused instead of resolving the same queue item repeatedly.
  • Crossfade preparation can reuse warmed data while the main MediaSession player remains the authoritative playback owner.

Platform and Dependency Updates

  • AndroidX Media3 moved from 1.10.1 to 1.11.0 across the Android media stack.
  • Compose BOM moved to the 2026.08 generation.
  • Baseline Profile tooling moved to the 1.5.0 release-candidate line.
  • Existing Android package identity, signing identity and Android/Desktop version separation remain unchanged.

Foundations Included in This Build

The 2.3.21 development cycle also adds provider-abstracted foundations for music recognition and remote/Cast playback handoff. These are deliberately not advertised as active end-user services in the default build: the recognition path still requires a compatible backend, and the standard/F-Droid build does not ship a proprietary Cast backend. The abstractions are present so a future implementation can integrate without duplicating Levyra's player, queue or DSP state architecture.

F-Droid and Repository Hardening

  • Hardened the F-Droid dependency/network disclosure contract an...
Read more

Levyra 2.3.21 for F-Droid

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Aug 19:21

Upstream-signed F-Droid variant built from commit 46b2306. F-Droid must reproduce this APK before publishing it.

Levyra 2.3.20

Choose a tag to compare

@github-actions github-actions released this 14 Aug 13:33
be64fed

Levyra 2.3.20

Highlights

Levyra 2.3.20 is a focused reliability release for external playback controls. Hardware media keys, remotes, lock-screen and quick-panel transport controls and other media controllers can now skip to the next or previous track, which previously only worked inside the application. The shuffle and favorite media-control labels are also served from the string catalog instead of being hardcoded to Italian. Libraries, favorites, playlists, downloads, queue state and settings are unchanged.

What's New

External skip controls

  • The playback session now advertises the standard next-track and previous-track transport commands, so media buttons, headset and car remotes, the lock screen, the system media panel and other media controllers can change track.
  • Next and previous requests coming from outside the application are routed through the existing queue engine, so radio expansion, repeat mode, shuffle, history and queue persistence behave exactly as they do for the in-app controls.
  • Previous still rewinds to the start of the current track when playback has advanced past the first seconds, matching the in-app behavior and standard media-player conventions.
  • The previous redundant custom next and previous notification actions were removed now that the standard transport controls are available in every surface.

Localization

  • The shuffle and favorite media-control labels are now provided by the string catalog with an English default and an Italian translation, instead of being hardcoded to Italian in the playback service.

Fixes

  • Fixed next-track and previous-track commands being ignored by hardware media keys, remotes, the lock screen, the system media panel and other external media controllers.
  • Fixed the shuffle and favorite media-control labels being hardcoded to Italian for every language.

Notes

This is an Android-only release. The separately versioned Windows application remains on its own release channel and is not rebuilt or republished by this Android version bump. No permission, dependency, SDK, shrinker or signing configuration was changed.

Versioning

  • Version name: 2.3.20
  • Version code: 2032000

Validation

  • Android release metadata, Gradle fallbacks, documentation badges, user agents, and Fastlane changelogs were aligned to version 2.3.20.
  • The release guard verifies version-name, version-code, tag, release-notes, signing, and publishing consistency.
  • The signed GitHub APK and the reproducible F-Droid APK are produced from the same commit by the protected release workflow.
  • External next and previous transport commands were verified with the debug variant on a physical Samsung SM-S936B running Android 16 (SDK 36), including track change, previous-rewind behavior and play/pause.
  • Existing signing identity and GitHub/F-Droid update compatibility remain unchanged.

Upgrade notes

No migration is required. Existing libraries, favorites, downloads, playback state, and settings remain compatible after updating. GitHub installations continue to receive the signed GitHub release; once the F-Droid metadata is merged, F-Droid installations receive the corresponding reproducible build through F-Droid.

Final note

Levyra 2.3.20 makes the player behave correctly everywhere Android exposes media controls, so skipping a track no longer requires opening the application.

Levyra 2.3.20 for F-Droid

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 13:41
be64fed

Upstream-signed F-Droid variant built from commit be64fed. F-Droid must reproduce this APK before publishing it.

Levyra 2.3.19

Choose a tag to compare

@github-actions github-actions released this 08 Aug 10:37

Levyra 2.3.19

Highlights

Levyra 2.3.19 focuses on reliable playback, safer updates, faster access to music, and a more consistent Android experience. The release strengthens YouTube Music recovery, introduces Levyra Nexus as a shared reliability layer, expands chart and track actions, and improves accessibility without changing existing libraries, downloads, or preferences.

What's New

Resilient playback and network routing

  • Added verified YouTube Music fallback paths for cases where a primary request or media endpoint is unavailable.
  • Introduced adaptive route health tracking so temporary failures do not unnecessarily disable healthy playback routes.
  • Improved denial handling and retry balance to avoid repeated requests while still recovering when service access resumes.
  • Updated embedded player configurations used by the local decoder.
  • Hardened fallback selection so incompatible or unverifiable media alternatives are rejected.

Levyra Nexus reliability core

  • Added the dependency-light Levyra Nexus module for shared network, playback, and update decisions.
  • Routed Android network intelligence through Nexus while keeping platform-specific behavior inside the app.
  • Added typed results and explicit transition semantics for predictable recovery behavior.
  • Introduced route-health scoring with tests for success, transient failure, denial, and recovery.
  • Connected update selection to Nexus so only compatible, verifiable release artifacts can be offered.

Charts and discovery

  • Added YouTube Music chart feeds with official artwork resolution.
  • Improved country-aware chart discovery and playlist shortcuts.
  • Added faster access to Top 50 playlists from the relevant Home and Library surfaces.
  • Refined chart parsing and playable-track matching with additional regression tests.
  • Synced extractor player data with the current supported playback configuration.

Track actions and artist presentation

  • Added a long-press action sheet to tracks in the Personal Orbit shelf.
  • Added consistent actions for opening albums, artists, playback, queue, favorites, and related destinations.
  • Improved artist imagery and presentation consistency across Home, Library, and detail surfaces.
  • Ensured the track action sheet honors the reduced-animation preference.
  • Improved semantics, focus behavior, and accessible labels for assistive technologies.

Settings and usability

  • Reorganized settings into a clearer category hub.
  • Improved navigation and grouping for playback, appearance, privacy, storage, and advanced options.
  • Refined labels and localized copy across supported languages.
  • Improved Android Auto library behavior and several navigation edge cases.

Reliability and security

  • Update artifacts now require a valid version, supported ABI, HTTPS download URL, SHA-256 digest, and compatible package metadata.
  • Update comparison rejects malformed semantic versions and unsafe fallback assets.
  • Network routing records failures conservatively and avoids treating one denied request as permanent route failure.
  • Playback transition behavior is covered by dedicated Nexus tests.
  • No analytics, advertising, or developer telemetry was added.
  • F-Droid builds continue to disable the GitHub self-update prompt and use F-Droid metadata for updates.

Fixes

  • Fixed fallback behavior that could select an incompatible YouTube media candidate.
  • Fixed request-denial health accounting that could penalize clients too aggressively.
  • Fixed album lookup consistency in the new track action sheet.
  • Fixed animation behavior in the action sheet when reduced animations are enabled.
  • Fixed several chart parsing and playable-track matching edge cases.
  • Fixed update selection accepting artifacts without complete verification data.
  • Fixed ABI inference and semantic-version handling for release assets.
  • Fixed accessibility gaps in track actions and related navigation.

Notes

This Android release includes the application-side integration required by Levyra Nexus. The separately versioned Windows application remains on its own release channel and is not rebuilt or republished by this Android version bump.

Versioning

  • Version name: 2.3.19
  • Version code: 2031900

Validation

  • Android release metadata, Gradle fallbacks, documentation badges, user agents, and Fastlane changelogs were aligned to version 2.3.19.
  • The release guard verifies version-name, version-code, tag, release-notes, signing, and publishing consistency.
  • The signed GitHub APK and the reproducible F-Droid APK are produced from the same commit by the protected release workflow.
  • Nexus route, playback-transition, and update-verification behavior is covered by automated tests.
  • Existing signing identity and GitHub/F-Droid update compatibility remain unchanged.

Upgrade notes

No migration is required. Existing libraries, favorites, downloads, playback state, and settings remain compatible after updating. GitHub installations continue to receive the signed GitHub release; once the F-Droid metadata is merged, F-Droid installations receive the corresponding reproducible build through F-Droid.

Final note

Levyra 2.3.19 makes playback and updates more dependable while bringing faster chart access, richer track actions, and a cleaner, more accessible experience.

Levyra 2.3.19 for F-Droid

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Aug 14:07

Upstream-signed F-Droid variant built from commit 93f731b. F-Droid must reproduce this APK before publishing it.

Levyra 2.3.19 for F-Droid

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Aug 10:51

Upstream-signed F-Droid variant built from commit 1fc6543. F-Droid must reproduce this APK before publishing it.

Levyra Desktop 1.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 19:51
8a7f117

Independent Windows release. Android and Desktop keep separate versions and release channels.

Levyra 2.3.18

Choose a tag to compare

@github-actions github-actions released this 31 Jul 19:40

Levyra 2.3.18

Highlights

Levyra 2.3.18 focuses on reliable playback, safer updates, faster access to music, and a more consistent Android experience. The release strengthens YouTube Music recovery, introduces Levyra Nexus as a shared reliability layer, expands chart and track actions, and improves accessibility without changing existing libraries, downloads, or preferences.

What's New

Resilient playback and network routing

  • Added verified YouTube Music fallback paths for cases where a primary request or media endpoint is unavailable.
  • Introduced adaptive route health tracking so temporary failures do not unnecessarily disable healthy playback routes.
  • Improved denial handling and retry balance to avoid repeated requests while still recovering when service access resumes.
  • Updated embedded player configurations used by the local decoder.
  • Hardened fallback selection so incompatible or unverifiable media alternatives are rejected.

Levyra Nexus reliability core

  • Added the dependency-light Levyra Nexus module for shared network, playback, and update decisions.
  • Routed Android network intelligence through Nexus while keeping platform-specific behavior inside the app.
  • Added typed results and explicit transition semantics for predictable recovery behavior.
  • Introduced route-health scoring with tests for success, transient failure, denial, and recovery.
  • Connected update selection to Nexus so only compatible, verifiable release artifacts can be offered.

Charts and discovery

  • Added YouTube Music chart feeds with official artwork resolution.
  • Improved country-aware chart discovery and playlist shortcuts.
  • Added faster access to Top 50 playlists from the relevant Home and Library surfaces.
  • Refined chart parsing and playable-track matching with additional regression tests.
  • Synced extractor player data with the current supported playback configuration.

Track actions and artist presentation

  • Added a long-press action sheet to tracks in the Personal Orbit shelf.
  • Added consistent actions for opening albums, artists, playback, queue, favorites, and related destinations.
  • Improved artist imagery and presentation consistency across Home, Library, and detail surfaces.
  • Ensured the track action sheet honors the reduced-animation preference.
  • Improved semantics, focus behavior, and accessible labels for assistive technologies.

Settings and usability

  • Reorganized settings into a clearer category hub.
  • Improved navigation and grouping for playback, appearance, privacy, storage, and advanced options.
  • Refined labels and localized copy across supported languages.
  • Improved Android Auto library behavior and several navigation edge cases.

Reliability and security

  • Update artifacts now require a valid version, supported ABI, HTTPS download URL, SHA-256 digest, and compatible package metadata.
  • Update comparison rejects malformed semantic versions and unsafe fallback assets.
  • Network routing records failures conservatively and avoids treating one denied request as permanent route failure.
  • Playback transition behavior is covered by dedicated Nexus tests.
  • No analytics, advertising, or developer telemetry was added.
  • F-Droid builds continue to disable the GitHub self-update prompt and use F-Droid metadata for updates.

Fixes

  • Fixed fallback behavior that could select an incompatible YouTube media candidate.
  • Fixed request-denial health accounting that could penalize clients too aggressively.
  • Fixed album lookup consistency in the new track action sheet.
  • Fixed animation behavior in the action sheet when reduced animations are enabled.
  • Fixed several chart parsing and playable-track matching edge cases.
  • Fixed update selection accepting artifacts without complete verification data.
  • Fixed ABI inference and semantic-version handling for release assets.
  • Fixed accessibility gaps in track actions and related navigation.

Notes

This Android release includes the application-side integration required by Levyra Nexus. The separately versioned Windows application remains on its own release channel and is not rebuilt or republished by this Android version bump.

Versioning

  • Version name: 2.3.18
  • Version code: 2031800

Validation

  • Android release metadata, Gradle fallbacks, documentation badges, user agents, and Fastlane changelogs were aligned to version 2.3.18.
  • The release guard verifies version-name, version-code, tag, release-notes, signing, and publishing consistency.
  • The signed GitHub APK and the reproducible F-Droid APK are produced from the same commit by the protected release workflow.
  • Nexus route, playback-transition, and update-verification behavior is covered by automated tests.
  • Existing signing identity and GitHub/F-Droid update compatibility remain unchanged.

Upgrade notes

No migration is required. Existing libraries, favorites, downloads, playback state, and settings remain compatible after updating. GitHub installations continue to receive the signed GitHub release; once the F-Droid metadata is merged, F-Droid installations receive the corresponding reproducible build through F-Droid.

Final note

Levyra 2.3.18 makes playback and updates more dependable while bringing faster chart access, richer track actions, and a cleaner, more accessible experience.

Levyra 2.3.18 for F-Droid

Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Jul 19:49

Upstream-signed F-Droid variant built from commit d95facd. F-Droid must reproduce this APK before publishing it.