ArchiveTune
moe.rukamori.archivetune
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
First release: Jun 24, 2026, 6 total releases.
Most recent release: Sep 26, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 26, 2026 15.1.0# ArchiveTune v15.1.0 ArchiveTune **15.1.0** focuses on improving YouTube playback reliability, account synchronization, library management, podcasts, Android Auto, the immersive player, Home discovery, and overall application stability. This release integrates **YouTube Music community content**, **featured playlist cards**, **podcast library management**, **podcast episode search**, **Android Auto support**, **automatic updates**, **Canvas backdrop capture**, improved **local-media reconciliation**, **Last.fm authentication**, and expanded **Browse** functionality. It also includes improvements to Always-On Display handling, playback error reporting, account sessions, library refresh behavior, JavaScript runtime stability, and the immersive player experience. ---
Moreβ¦
## β¨ Highlights ### β‘ YouTube Playback & JavaScript Runtime The YouTube playback system continues to receive reliability and stability improvements. - Integrated an updated YouTube JavaScript runtime bundle. - Improved YouTube playback error mapping for `YoutubeiException`. - Improved account session synchronization. - Improved authentication-state handling during playback and library synchronization. - Hardened JavaScript worker execution to prevent crashes from recursive array conversions and thread stack exhaustion. - Simplified playback error handling and authentication checks. - Improved handling of restricted authentication data during stream resolution. **Contributors:** @rukamori, @mikooochi --- ### π Home & Community The Home screen now includes more content discovery options. - Integrated **featured playlist cards** into Home. - Integrated the **Community** section into the Home feed. - Integrated community playlist extraction and preview loading. - Added filtering and loading support for community content. - Improved organization of similar and personalized recommendations. - Improved Home state handling and concurrency. **Contributor:** @rukamori --- ### ποΈ Podcast Library YouTube Music podcasts can now be managed directly from the library. - Integrated podcast library management for podcasts and episodes. - Integrated podcast synchronization with the library. - Integrated podcast and episode playback/removal actions. - Integrated a dedicated podcast library screen. - Integrated podcast filtering in the Library. - Integrated podcast database entities and DAO support. - Integrated podcast episode search. - Integrated pagination and filtering for podcast episodes. - Unified podcast library interactions with reusable library components. **Contributor:** @rukamori --- ### π Android Auto ArchiveTune now includes Android Auto-compatible support. - Integrated Android Auto and AAOS compatibility. - Added reusable Android Auto settings components. - Improved Android Auto preference handling and action selection. **Contributor:** @rukamori --- ### π Automatic Updates - Integrated an automatic update checker. - Improved update handling for supported release channels. **Contributor:** @rukamori --- ### π Always-On Display AOD behavior has been reworked to better respect device support. - Integrated AOD support detection. - Automatically disables unsupported AOD functionality. - Integrated automatic AOD activation when the screen turns off. - Improved asynchronous AOD data loading. - Improved AOD compatibility handling. **Contributor:** @rukamori --- ### π¨ Immersive Player & Canvas The immersive player now makes better use of Canvas artwork. - Integrated Canvas frame capture for immersive player backdrops. - Improved Canvas artwork handling and playback integration. - Improved backdrop artwork fallback behavior. - Integrated artist selection directly into the immersive player. - Improved backdrop gradients, masking, blur, spacing, and transport-control layout. - Associates Canvas state with the active media ID to prevent stale artwork. **Contributor:** @rukamori --- ### π΅ Spotify Canvas Spotify Canvas integration has been refined. - Improved Spotify Canvas artwork resizing. - Migrated Spotify Canvas searches to Pathfinder v2. - Improved Canvas provider health handling. - Moved Spotify settings into Integration settings. - Standardized Canvas preferences. **Contributor:** @rukamori --- ### π§ Last.fm Authentication Last.fm authentication now supports multiple session modes. - Integrated dynamic mobile authentication mode selection. - Integrated legacy authentication-token support. - Improved Last.fm session handling. **Contributor:** @rukamori --- ### π Library Refresh & Synchronization Library synchronization has been improved with a more consistent refresh flow. - Integrated a dedicated library refresh use case. - Integrated library synchronization failure propagation. - Improved synchronization behavior when library operations fail. - Integrated local and remote music reconciliation. - Improved local-media metadata enrichment and repository lookup. - Preserved synchronization state more reliably. - Unified library refresh state handling across library ViewModels. **Contributors:** @rukamori, @mikooochi --- ### πΌ Local Media & Metadata Local media handling now provides richer metadata. - Integrated metadata enrichment for local media. - Integrated album artist, track number, disc number, and year metadata. - Improved missing metadata extraction to prevent missing artist names in search results. - Improved reconciliation between local and remote music entries. **Contributor:** @rukamori --- ### π Browse A dedicated Browse data layer and state architecture has been integrated. - Integrated Browse data models and repository support. - Integrated pagination and state-driven Browse handling. - Migrated Browse to an MVI-based architecture. **Contributor:** @rukamori --- ### π° News Notifications Unread news notifications are now handled more clearly. - Integrated unread news notification tracking. - Integrated notification-claiming state. - Added a tooltip for unread news notifications in MainActivity. **Contributor:** @rukamori --- ### π‘ Suggestions Playlist suggestions now support navigation through multiple result pages. - Integrated pagination controls for playlist suggestions. - Integrated cached suggestion-page navigation. **Contributor:** @rukamori --- ### π¨ Player & Media Information - Restructured player data handling. - Integrated codec visibility state into the player and BottomSheet player. - Added a player setting to control codec information visibility. - Improved player data flow and state management. **Contributor:** @rukamori --- ### πΌοΈ Discord Artwork Discord artist artwork handling now better represents music videos. - Improved Artist artwork to show the channel avatar for music videos. **Contributor:** @sang765 **Related:** #1295 --- ### π Workflow Automation Project maintenance workflows have been expanded. - Integrated automated translation contributor-credit generation. - Integrated automated duplicate issue detection. - Improved workflow normalization and maintenance. **Contributor:** @rukamori --- ## β‘ Performance & Stability ### Playback - Improved JavaScript runtime stability. - Improved playback error mapping and handling. - Simplified playback authentication and error-state logic. - Prevented JavaScript worker crashes caused by stack exhaustion and recursive conversions. - Improved account session synchronization. ### Library - Unified refresh state handling. - Improved synchronization failure propagation. - Improved local and remote media reconciliation. - Improved state and concurrency handling across library ViewModels. ### Immersive Player - Improved backdrop rendering and gradient transitions. - Improved Canvas state isolation between media items. - Improved blur and artwork rendering behavior. ### UI - Improved lifecycle-aware state collection. - Improved local-media handling. - Improved library scrolling behavior. - Improved MiniPlayer transitions. --- ## π οΈ Stability & Bug Fixes ### Playback & JavaScript - Fixed JavaScript runtime crashes caused by recursive array conversion. - Fixed JavaScript worker crashes by explicitly controlling worker stack size. - Improved YouTube authentication and account synchronization error handling. - Improved playback error mapping for YouTube-specific exceptions. - Removed unnecessary playback resolution timeout behavior. - Fixed cancellation handling during account data synchronization. ### MiniPlayer & UI - Eliminated MiniPlayer fading and shape snapping during route transitions. - Improved state restoration and route transition behavior. **Related:** #1307 ### Search & Local Albums - Prevented local search state collisions by including filter information in item keys. - Fixed local album pagination. - Prevented duplicate songs from appearing in local album radio results. ### Lyrics - Fixed missing imports affecting enhanced lyrics functionality. - Improved lyrics component integration. ### Memory - Reduced the risk of MusicService memory leaks by using a weak binder reference. - Improved lifecycle and concurrency handling across several ViewModels. ### Library & Synchronization - Properly propagates library synchronization failures. - Deferred selection-menu dismissal until synchronization completes. - Removed redundant remote-library state clearing. - Improved refresh consistency across library screens. ### Canvas & AOD - Improved Canvas artwork proxy handling for YouTube media hosts. - Improved Spotify Canvas provider reliability. - Improved asynchronous AOD loading and support detection. - Removed redundant AOD screen-off handling conflicts. --- ## β»οΈ Internal Improvements - Externalized and updated the YouTube JavaScript runtime bundle. - Simplified playback error handling and authentication checks. - Removed obsolete player-token invalidation logic. - Removed unused remote-library clearing operations. - Unified library refresh containers and state handling. - Introduced shared library refresh ViewModel infrastructure. - Reworked Spotify Canvas search and provider handling. - Standardized Android Auto and Canvas preference components. - Migrated Browse to state-driven MVI architecture. - Simplified enhanced lyrics playback smoothing and scrolling. - Improved immersive-player layout and system-bar handling. - Centralized immersive-player backdrop rendering. - Moved artist and media state handling into dedicated components. - Improved lifecycle-aware state collection. - Replaced dynamic GitHub attribution fetching with bundled static resources. - Improved About-screen coroutine dispatching and error handling. - Preserved line numbers and disabled obfuscation in ProGuard configuration. --- ## π Pull Request Highlights - **#1295** β Show channel avatar for music videos in Artist artwork by @sang765. - **#1307** β Eliminated MiniPlayer fade and shape snapping during route transitions by @adam-adrian. - **#1323** β Fixed F-Droid reproducible build hash mismatch through explicit NDK version configuration by @RajnishKMehta. - **#1387** β Updated the README Nightly section and added the Nightly release link by @sang765. --- ## π§± Build & Tooling - Updated Android Gradle Plugin to **9.4.0**. - Updated Compose to **1.12.1**. - Fixed F-Droid reproducible-build hash mismatch with an explicit NDK version. - Improved dependency resolution strategy for Compose. **Contributors:** @rukamori, @RajnishKMehta --- ## π Documentation - Updated the README Nightly section to reference Development Builds. - Added the Nightly release link. - Updated project documentation and titles. **Contributors:** @sang765, @rukamori --- ## π Localization Translations were added or updated for: Azerbaijani, Assamese, Chinese (Traditional), Estonian, French, German, Hindi, Indonesian, Maithili, Persian, Polish, Portuguese (Brazil), Romanian, Russian, Spanish, Thai, Turkish, Uzbek, and Vietnamese. Thanks to all Weblate and Codeberg Translate contributors who continued improving ArchiveTune's language coverage. --- ## β€οΈ Contributors Thanks to everyone who contributed features, fixes, performance improvements, architecture changes, documentation, build improvements, and translations to ArchiveTune 15.1.0. Development contributors include: @rukamori, @mikooochi, @sang765, @adam-adrian, @RajnishKMehta And thanks to all translation contributors helping expand ArchiveTune's language coverage. --- ## π Full Changelog **Full Changelog:** [v15.0.0...v15.1.0](https://github.com/rukamori/ArchiveTune/compare/v15.0.0...v15.1.0) - Sep 10, 2026 15.0.0# Changelog v15.0.0 ArchiveTune **15.0.0** is a major release focused on playback reliability, faster stream resolution, player improvements, lyrics, downloads, and deeper YouTube Music integration. This release introduces the **V10 Editorial Player**, **next-song stream preloading**, **SponsorBlock**, **YouTube Music podcasts**, **lyrics translation**, **Spotify and TIDAL Canvas**, **Google Drive backups**, **playlist CSV export**, improved **Quick Picks**, and a substantially reworked YouTube playback stack. A large number of stability, memory, networking, Cast, artwork, AOD, download, lyrics, and account-related issues were also addressed. ---
Moreβ¦
## β¨ Major Highlights ### π΅ V10 Editorial Player ArchiveTune 15 introduces the new **V10 Editorial Player**, together with further improvements to artwork-driven theming and player interactions. - Integrated the V10 Editorial Player. - Improved artwork color extraction and player behavior. - Backported wallpaper color extraction to Android versions below API 31. - Integrated continuous shape morphing for the MiniPlayer and Navigation Bar. - Improved seekbar, queue, BottomSheet, and media-state interactions. - Fixed visibility-off icon rendering. **Contributors:** @IIXII-L192, @sang765, @adam-adrian, @shinonatsukii, @rukamori, @farhanansari888 **Related:** #1219, #1229, #1230, #1282 --- ### β‘ YouTube Playback & Stream Resolution Overhaul The YouTube playback stack received one of its largest architectural updates so far. ArchiveTune now combines updated playback clients, video-bound PoTokens, JavaScript runtime handling, refreshed player analysis, and faster extraction paths to improve playback reliability and startup speed. - Integrated Web, GVS, creator, and video-bound playback tokens. - Separated session authentication from video-specific tokens. - Integrated automatic JavaScript challenge handling. - Integrated JavaScript runtime prewarming. - Updated bundled YouTube JavaScript and client logic. - Improved authenticated and age-restricted playback. - Integrated authenticated embedded-client support. - Improved TV, Android VR, anonymous, and direct-stream fallbacks. - Preserved authentication cookies and session state across retries. - Restored authenticated youtubei playback. - Integrated one-shot player-backed stream resolution. - Improved stream-client backoff and blocked-client handling. - Reduced YouTube player analyzer memory usage. - Removed obsolete IP rotation and manual cipher handling. Foreground playback now receives higher priority than downloads and speculative background extraction. **Contributors:** @rukamori, @shinonatsukii, @mikooochi --- ### π Next-Song Stream Preloading ArchiveTune can now resolve an upcoming stream before the current song finishes. - Integrated optional next-song stream preloading. - Integrated playback performance settings for preload behavior. - Preloads one upcoming stream at a time. - Prioritizes active playback over background preload work. - Shares already-resolved streams between compatible operations. - Integrated faster playback stream resolution paths. - Bounded stream-resolution work to prevent runaway tasks. **Contributors:** @rukamori, @shinonatsukii --- ### π Playback Recovery & Crossfade Playback recovery and crossfade behavior have been substantially hardened. - Eliminated silence during crossfade handoff. - Improved recovery when crossfade is unavailable. - Preserved playback position during recovery. - Improved recovery after media-host and stream failures. - Recovers from corrupted cache entries and mismatched streams. - Improved stream-resolution diagnostics. - Registered the media session correctly with the playback service. - Prevented artwork work from being cancelled unexpectedly. - Prevented stale paused Discord presence updates. - Improved playback error details and reporting hints. **Contributors:** @rukamori, @shinonatsukii, @Marker-bit **Related:** #1143, #1155 --- ### π₯ Faster & Smarter Downloads Downloads now integrate more closely with ArchiveTune's playback cache and stream-resolution pipeline. - Reuses completely cached playback media instead of downloading the same media again. - Integrated up to **3 concurrent downloads**. - Preloads the stream for the next queued download. - Improved download progress and retry handling. - Stabilized download-speed sampling. - Routes download state changes through the Media3 download service. - Resumes downloads correctly after stream-content changes. **Contributors:** @rukamori, @shinonatsukii, @mikooochi --- ### π Lyrics Translation & Rendering Lyrics received a substantial feature and architecture update. - Integrated lyrics translation and persistent translation state. - Integrated translated-lyrics source detection. - Integrated immutable lyrics rendering models. - Integrated a prepared lyrics rendering pipeline. - Moved translation and rendering state into dedicated ViewModels. - Integrated enhanced LRC word-timing support. - Improved word-synchronized lyrics detection and timing. - Improved unsupported BetterLyrics handling. - Parallelized lyrics-provider fetching with bounded concurrency and caching. - Integrated cancellable Megalobiz requests with timeouts. - Integrated Paxsenix API-key authentication. **Contributors:** @rukamori, @shinonatsukii, @mikooochi --- ### βοΈ SponsorBlock SponsorBlock is now integrated directly into playback. - Integrated SponsorBlock playback settings. - Integrated multi-select controls for segment categories. - Connected SponsorBlock handling to `MusicService`. - Integrated SponsorBlock preference storage. **Contributor:** @mikooochi --- ### ποΈ YouTube Music Podcasts ArchiveTune now supports YouTube Music podcasts. - Integrated podcast browsing and episode dispatch. - Integrated podcast-aware media metadata. - Preserved podcast metadata when mapping episodes. - Integrated podcast episode loading across Home and playlists. **Contributors:** @mikooochi, @rukamori --- ### π¨ Spotify & TIDAL Canvas Canvas support has been expanded with additional providers. - Integrated **Spotify Canvas**. - Integrated **TIDAL Canvas**. - Integrated provider selection and network controls. - Restructured Canvas settings. **Contributor:** @rukamori --- ### βοΈ Google Drive Backup & Playlist Export Backup and export functionality has been expanded. - Integrated GMS-backed **Google Drive backup** support. - Integrated playlist export to CSV. - Improved backup integration with the application. **Contributor:** @rukamori --- ### π Personalized Quick Picks & Home Quick Picks and Home recommendations have been substantially improved. - Restored the Quick Picks hero carousel. - Improved personalized recommendations and fallback behavior. - Uses YouTube recommendation data as recommendation seeds. - Preserves Quick Picks during Home reloads and app restarts. - Prevents local content from replacing YouTube Quick Picks unexpectedly. - Honors the configured Quick Picks display mode. - Serializes Home loading to prevent overlapping requests. - Prevents unnecessary playlist resynchronization at startup. - Correctly resets account-specific library state when switching accounts. - Preserves the selected YouTube channel during account transitions. - Falls back to signed-out YouTube Music Home or new releases when necessary. **Contributors:** @rukamori, @mikooochi --- ### π Library & Playlist Improvements - Integrated Library and Playlist appearance options. - Integrated dedicated library empty states. - Integrated completed-download confirmation. - Integrated optional login during onboarding. - Preserves manually edited song titles. - Improved stored-song fallback handling. - Automatically refreshes expired playlist artwork. - Improved playlist cover refresh caching. **Contributors:** @mikooochi, @shinonatsukii, @rukamori **Related:** #1152 --- ### βΆοΈ Queue Play Next - Integrated a dedicated **Play Next** queue action. - Improved collapsed queue opening and interaction consistency. **Contributors:** @rukamori, @shinonatsukii **Related:** #1061 --- ### π Always-On Display - Integrated an option to control AOD enforcement. - Improved AOD lyric ticker parsing. - Prevented AOD BackHandler crashes. - Improved AOD navigation safety. **Contributors:** @shinonatsukii, @Balajitechlabs **Related:** #1139 --- ### πΊ Cast, Discord & Artwork Several media integrations received reliability improvements. - Improved Cast discovery and playback. - Preserved Cast stream MIME types and corrected `MediaItem` configuration. - Removed the unsupported Discord Platform option. - Improved Discord artist artwork selection. - Preserved stored artist artwork when playback metadata omits it. - Persisted downloaded artwork for offline playback. - Fixed recycled and oversized artwork bitmap crashes. **Contributors:** @shinonatsukii, @sang765, @rukamori **Related:** #1087, #1156, #1204, #1257 --- ### π Listening Statistics Privacy Controls Listening statistics can now be reset directly from Privacy settings. - Integrated play-time and play-count reset support. - Integrated a listening-statistics reset use case. - Integrated dedicated reset state management. - Integrated the reset flow into Privacy settings. **Contributor:** @rukamori --- ### βΉοΈ Media Information - Integrated media information data models and retrieval. - Moved media information state and actions into a dedicated ViewModel. **Contributor:** @shinonatsukii --- ### π€ AI Integration Improvements - Restored **OpenRouter** support. - Integrated custom AI prompt configuration. - Custom prompts can be appended to ArchiveTune's generated instructions. - API testing now displays complete provider error messages. - Prevented invalid AI-generated lyrics from being persisted. **Contributors:** @rukamori, @shinonatsukii --- ### π§ͺ Nightly, Artifact & F-Droid Distribution and development builds received several changes. - Integrated a Nightly build variant. - Integrated LeakCanary support. - Integrated dynamic release URLs for Nightly builds. - Reworked Canary-style builds into the Artifact channel. - Disabled normal update checks for Artifact builds. - Prepared ArchiveTune for F-Droid distribution. - Improved release-channel and build configuration handling. **Contributors:** @sang765, @rukamori, @RajnishKMehta **Related:** #1193, #1251, #1252, #1256, #1270 --- ## β‘ Performance Improvements ### Playback - Prewarms JavaScript runtimes. - Integrated faster audio and playback stream resolution. - Shares resolved streams between compatible operations. - Prioritizes foreground playback over preloads and downloads. - Reduced YouTube player analyzer memory usage. ### Downloads - Supports up to three concurrent download operations. - Preloads the next queued download stream. - Reuses complete playback-cache entries. - Improved download-speed sampling. ### Lyrics - Parallelized lyrics-provider requests with bounded concurrency. - Integrated provider caching to reduce duplicate network requests. ### Memory - Reduced GC pressure on Search for lower-end devices. - Avoids eagerly creating expensive YouTube player runtimes. - Invalidates stream resolver sessions when Android reports memory pressure. **Contributors:** @rukamori, @shinonatsukii, @sang765 **Related:** #1202 --- ## π οΈ Stability & Bug Fixes ### Playback & Extraction - Fixed signed-in and age-restricted playback authentication. - Improved authenticated Web playback. - Fixed signed-out anonymous playback. - Improved TV and Android VR client ordering. - Updated YouTube cipher and deobfuscation matching. - Improved recovery from failed JavaScript challenge execution. - Fixed PoToken handling for replacement media IDs. - Improved extraction timeout and interruption handling. - Preserved authentication cookies across retries. - Improved creator and age-gated playback. ### Playback Service & Crossfade - Fixed crossfade handoff silence. - Preserved playback position during recovery. - Improved recovery when crossfade cannot be used. - Improved recovery after media-host changes. ### Downloads & Offline Playback - Stabilized download progress. - Improved retryable downloads. - Restored playback-cache dependencies. - Fixed download continuation after stream changes. - Persisted artwork for offline playback. ### Home & Recommendations - Fixed Quick Picks display-mode handling. - Fixed Quick Picks disappearing during reloads. - Improved recommendation fallback behavior. - Prevented overlapping Home loads. - Preserved loading state during startup. - Fixed account-transition behavior. - Integrated signed-out Home fallback when authenticated loading fails. ### Lyrics - Fixed word-synchronized format detection. - Improved synced lyric timing. - Fixed translated-lyrics source detection. - Improved BetterLyrics fallback handling. - Fixed prepared lyrics mapping issues. ### Artwork - Fixed recycled bitmap crashes. - Enforced artwork size limits. - Preserved artist artwork when metadata omits it. - Improved expired and offline artwork handling. ### Cast - Stabilized Cast discovery. - Preserved stream MIME types. - Corrected Cast `MediaItem` configuration. - Improved Cast playback reliability. ### Login & Accounts - Prevented unintended intent URL navigation. - Prevented YouTube Music Store redirects. - Corrected Brand Account playlist requests. - Improved account session propagation into playback. ### Networking & Security - Hardened Android network security configuration. - Improved WebView mixed-content handling. - Integrated safer OkHttp timeout behavior. - Integrated chunked upstream loading to prevent unexpected EOF errors. ### Likes & Sync - Preserves local like changes during synchronization. - Routes song likes through the synchronization layer. - Handles like-sync failures without disrupting playback. ### UI - Prevented seekbar reset while seeking. - Improved BottomSheet drag behavior. - Fixed stale speed-dial state. - Fixed multi-select preference value handling. - Disabled Low Data Mode by default. --- ## β»οΈ Internal Improvements - Externalized the YouTube client catalog. - Reworked stream authentication around shared request state. - Simplified PoToken generation. - Removed obsolete IP rotation. - Replaced manual cipher handling with automatic JavaScript runtime updates. - Refactored stream preload ownership. - Centralized lyrics preparation and rendering. - Moved lyrics translation state into ViewModels. - Removed YouTube side effects from `SongEntity`. - Simplified artwork loading. - Restructured Canvas settings. - Cleaned duplicate and unused Android resources. - Updated Kotlin source headers. - Updated QuickJS Kotlin to **1.0.10**. - Aligned coroutine dependency versions. - Updated project submodules. - Improved Gradle build compatibility. --- ## π Pull Request Highlights - **#1139** β Network security, WebView handling, OkHttp timeout hardening, and AOD crash prevention by @Balajitechlabs. - **#1143** β Crossfade handoff silence fix by @Marker-bit. - **#1193** β LeakCanary support and Nightly build variant by @sang765. - **#1202** β Reduced Search GC pressure on low-end devices by @sang765. - **#1219** β Wallpaper color extraction backport by @sang765. - **#1229** β V10 Editorial Player and player improvements by @IIXII-L192. - **#1230** β Visibility-off icon rendering fix by @farhanansari888. - **#1251** β F-Droid preparation by @RajnishKMehta. - **#1252** β Artifact channel and dynamic release URLs by @rukamori. - **#1256** β Dynamic Nightly updater URLs by @sang765. - **#1257** β Removed unsupported Discord Platform option by @sang765. - **#1270** β Skip update checks for Artifact builds by @sang765. - **#1278** β Indonesian translation update by @adam-adrian. - **#1282** β Continuous MiniPlayer and Navigation Bar shape morphing by @adam-adrian. --- ## π Referenced Issues - **#1061** β Queue Play Next. - **#1087** β Recycled artwork crashes. - **#1152** β Manually edited song title preservation. - **#1155** β Playback position recovery. - **#1156** β Cast playback reliability. - **#1204** β Artwork bitmap size limits. --- ## π Localization Translations were added or updated for: Azerbaijani, Azerbaijani (Southern), Burmese, Chinese (Simplified), Chinese (Traditional), Estonian, French, German, Hebrew, Hindi, Indonesian, Italian, Japanese, Javanese, Korean, Maithili, Persian, Polish, Portuguese, Portuguese (Brazil), Russian, Slovenian, Spanish, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Uzbek, and Vietnamese. Thanks to all Weblate and Codeberg Translate contributors. --- ## β€οΈ Contributors Thanks to everyone who contributed features, fixes, performance improvements, design work, packaging, documentation, and translations to ArchiveTune 15.0.0. Development contributors include: @rukamori, @mikooochi, @shinonatsukii, @sang765, @IIXII-L192, @Balajitechlabs, @Marker-bit, @adam-adrian, @RajnishKMehta, @farhanansari888 And thanks to all translation contributors helping expand ArchiveTune's language coverage. --- ## π Full Changelog **Full Changelog:** [v14.1.0...v15.0.0](https://github.com/rukamori/ArchiveTune/compare/v14.1.0...v15.0.0) - Aug 8, 2026 14.1.0# 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
Moreβ¦
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 * @IIXII-L192 made their first contribution in https://github.com/rukamori/ArchiveTune/pull/1053 * @midomizo933 made their first contribution in https://github.com/rukamori/ArchiveTune/pull/1078 * @vossgraves made their first contribution in https://github.com/rukamori/ArchiveTune/pull/1116 * @Sandy4j made their first contribution in https://github.com/rukamori/ArchiveTune/pull/1041 * @Balajitechlabs made their first contribution in https://github.com/rukamori/ArchiveTune/pull/1120 ### Full Changelog https://github.com/rukamori/ArchiveTune/compare/v14.0.0...v14.1.0 - Jul 19, 2026 14.0.0# 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
Moreβ¦
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 * #981 β Native output switcher and reactive device indicator for Player V7 and V8 by @adam-adrian. * #988 β Dynamic file-size units and decimal precision by @adam-adrian. * #991 β Android 10 output-switcher crash fix by @adam-adrian. * #1000 β Cached bitrate and sample-rate information for local audio by @adam-adrian. * #1012 β Responsive thumbnail ratios and optimized image loading by @adam-adrian. * #1022 β Stable liked-song sorting by @ooobamboo. ## 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](https://github.com/rukamori/ArchiveTune/releases/tag/v13.8.0) - Jul 2, 2026 13.7.0# Changelog Focuses on lyrics improvements, extractor playback routing, YouLyPlus support, app icon customization, artist blocking, library download visibility, Discord Rich Presence reliability, search behavior, cache/storage stability, and broader Material 3 UI polish. This release also includes localization updates, dependency updates, icon-generation pipeline improvements, and internal refactors. ## Major Highlights ### Lyrics, Providers & Playback Routing Lyrics handling has been expanded with stronger provider support, better TTML behavior, and improved playback URL routing through the extractor pipeline.
Moreβ¦
* Added romanization and translation support to both enhanced and legacy lyrics modes. * Added the YouLyPlus lyrics provider. * Added cookie forwarding to `streamingExtractionManager.extractAudioUrl`. * Routed extractor playback URLs through `ResolvedUrlRoutingDataSource`. * Recognized URI paths for extractor playback. * Preserved line-synced Better Lyrics TTML output. * Classified TTML sync badges more accurately. * Filtered empty Paxsenix lyrics payloads. * Gated automatic provider translations. * Wrapped long lyrics in both lyrics modes. Contributors: @rukamori Related: #961 ### Search, Library & Artist Controls Search, library, and artist-management flows have been refined with new interaction behavior and stronger content filtering. * Opened online search from the floating navigation toolbar on double tap. * Opened the search overlay when tapping the Search tab while already on the Search screen. * Added global artist blocking and blocked-content handling. * Added downloaded album visibility in Library Albums. * Added a downloaded album filter. * Corrected Local Playlist search mode layout. * Prevented Home app bar overlap. * Reserved Home chip space during loading. * Tightened Home section spacing. Contributors: @rukamori, @sang765, @mikooochi Related: #940, #944 ### App Icons & Launcher Customization Launcher icon customization has been expanded with metadata-driven selection, GitHub author actions, and a more reliable adaptive-icon generation pipeline. * Added a metadata-driven launcher icon selector. * Added GitHub author actions to the icon screen. * Matched the icon selector design to the appβs UI language. * Generated full adaptive launcher icons. * Generated adaptive icons from SVG metadata. * Preserved SVG launcher artwork. * Prevented duplicate adaptive icon layers. * Created the adaptive drawable directory when needed. * Enforced 512 vector dimensions for icon submissions. * Sanitized SVG doctype declarations. * Handled missing vector fill colors. * Added opaque vector fill support for submitted icon artwork. * Aligned the selected icon stroke with row shape. * Prevented main-thread vector inflation. * Synchronized the selected launcher task icon. Contributors: @rukamori, @mikooochi ### Material UI, Motion & Recognition The app receives broader Material motion adoption, tonal backdrop changes, and recognition-screen refinements. * Applied the global Material motion scheme. * Replaced the previous mesh background with a tonal backdrop. * Rebuilt the Music Recognition flow and UI. * Added restrained Material Shape recognition anchoring. * Fixed recognition callback, button shape, and composable shape creation issues. * Standardized settings header scroll behavior. * Refactored the main header scroll style. * Corrected navigation callback typing. * Reset `TopAppBarState` height and content offsets. * Filled the AOD shape picker grid width. * Used compatible connected button shapes in Debug Settings. Contributors: @rukamori, @adam-adrian, @mikooochi Related: #941, #963 ### Discord Rich Presence & Social Playback Discord and Music Together reliability have been improved across status rendering, gateway sync, activity platform storage, and session state. * Supported multiple artists in Discord RPC status. * Centralized Discord RPC sync flow and hardened gateway transport. * Fixed Discord Rich Presence missing token handling. * Prevented thumbnails from replacing artist artwork. * Prevented playing presence from rendering as paused. * Serialized the selected activity platform. * Marked Music Together sessions active only when connected. Contributors: @rukamori, @adam-adrian Related: #919, #932 ### Localization & Community This release includes expanded and corrected translations across multiple languages. * Completed Vietnamese translation coverage for 61 missing strings. * Added missing Vietnamese translations. * Updated Indonesian translations. * Added Javanese translation support. * Fixed ambiguous palette duplicate strings. * Added and updated translations through Weblate for French, Indonesian, Korean, Vietnamese, Portuguese (Brazil), Spanish, Turkish, Urdu, Dutch, German, Hebrew, Thai, Chinese Traditional, Japanese, Russian, Ukrainian, Arabic, Italian, and other community-maintained languages. Contributors: @sang765, @Davidzinco, @Mickael81, @hsp1020, @wynriu, @ValteMCPE, @gallegonovato, @radenya86, @beebtw, @Myrdincx, @flue17, @Yar270, @FullGa123, hijasongood, @nekohepott32, @AlmaziikDev, @nijeryaprensi, Ur_lightmoon, @andres2, @MadameVulva Related: #920, #925, #933 ## Stability & Bug Fixes ### Playback, Extractor & YouTube Reliability Playback and extractor stability have been improved across YouTube routing, stream recovery, fallback behavior, equalizer session handling, and bot-detection paths. * Guarded Cast disconnect media item transfer. * Required Datasync ID for account login to prevent global playback-forbidden issues. * Ignored `"Origin doesn't match Host"` client errors. * Filtered JavaScript player extractor failures in `getStreamUrl`. * Skipped external audio fallback on YouTube bot detection. * Used `music.youtube.com` in `toYouTubeWatchUrl`. * Forwarded the GVS token to the extractor. * Recovered equalizer audio sessions. * Swapped YouTube Music thumbnails with `i.ytimg.com` URLs for music videos. * Prevented playing presence from rendering as paused. Contributors: @rukamori, @sang765 Related: #895, #929 ### Lyrics Screen & Input Handling Lyrics controls now avoid touch-through behavior and better isolate control surfaces from the underlying player content. * Blocked touch-through behind lyrics controls. * Isolated the lyrics touch shield from content. * Wrapped long lyrics in enhanced and legacy modes. * Preserved line-synced Better Lyrics TTML output. * Removed problematic player pointer-input handling. Contributors: @rukamori Related: #907, #961 ### Queue, Cast, Navigation & UI State Queue and navigation behavior have been stabilized with safer bundle keys, fewer forced-scroll cases, and cleaner layout state. * Prevented queue list flicker and forced scrolling. * Used bundle-safe queue list keys. * Corrected navigation callback typing. * Ensured app bar state offsets reset correctly. * Prevented Home app bar overlap. * Reserved chip slot space during Home loading. * Corrected Local Playlist search mode layout. * Allowed saving the current account. Contributors: @rukamori, @mikooochi ### Storage, Cache & Downloads Download and storage operations now use safer buffering, timeout handling, and cache-clearing behavior. * Increased download write buffer sizes. * Added HTTP timeouts. * Prevented cache clearing freezes. * Refactored media cache clearing through `StorageCacheClearReporter`. Contributors: @rukamori, @sang765 Related: #917 ### Icon Submission & Generation Pipeline Community icon submission and generation handling has been hardened to reduce malformed output and launcher-resource issues. * Accepted JSON-only PR metadata. * Sanitized SVG doctype declarations. * Enforced 512 vector dimensions. * Passed SVG source as a path. * Resolved JAXP property compatibility. * Created adaptive drawable directories. * Prevented duplicate adaptive icon layers. * Preserved SVG launcher artwork. * Generated full adaptive launcher icons. * Avoided main-thread vector inflation. Contributors: @rukamori, @mikooochi ### Dependency & Compatibility Fixes Dependencies and compatibility paths have been updated for build and runtime reliability. * Updated all dependencies to v15.0.3. * Updated `com.mocharealm.accompanist:lyrics-core` to v0.4.6. * Updated `com.mocharealm.accompanist:lyrics-core` to v0.4.7. * Updated Gradle to v9.6.1. * Replaced deprecated RenderScript blur with a pure Kotlin stack blur. * Avoided empty plugin descriptor tasks. Contributors: @renovate[bot], @sang765, @rukamori Related: #921, #922, #924, #962, #964, #966 ## Performance Improvements * Memoized `ListItemDefaults` calls in `AppIconRow`. * Prevented main-thread vector inflation in the icon screen. * Increased download write buffers and added HTTP timeouts. * Prevented cache-clearing freezes. Contributors: @rukamori, @mikooochi, @sang765 Related: #917 ## Internal Cleanup & Refactors ### Architecture & UDF * Refactored `LazyCache` to use `withDelegate` for `SimpleCache` access. * Moved Home screen logic directly to a UDF structure. * Moved Search Result data to UDF. * Rebuilt Music Recognition flow and UI. * Refactored Artist Screen overflow actions into segmented controls. * Merged lyrics translation handling. * Removed redundant `remember` usage from `AppIconRow`. Contributors: @rukamori ### Discord, Settings & Storage Internals * Centralized Discord RPC sync flow. * Hardened Discord gateway transport. * Standardized settings header scroll behavior. * Refactored main header scroll style. * Refactored cache clearing through `StorageCacheClearReporter`. Contributors: @rukamori, @adam-adrian Related: #919, #941, #963 ## Build, CI & Release Reliability * Increased `AdaptiveIconForegroundInset` to `20dp`. * Commented the generated icon preview table. * Updated submodules. * Updated docs and assets. * Removed duplicate strings. * Cleaned formatting and unused imports. * Bumped the app to `13.7.0`. Contributors: @rukamori ## Pull Request Highlights * #917 β Increased download write buffer sizes and added HTTP timeouts by @sang765. * #919 β Centralized Discord RPC sync flow and hardened gateway transport by @adam-adrian. * #920 β Completed Vietnamese translation coverage for 61 missing strings by @sang765. * #921 / #924 β Replaced deprecated RenderScript blur with pure Kotlin stack blur by @sang765. * #925 β Added missing Vietnamese translations and fixed ambiguous palette duplicates by @sang765. * #929 β Swapped YouTube Music thumbnails with YouTube `i.ytimg.com` URLs for music videos by @sang765. * #932 β Added multiple-artist support to Discord RPC status by @adam-adrian. * #933 β Updated Indonesian translations and added Javanese translation by @Davidzinco. * #941 β Standardized settings header scroll behavior by @adam-adrian. * #944 β Opened the search overlay when tapping the Search tab while already on Search by @sang765. * #949 β Merged the music-video-only thumbnail swap fix by @sang765. * #962 β Updated `com.mocharealm.accompanist:lyrics-core` to v0.4.6 by @renovate[bot]. * #963 β Refactored the main header scroll style by @adam-adrian. * #964 β Updated dependencies by @renovate[bot]. * #966 β Updated `com.mocharealm.accompanist:lyrics-core` to v0.4.7 by @renovate[bot]. ## Contributors Thanks to everyone who contributed to this release: @rukamori, @sang765, @Davidzinco, @mikooochi, @adam-adrian, @Mickael81, @hsp1020, @wynriu, @ValteMCPE, @gallegonovato, @radenya86, @beebtw, @Myrdincx, @flue17, @Yar270, @FullGa123, hijasongood, @nekohepott32, @AlmaziikDev, @nijeryaprensi, Ur_lightmoon, @andres2, @MadameVulva ## Referenced Issues & Pull Requests #895, #907, #913, #916, #917, #919, #920, #921, #922, #924, #925, #929, #932, #933, #940, #941, #944, #945, #949, #961, #962, #963, #964, #966 ## Full Changelog **Full Changelog**: https://github.com/ArchiveTuneApp/ArchiveTune/compare/v13.6.0...v13.7.0 - Jun 24, 2026 13.6.0# Changelog Focuses on playback reliability, Chromecast integration, Music Together improvements, onboarding, backup handling, update delivery, and broader UI stability. This release also includes performance improvements, internal refactors, localization updates, and build pipeline refinements. ## Major Highlights ### Playback, Player & Audio This release improves playback stability across multiple player styles, especially around CanvasArtwork, cached playback, fallback handling, and stream recovery.
Moreβ¦
* Stabilized CanvasArtwork playback across V7 and compatible player styles. * Improved fallback playback, cached canvas reuse, and compatibility handling. * Disabled problematic audio decoding paths where needed to prevent playback crashes. * Improved recovery from invalid stream sessions, stale playback state, and cached playback span issues. * Fixed player queue access from player controls. * Fixed queue selection toolbar crashes, toolbar spacing, and selection count behavior. * Added a local song shuffle action for faster local playback control. * Improved open-ended read handling for WebM and Ogg playback streams. Contributors: @rukamori, @mikooochi Related: #823, #835, #851, #870, #885, #886 ### Chromecast, Cast & GMS Integration Chromecast support has been added and the Cast experience has been redesigned for better reliability and a more modern interface. * Added Chromecast / Cast support for GMS builds. * Added LAN mode and HTTPS handling for Cast playback. * Replaced the legacy Cast router UI with a Jetpack Compose Cast menu. * Improved cast route selection behavior. * Added receiver branding support for ArchiveTune Cast. * Stabilized the Cast bridge, route picker menu, selectable-route handling, and AppCompat route dialog support. * Improved GMS Bluetooth scan permission handling. Contributors: @mikooochi, @rukamori ### Music Together & Social Presence Music Together now provides clearer session ownership and participant state, with improved layout behavior and Discord Rich Presence reliability. * Added ownership transfer for Music Together sessions. * Added join and leave notifications for shared playback sessions. * Added Music Together access from the floating navigation toolbar. * Refactored Music Together screen state handling. * Improved adaptive layout behavior for responsive rendering. * Centralized Discord RPC sync flow. * Improved replay hold-aware Discord presence behavior. * Fixed Discord Rich Presence album button URLs. * Hydrated Discord presence links from the music service. Contributors: @rukamori, @adam-adrian Related: #864, #871, #877, #899 ### Library, Playlists & Search Playlist management and search behavior have been improved with new controls, better state persistence, and cleaner UI handling. * Added playlist hiding from the library context menu. * Added playlist sort direction controls. * Restored custom playlist reordering. * Personalized top discovery sections in Search. * Switched Search to official tab behavior. * Fixed local playlist song selection persistence after refresh. * Restored remote history song playback. * Improved hidden playlist toggle styling. * Merged playlist action controls for cleaner playlist management. * Added NG language-code support. Contributors: @rukamori, @sang765, @mikooochi Related: #836 ### Onboarding, Backup & Update Flow The first-run experience, backup restoration, and update flow have been expanded and refined. * Added a first-run onboarding flow. * Refined onboarding page design and fixed onboarding UI issues. * Added `RestoreBackupFileActivity` with `.backup` intent handling and validation. * Redesigned the update screen structure. * Added in-app GMS update downloads. * Allowed update triggering for FOSS builds. * Improved update download progress dialogs. * Centered download dialog content. * Added direct-download warning strings. * Fixed GMS nightly artifact URLs. * Restricted direct APK downloads to GMS builds. Contributors: @mikooochi, @sang765, @rukamori Related: #872 ### Widgets, Quick Settings & System UI System-level integrations received new widget and quick settings support. * Added the Listening Insights widget with additional listening information. * Added AOD quick settings tile support. * Improved AOD launch behavior by expanding the player before entering AOD mode. * Added snackbar notifications. * Added AI translate dialog background mode. Contributors: @rukamori, @sang765 Related: #878, #893 ## Stability & Bug Fixes ### Playback & Media Reliability * Fixed V7 Canvas playback instability. * Fixed Canvas fallback behavior and cached Canvas compatibility. * Fixed Canvas decoding crash cases. * Fixed playback effect rebinding. * Fixed cached Canvas handling. * Fixed search bar text-input crash cases. * Fixed playback recovery callback typing. * Fixed bad stream-session recovery. * Fixed local songs incorrectly using YouTube radio. * Ensured radio playback replaces the queue correctly. * Fixed Music Together playback sync reliability. * Widened Music Together screen state flow typing. * Switched device mute detection to `AudioManager` for more reliable mute-state handling. Contributors: @rukamori, @mikooochi Related: #864, #871, #877 ### Lyrics & Translation * Fixed lyrics preload getting stuck by falling back through available providers. * Preserved original lyrics after translation. * Restored TTML word phonetics. * Stripped embedded word timing tags from lyrics output. * Removed the top grabber indicator from the lyrics screen. * Blocked player-control touch passthrough from the lyrics screen. Contributors: @rukamori Related: #823, #890 ### UI, Layout & Responsiveness * Unified player-aware bottom padding across settings screens. * Fixed Add to Playlist dialog adaptive layout so actions remain visible. * Removed the dark background from the create row. * Redesigned the Tags Management dialog with an adaptive layout. * Added adaptive Playback Error information layout. * Added adaptive Music Together activity layout. * Fixed Home screen speed dial auto-fit height. * Fixed speed dial icon contrast. * Fixed floating navigation toolbar brightness. * Fixed pure-black mode FAB transparency in the floating toolbar. * Fixed onboarding segmented list item calls. * Disabled slider style for V7, V8, and V9 player styles where it caused appearance issues. Contributors: @adam-adrian, @rukamori, @mikooochi Related: #834, #876, #883 ### Queue, Player Menu & Navigation * Removed unused radio menu actions from the player menu. * Removed the library create-playlist FAB from the floating navigation toolbar. * Removed queue selection count from the toolbar. * Prevented selection toolbar constraint crashes. * Fixed queue opening from player controls. * Replaced the legacy queue selector. Contributors: @rukamori Related: #886 ### YouTube, Playlists & Data Handling * Fixed YouTube playlist mutations when delegated authentication becomes stale. * Fixed Library Mix screen most-played album display. * Fixed remote history song playback. * Improved WebM and Ogg stream handling for open-ended reads. Contributors: @rukamori, @mikooochi Related: #891 ## Performance Improvements * Reused cached Canvas videos to reduce repeated Canvas resolution work. * Reused cached playback spans to reduce repeated playback processing. * Improved WebM and Ogg stream handling for open-ended reads. * Enabled Gradle build caching. * Refined `MusicService` `DataSpec` length handling. * Removed unused cached-resource checks. * Improved update download progress handling. * Refined update screen structure. Contributors: @rukamori, @mikooochi ## Internal Cleanup & Refactors ### Architecture & Navigation * Moved Search to the top route for a cleaner navigation structure. * Moved vibration settings into Privacy settings. * Added translucent top app bar icon buttons in `MainActivity`. * Lightened Mood & Genres cards. * Refreshed resource icons. Contributors: @rukamori Related: #849 ### Lyrics, Providers & Modules * Extracted lyrics providers into a submodule. * Moved pointer-input handling to the Apple Music controls column for safer input consumption. * Preserved original lyrics state through translation and provider workflows. Contributors: @sang765, @rukamori Related: #880 ### Cast & Playback Internals * Replaced the flat-list Cast route sheet with a Compose-based route flow. * Specified Cast screen state typing for `MutableStateFlow`. * Centralized Cast route selection success handling before hiding the route picker. * Refined `MusicService` playback sync behavior. * Refined `DataSpec` handling. * Improved cached playback logic. Contributors: @mikooochi, @rukamori ### Build, CI & Release Reliability * Made release signing optional. * Added support for FOSS release signing. * Added GMS naming to build artifacts. * Gated issue notifications on successful APK builds. * Triggered development notifications after APK builds. * Enabled Gradle build cache. * Disabled cache duration for changing modules. * Fixed compile issues around widget updater scope, extra branches, and missing resources. * Updated submodule references. * Merged submodule changes. * Removed the Izzy variant. * Moved the Discord OAuth callback activity into the shared manifest. * Cleaned unused strings, resources, and codebase entries. * Updated random speed dial color behavior. * Prevented icon color overrides. * Updated About ViewModel and cleaned attribution-related code. * Bumped version to `13.6.0`. Contributors: @rukamori ## Localization & Community * Added missing Vietnamese and Japanese translations. * Updated translations through Weblate for Korean, Spanish, German, French, Indonesian, Japanese, Estonian, Russian, Vietnamese, Portuguese (Brazil), Malay, Arabic, Arabic (Egyptian), Italian, Turkish, Chinese Simplified, Hebrew, Malayalam, Dutch, Ukrainian, Sanskrit, Hindi, and Tamil. * Updated translation files. * Added missing string resources. Contributors: @sang765, @Codeberg Translate, @rukamori Related: #892 ## Pull Request Highlights * #834 β Unified player-aware bottom padding across settings screens by @adam-adrian. * #836 β Added playlist hiding from the library context menu by @sang765. * #872 β Added `RestoreBackupFileActivity` with `.backup` intent handling and validation by @sang765. * #880 β Extracted lyrics providers into a submodule by @sang765. * #892 β Added missing Vietnamese and Japanese translations by @sang765. * #893 β Added snackbar notifications and AI translate dialog background mode by @sang765. * #899 β Centralized Discord RPC sync flow and replay hold-aware behavior by @adam-adrian. ## Contributors Thanks to everyone who contributed to this release: @hsp1020, @gallegonovato, @flue17, @adam-adrian, @rukamori, Priit JΓ΅erΓΌΓΌt, @AlmaziikDev, @RubCut, @Danz, @NENO756, @Semmy, @ciaociaociao, @raden, @Zepp043, @Yar270, man_with_scars, @Vistaus, @mybxdxyz, @vintagezero, @midomizo933, @Chandramauli-Arm64, @ValteMCPE, @Mickael81, @naturbrilian. ## Referenced Issues & Pull Requests #823, #834, #835, #836, #849, #851, #864, #870, #871, #872, #876, #877, #878, #880, #883, #885, #886, #890, #891, #892, #893, #899 ## Full Changelog https://github.com/ArchiveTuneApp/ArchiveTune/compare/v13.5.0...v13.6.0