Skip to content

14.0.0

Latest

Choose a tag to compare

@rukamori rukamori released this 19 Jul 06:01

Changelog V14.0.0

This release expands background music recognition, improves playback and device controls, introduces scheduled backups, enhances download management, and adds broader filtering for blocked artists and music videos.

It also delivers major updates to the mini player, media-detail screens, lyrics customization, Spotify playlist downloads, Canvas artwork handling, diagnostics, playback authentication, and application stability.

Major Highlights

Background Music Recognition

Music recognition can now operate while ArchiveTune is outside the foreground.

  • Added background device-audio recognition through the Music Recognition quick-settings tile.
  • Added a background recognition preference to the Music Recognition screen.
  • Fixed background recognition compilation failures.
  • Improved recognition service reliability and lifecycle handling.

Contributor: @mikooochi

Playback Devices and Audio Information

Player V7 and V8 now provide better system output controls and more detailed local-file information.

  • Added a native audio-output switcher.
  • Added a reactive playback-device indicator.
  • Added real bitrate and sample-rate information for local audio.
  • Added fallback metadata when bitrate or sample-rate information is unavailable.
  • Improved file-size formatting with dynamic units and decimal precision.
  • Fixed an Android 10 crash when opening the output switcher.
  • Added a V7 and V8 volume-bar preference.
  • Prevented duplicate copies of the current song from appearing in the queue.

Contributors: @adam-adrian, @mikooochi, @rukamori
Pull requests: #981, #988, #991, #1000

Mini Player and Player Controls

Player surfaces and controls have been reconstructed for clearer interaction and better visual consistency.

  • Reconstructed the mini player.
  • Restored circular artwork progress.
  • Replaced the floating mini-player toolbar with a compact navigation bar.
  • Added explicit-content badges across all player styles.
  • Added a lyrics player-controls visibility toggle.
  • Added a Canvas artwork refresh action.
  • Added reactive Canvas artwork updates during playback.
  • Added a V7 and V8 volume-bar toggle.
  • Aligned paired floating mini-player surfaces.
  • Improved player-menu Canvas action visibility across player designs.

Contributors: @mikooochi, @rukamori

Download Library and Spotify Downloads

Download management now provides clearer grouping, searchable content, and expanded Spotify playlist support.

  • Added grouped download-management tabs.
  • Added searchable downloaded-media rows.
  • Added Spotify playlist download actions.
  • Added download-state handling to Spotify playlist headers.
  • Added concurrent Spotify track resolution with up to eight active resolutions.
  • Fixed synchronized pause controls in download headers.
  • Restored paused-download controls.
  • Fixed queueing of subsequent downloaded songs.
  • Restored artwork for downloaded songs.
  • Reused playback data when preparing downloads.

Contributors: @rukamori, @mikooochi

Scheduled Backups

ArchiveTune can now create backups on a configured schedule.

  • Added scheduled backup support.
  • Added scheduled-backup repository handling.
  • Repaired the scheduled-backup settings layout.
  • Improved document-name handling for backup destinations.

Contributor: @mikooochi

Blocked Artists and Music-Video Filtering

Content filtering is now enforced more consistently across playback, playlists, albums, artists, and library screens.

  • Removed blocked-artist items from playback queues.

  • Filtered blocked artists before playback begins.

  • Added persistent music-video metadata to songs.

  • Added a preference for hiding music videos.

  • Applied music-video filtering to:

    • Artist content
    • Albums
    • Cached playlists
    • Online playlists
    • Local playlists
    • Liked songs
    • Library songs
    • Artist-song collections
  • Preserved music-video metadata during library and like synchronization.

  • Added appropriate YouTube artwork handling for music-video entries.

  • Updated the music database from version 32 to version 33.

Contributor: @mikooochi

Lyrics Customization and Search

Lyrics screens now provide more display controls and more reliable refresh behavior.

  • Added selectable lyrics background styles.
  • Added persisted custom-background image permissions.
  • Added a responsive background-customization layout.
  • Added a player-controls visibility switch.
  • Added lyrics refresh actions to search-result headers.
  • Replaced state-based refresh dialogs with event-driven completion handling.
  • Made lyrics searches cancellable and forced fresh requests when required.
  • Improved lyrics preload persistence.
  • Fixed immediate updating of the controls switch.
  • Fixed lyrics-menu shape conversion.
  • Expanded and corrected the lyrics search dialog.

Contributors: @mikooochi, @rukamori

Canvas Artwork Refresh

Canvas artwork can now be manually refreshed when cached artwork is outdated or incorrect.

  • Added manual Canvas artwork refresh from the player menu.
  • Added forced refresh support to the artwork provider.
  • Added no-cache network requests during manual refresh.
  • Added cache replacement for individual media items.
  • Preserved reusable cached Canvas videos.
  • Rejected artwork that does not match the current media.
  • Added playback revision tracking to update active artwork safely.
  • Preserved cancellation handling during Canvas requests.

Contributors: @mikooochi, @rukamori
Related: #530

Media Details, Albums and Playlists

Media-detail screens now share a more responsive and consistent action layout.

  • Unified responsive actions across media-detail screens.
  • Added balanced action placement for constrained screen widths.
  • Added horizontally scrollable actions with fading edges.
  • Added confirmation before removing saved media.
  • Reconstructed album and playlist screen data.
  • Aligned cached-playlist screens with other playlist details.
  • Restored album screen structure.
  • Restored top-playlist access in Library Mix.
  • Compactly arranged Artist screen playback actions.
  • Corrected playlist creation so data is saved before the dialog closes.
  • Synchronized remote playlist covers while preserving local covers.

Contributors: @rukamori, @mikooochi

About, Settings and Update Screens

Several major screens have been reconstructed using more consistent responsive surfaces and grouping.

  • Reconstructed the About screen.
  • Tightened About screen section spacing.
  • Added a distinct lead-developer surface.
  • Grouped application settings into clearer sections.
  • Reconstructed update-status presentation.
  • Added tonal segmented surfaces to the Update screen.
  • Rounded standalone update-list surfaces.
  • Prevented duplicate update checks.
  • Migrated nightly update channels to canary.
  • Added workflow-based download fallback for canary releases.
  • Updated repository links and release metadata.

Contributor: @rukamori
Related: #1025

Diagnostics and Cipher Recovery

Playback diagnostics and YouTube decryption recovery have received major reliability improvements.

  • Added a unified log viewer.
  • Added player-aware window insets to the log screen.
  • Added self-recovering YouTube decryption.
  • Added refresh progress percentages.
  • Added vertically animated refresh countdowns.
  • Animated only countdown digits that changed.
  • Simplified token generation.
  • Improved JavaScript plan pattern detection.
  • Added required global execution shims.
  • Increased compiler limits for larger player scripts.
  • Moved cipher refresh compilation away from the main thread.
  • Recorded refresh rate limits using the actual refresh timestamp.
  • Reset manual refresh limits after 24 hours.
  • Prevented throttled playback URLs.
  • Preserved playback authentication during recovery.
  • Added extractor authentication-event handling.
  • Added runtime bearer-token replacement after authentication failures.

Contributor: @rukamori

Stability and Bug Fixes

Playback and Streaming

  • Removed redundant stream preflight requests that caused long loading times.
  • Preferred Web Remix playback where appropriate.
  • Preserved signed-in YouTube playback authentication.
  • Marked stream clients as failed when no HTTP status was returned.
  • Added fallback playback for online playlist songs.
  • Reconstructed initial queue creation.
  • Prevented duplicate current-song entries.
  • Closed inactive Music Together rooms.
  • Preserved favorite actions for uncached songs.
  • Prevented Cast disconnection crashes.
  • Preserved playback authentication identifiers during recovery.
  • Added handling for extractor responses with HTTP 401, 403, and 410 statuses.

Contributors: @rukamori, @mikooochi
Related issues: #973, #984

Artwork and Image Loading

  • Restored artwork for downloaded songs.
  • Prevented blurry notification artwork.
  • Prevented crashes caused by recycled artwork bitmaps.
  • Adapted thumbnail ratios for different media types.
  • Optimized image loading.
  • Rejected mismatched Canvas artwork.
  • Preserved reusable cached Canvas videos.
  • Corrected adaptive launcher-icon scaling.
  • Prevented duplicate launcher-icon layers.
  • Sampled integrated icon backgrounds from rasterized artwork.

Contributors: @rukamori, @mikooochi, @adam-adrian
Related issue: #1011
Pull request: #1012

Library, History and Playlists

  • Preserved playlist spacing when using pure-black appearance.
  • Preserved nullable artwork in listening statistics.
  • Added lazy loading to History to reduce interface lag.
  • Restored top-playlist access in Library Mix.
  • Kept Auto Playlist search results below the app bar.
  • Anchored the Library refresh indicator below the app bar.
  • Improved liked-song sorting stability.
  • Prevented the bottom sheet from collapsing after a cancelled gesture.
  • Used atomic state updates while loading online playlists.
  • Simplified local-playlist swipe and drag state handling.

Contributors: @mikooochi, @rukamori, @ooobamboo
Related issues: #967, #969, #1034
Pull request: #1022

Navigation and Layout

  • Distributed floating navigation destinations evenly.
  • Restored stable destination measurement.
  • Tightened persistent navigation-control spacing.
  • Detached the overflow action button from the navigation bar.
  • Fixed ambiguous action-button visibility animation.
  • Prevented access to stale navigation-entry view models.
  • Filled active History and Search segments.
  • Corrected fading-edge gradient direction.
  • Prevented gesture cancellation from forcibly collapsing bottom sheets.
  • Reduced navigation-bar height.

Contributors: @mikooochi, @rukamori, @ooobamboo

Statistics

  • Reconstructed the listening dashboard and its data.
  • Moved the artist chart above favorites.
  • Ensured the listening donut chart always fills completely.
  • Removed the remaining empty chart arc.
  • Improved differentiation between artist chart sections.
  • Fixed Compose compilation issues affecting the Statistics screen.
  • Preserved nullable artwork in song statistics.

Contributors: @rukamori, @mikooochi
Related issue: #969

Widgets and Battery Usage

  • Stopped continuous widget updates that could cause unnecessary battery usage.
  • Improved playback-notification decision handling.
  • Removed an unnecessary media-controller dependency.

Contributor: @rukamori
Related issue: #1017

Account and Authentication

  • Avoided showing an incorrect logged-out label.
  • Preserved account authentication during playback recovery.
  • Hardened shared Spotify token refresh handling.
  • Prevented repeated Spotify refresh requests from reaching service limits.
  • Added runtime extractor-token updates.

Contributors: @mikooochi, @rukamori

Build and Compatibility

  • Packaged a signed FOSS APK.
  • Updated player text imports for Compose 1.12.
  • Added extractor reflection and code-shrinking rules.
  • Made build-task validation compatible with configuration caching.
  • Corrected Compose and preference API usage.
  • Fixed several Compose compilation failures.
  • Updated deobfuscator submodules.
  • Cleaned unused resources, drawables, imports, strings, and preferences.

Contributor: @rukamori

Performance Improvements

  • Limited cipher dependency extraction to bounded ranges.
  • Moved cipher refresh compilation away from the main thread.
  • Reused playback data when preparing downloads.
  • Added lazy History loading.
  • Cached local bitrate and sample-rate results.
  • Optimized thumbnail loading.
  • Prevented unnecessary widget refresh cycles.

Contributors: @rukamori, @adam-adrian
Related: #1000, #1012, #1017

Internal Refactors

  • Converted global logging to a Timber.DebugTree.
  • Reconstructed playback error data.
  • Removed unused playback resources.
  • Reworked queue drag state into dedicated data structures.
  • Reorganized account and screen structures.
  • Reformatted Kotlin source organization.
  • Replaced static extractor authentication with an in-memory token repository.
  • Populated watch endpoints consistently across page models.
  • Simplified Spotify HTTP connection creation.
  • Added Room query-warning handling for album download queries.
  • Replaced legacy music-video joins with direct database fields.
  • Improved update-channel release information and fallback downloads.
  • Made media-detail action components reusable.
  • Simplified playlist-menu cancellation handling.
  • Added rewarded and automatic support-message fallback modes.

Contributors: @rukamori, @mikooochi

Pull Request Highlights

Resolved and Referenced Issues

  • #530 — Forced Canvas artwork refresh and cancellation handling.
  • #967 — Playlist spacing under pure-black appearance.
  • #969 — Nullable artwork in listening statistics.
  • #973 — Favorite actions for songs not yet stored locally.
  • #984 — Stream failure detection and fully downloaded media checks.
  • #1011 — Blurry notification artwork.
  • #1017 — Continuous widget updates and battery consumption.
  • #1025 — Canary release workflow fallback.
  • #1032 — Seamless radio startup from the player menu.
  • #1034 — Local playlist gesture-state reliability.

Localization

Translations were added or updated for:

  • Arabic
  • Arabic (Egyptian)
  • French
  • German
  • Japanese
  • Portuguese (Brazil)
  • Spanish
  • Turkish
  • Urdu
  • Vietnamese

Translation contributors:

@Anonymous, @ffelixm, @marstraveler01, @gallegonovato, @beebtw, @Mickael81, @ValteMCPE, @midomizo933, @avatrax6

Contributors

Thanks to the contributors who worked on this release:

@rukamori, @mikooochi, @adam-adrian, @ooobamboo, @Anonymous, @ffelixm, @marstraveler01, @gallegonovato, @beebtw, @Mickael81, @ValteMCPE, @midomizo933, @avatrax6

Referenced Issues and Pull Requests

#530, #967, #969, #973, #981, #984, #988, #991, #1000, #1011, #1012, #1017, #1022, #1025, #1032, #1034

Full Changelog

v13.7.0...v13.8.0