github rukamori/ArchiveTune v14.1.0
14.1.0

5 hours ago

Changelog V14.1.0

This release focuses on playback compatibility, Canvas stability, Android 15 artwork handling, YouTube stream-client improvements, lyrics provider support, and a major expansion of the player and always-on-display experience.

It also improves network-gate handling, playback authentication, queue behavior, Discord integration, Cast support, localization, playlist imports, and several Android UI edge cases. The release includes substantial community contributions across player design, AOD, lyrics, localization, and playlist management.

Major Highlights

Canvas Artwork and Android Compatibility

Canvas playback and notification artwork handling have been hardened for newer Android versions and a wider range of media codecs.

  • Added Canvas media-codec validation before attempting playback.
  • Prevented retry loops and crashes when Canvas videos are unsupported.
  • Added conditional artwork URI generation for Ice Cream builds to avoid Android 15 metadata-artwork crashes.
  • Simplified notification artwork URI conversion.
  • Improved Canvas compatibility checks and playback stability.

Contributors: @rukamori, @mikooochi

Related issue: #1047

Material Extended V9 Player

ArchiveTune now includes a major Material Extended V9 player experience with dynamic artwork-driven theming and improved player interactions.

  • Added the Material Extended V9 player theme.
  • Added dynamic majority-color extraction and animated color transitions.
  • Improved player control hierarchy and layout.
  • Added thread-safety improvements around player state.
  • Improved download and backup integration.
  • Refined navigation-bar behavior and player surfaces.
  • Improved responsiveness when switching between tracks.

Contributor: @IIXII-L192

Pull request: #1069

YouTube Playback and Stream Clients

YouTube playback compatibility has been updated with a new Android VR client and improved authentication behavior.

  • Added the "ANDROID_VR_1_65_10" stream client.
  • Updated stream-client ordering logic.
  • Replaced the previous "ANDROID_VR_NO_AUTH" client handling.
  • Improved primary Web playback authentication without requiring a PoToken in applicable cases.
  • Extracted Web playback PoToken minting and forbidden-request detection.
  • Improved playback authentication state handling.
  • Refined token binding and persisted visitor-data handling.

Contributors: @rukamori

Lyrics and BetterLyrics

Lyrics provider coverage has been expanded with support for BetterLyrics Portato.

  • Added BetterLyrics Portato support for word-synchronised lyrics.
  • Added provider handling for songs that do not expose syllable-synchronised lyrics.
  • Improved lyrics provider selection and ordering.
  • Kept lyrics provider actions visible when changing provider settings.
  • Improved lyrics search and provider reliability.

Contributor: @rukamori

Related issue: #1060
Related issue: #1128

Always-On Display and Lock Controls

The AOD experience has been substantially expanded with additional playback and device-lock controls.

  • Added DreamService-based Always-On Display support.
  • Added smart-lock behavior.
  • Added shake-to-unlock support.
  • Added automatic locking.
  • Added additional AOD interaction and marquee behavior.
  • Improved sleep-timer interaction with playback.
  • Improved AOD touch handling.

Contributor: @Balajitechlabs

Pull request: #1120

Playlist Import Improvements

M3U and CSV imports now provide better source matching and a safer review process.

  • Added source-aware playlist matching.
  • Added a review step before imported songs are saved.
  • Improved matching of imported tracks against available media.
  • Reduced accidental or incorrect playlist entries during import.

Contributor: @Sandy4j

Pull request: #1041

Localization and Android Locale Support

Localization handling has been improved, including proper Egyptian Arabic resource resolution.

  • Corrected the Egyptian Arabic Android resource directory.
  • Improved Android locale resolution for "ar-EG".
  • Added and updated community translations across multiple languages.

Contributor: @midomizo933

Pull request: #1078
Related issue: #1074

Stability and Bug Fixes

Playback and Network Gate

  • Handle network-gate IO failures as temporarily unavailable instead of permanently blocked.
  • Display blocked-gate messages through the appropriate UI channel.
  • Improved retryable network-gate handling.
  • Temporarily bypassed the access gate where required.
  • Improved playback recovery when gate availability changes.

Contributors: @rukamori

Player and Queue

  • Fixed player bottom-sheet visibility during expansion.
  • Prevented unsupported Canvas playback from repeatedly crashing.
  • Bootstrapped infinite queues for short queues.
  • Improved artist resolution from subtitle endpoints.
  • Handled missing subtitle runs safely.
  • Improved Home quick-access behavior for personalised content.
  • Restored Cast-device discovery and selection.
  • Prevented playlist badges from wrapping incorrectly.
  • Resolved Flow-combination limitations in HomeViewModel.

Contributor: @rukamori

Related issues: #1038, #1088, #1102, #1137

Discord and External Integrations

  • Prevented Discord traffic when Rich Presence is disabled.
  • Improved external-integration state handling.
  • Reduced unnecessary background communication.

Contributor: @rukamori

Related issue: #1121

Lyrics Settings

  • Kept provider-dialog actions visible during provider configuration.
  • Improved provider-selection behavior.
  • Fixed lyrics-provider ordering interactions.

Contributor: @rukamori

Related issue: #1128

Android and Artwork Compatibility

  • Fixed Android 15 notification metadata-artwork crashes.
  • Improved notification artwork URI generation.
  • Prevented Canvas retries for incompatible media codecs.
  • Improved compatibility between cached Canvas content and the active playback codec.

Contributors: @rukamori, @mikooochi

Related issue: #1047

Internal Refactors

YouTube Authentication

  • Reworked playback-auth state handling around the current YouTube playback session.
  • Extracted Web playback PoToken generation into dedicated logic.
  • Added explicit forbidden-player-request detection.
  • Replaced visitor-data checks with session-based authentication state where appropriate.
  • Extracted the YouTube login WebView client.
  • Simplified login initiation through "startLogin".
  • Reworked verification authentication state and account-information ordering.

Contributor: @rukamori

Player State and UI

  • Replaced player bottom-sheet collapsed/dismissed checks with "isExpandedOrExpanding".
  • Updated player visibility conditions to account for transitional expansion states.
  • Simplified Android VR stream-client handling.
  • Improved player and navigation state coordination.

Contributor: @rukamori

Support and Dependency Cleanup

  • Removed the existing Start.io integration from the browser-support repository.
  • Continued cleanup related to the Start.io GPL-compliance work.
  • Refined slider-color initialization.
  • Updated project domain information.
  • Improved release/version workflow handling.

Contributors: @mikooochi, @rukamori

Pull Request Highlights

  • #1041 — Improved M3U/CSV playlist imports with source-aware matching and a review flow by @Sandy4j.
  • #1053 — Recognition, download, AOD, sleep-timer, lyrics, GMS, and Start.io GPL-compliance improvements by @IIXII-L192.
  • #1069 — Material Extended V9 player, dynamic majority-color transitions, thread-safety, download, and backup updates by @IIXII-L192.
  • #1078 — Fixed Egyptian Arabic Android locale resource handling by @midomizo933.
  • #1120 — Added DreamService AOD, smart lock, shake-to-unlock, auto-lock, and related AOD features by @Balajitechlabs.
  • #1127 — Reverted the experimental Apple Music player, frosted mini-player, and floating-navigation-bar implementation by @rukamori.

Resolved and Referenced Issues

  • #1038 — Music player bottom-sheet transition and visibility behavior.
  • #1047 — Canvas playback crash caused by incompatible cached Canvas content.
  • #1060 — BetterLyrics Portato provider support.
  • #1074 — Egyptian Arabic locale directory structure.
  • #1088 — Playlist badge wrapping.
  • #1102 — Google Cast device discovery.
  • #1121 — Discord Rich Presence remaining active when playback is stopped.
  • #1128 — Lyrics provider ordering controls.
  • #1137 — Personalised Home quick picks.

Localization

Translations were added or updated for:

  • Arabic
  • Arabic (Egyptian)
  • Arabic (Levantine)
  • Chinese (Simplified)
  • Chinese (Traditional)
  • Czech
  • French
  • German
  • Hungarian
  • Indonesian
  • Italian
  • Kurdish (Kurmanji)
  • Portuguese (Brazil)
  • Russian
  • Sinhala
  • Spanish
  • Tagalog
  • Thai
  • Turkish
  • Urdu
  • Vietnamese

Translation contributors included:

@Mickael81, @gallegonovato, @ffelixm, @nike49424, @marstraveler01, @midomizo933, @halilibrahirn, @fiiiish_owo, @Hanifz99, @Fathirazzamy, @NGLTX, @hanifz, @beebtw, @hijasongood, @withme, @hewkawar, @DarkForceFREEFIRE, @siggi1984, @AxMilin, @Voravit09, @cursedovich, @hellsfaun, @GearCzech, @ValteMCPE, @MXMH2o1o, and @Fathirazzamy.

Contributors

Thanks to the contributors who worked on this release:

@rukamori, @mikooochi, @IIXII-L192, @Simone20031, @Balajitechlabs, @Sandy4j, @midomizo933, @Mickael81, @gallegonovato, @ffelixm, @nike49424, @marstraveler01, @halilibrahirn, @fiiiish_owo, @Hanifz99, @Fathirazzamy, @NGLTX, @hanifz, @beebtw, @hijasongood, @withme, @hewkawar, @DarkForceFREEFIRE, @siggi1984, @AxMilin, @Voravit09, @cursedovich, @hellsfaun, @GearCzech, @ValteMCPE, @MXMH2o1o

Referenced Issues and Pull Requests

#1038, #1041, #1047, #1053, #1060, #1069, #1074, #1078, #1088, #1102, #1120, #1121, #1127, #1128, #1137

New Contributors

Full Changelog

v14.0.0...v14.1.0

Don't miss a new ArchiveTune release

NewReleases is sending notifications on new releases.