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.
✨ 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
📥 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
MediaItemconfiguration. - 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
MediaItemconfiguration. - 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