Skip to content

Releases: kota-zo/myspoti

v2.0.0-beta.9

v2.0.0-beta.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:55
  • Fast skips during an ad or a reload: the song your taps point to plays once the ad or the reload is over, and the screen shows that same song (the sound and the screen no longer drift apart); "previous" during an ad no longer restarts the ad.

  • Ad breaks are stopped at the source: the player page's own ad managers (audio and in-stream) are switched off from the app, and again each time an ad shows up, instead of patching the web player's own files (the way SpotX does it, done here at runtime so an update of the page cannot break it). The device also no longer tells Spotify it cannot read mp3 (file_urls_mp3) — the registration some free accounts were refused for (402 COMMAND_FAILED).

  • No more silence until a restart: an ad mute whose unmute was lost (the page never reports the end of a break) is lifted after 75 s, the mute is only trusted once it reached the media elements, and a podcast stalling is caught like a song.

  • The login page can no longer spin for ever: the app does not wait on the address alone any more; no signed-in token 25 s after the player page came back, and the login page is shown again so it can be tried.

  • The page rebuilds itself after a renderer crash (the reported "the app crashed", "no sound until the player is restarted") instead of leaving a dead page behind.

  • One client identity across launches: the client token's device id is kept, so Spotify no longer sees a new client at every start.

  • Your phone tells Spotify its own name: the device registration now carries the phone's name (the one Android knows), so the other devices' list shows it instead of a generic one, and the registration is again exactly what the real web player sends (no ad-format difference left to single it out).

  • Every install looks like its own browser: the browser version and the system it claims are drawn once per install instead of being the same string on every phone. A single rule could have covered every Myspoti at once; it now covers one client, like a real browser would.

  • A login that goes nowhere leaves a trail: each sign-in step reaches the log (login step #n POST /login/v3/…) with the status of anything Spotify refuses, instead of ending on a spinner with nothing to look at.

  • A report you can send us: Settings → Export a diagnostic report writes the app's recent log (the player page, the relay, the ads, the refusals) and the device details to a file and opens the share sheet — the log needed adb until now, so a report of a refusal or a login that fails was impossible to hand over.

  • Covers and profile pictures that never loaded are fixed: the profile endpoints hand out spotify:image:… identifiers rather than a picture's address, and the image loader was given that identifier as it was. Public playlists of a user and their profile picture now show their covers.

  • Upcoming lyrics are readable on a dark card: they were drawn in black at 55 % of opacity, so invisible on the AMOLED card; they now follow the card's own background.

  • During an ad the screen says so instead of leaving the previous song stuck on "buffering", and the player header keeps the playlist's own name when Spotify's label comes back empty; the artist page has its own options menu again and the separator reported missing from the profile header is back.

  • No more light band under the app: the navigation bar was left to the system (a white strip with dark icons under an always-dark UI) — it now blends in.

  • Crossfade, for real this time: the player had a stub that always answered "no crossfade" and the setting had been removed, so the slider testers were looking for did nothing. Settings → Playback now offers Off / 3 / 6 / 9 / 12 s: the current song fades out over its last seconds and the next one fades in — one player, one stream, so the two never overlap, and the label says so. Two independent fail-safes put the volume back, and no exit path can leave the sound down.

  • Scrolling the player no longer opens the lyrics: any upward drag used to count as the swipe shortcut; it now takes a deliberate flick, judged on release.

  • A Connect switch no longer restarts the song: when another device had taken playback and Myspoti takes it back, the position is remembered and restored if the page rolled back to the start.

  • The notification keeps up in the background: the refresh loop waited for a device that had taken playback, which only a pull-back sets — so an app started in the background never refreshed it. It now runs whenever the service is up.

  • Local Files lists what other players list: the query only took what Android's index calls music of 30 s or more, so a phone full of recordings or downloads showed "your audio files will appear here" while another player listed them (reported: 29 tracks). Everything over 20 s now counts, minus Ringtones/Notifications/Alarms/Android — 59 files listed on the test phone where 77 exist.

  • Remove a song from a playlist, and add it to another: a playlist you can edit now offers « Remove from this playlist » in the song's own menu (with Undo), and « Add to another playlist » opens a picker of your playlists with a search field.

  • Stop all downloads: one action cancels everything running or waiting without deleting a single file (« Remove all downloads » is still the separate, destructive one).

  • Updates on your terms: a setting turns the automatic check off (it stays on by default) and « Check for updates now » is right there.

  • The mini player names your headphones: Bluetooth icon and device name (or « Headphones » for wired) when the sound does not come from the phone.

  • Android Auto works from a cold start: the car's tree is there at once and a browse or a play waits for the player instead of failing while it loads.

  • The player keeps its colour on AMOLED: the tint from the cover's colour used to disappear in AMOLED mode; it is now there in both, as asked.

  • A song Spotify marks unavailable is still tried, and if it really cannot play the app says « Not available in your region » instead of leaving a tap that does nothing.

  • Podcasts download without SpotiFLAC and play like in the stock app: an episode now downloads with a free account — the file is the publisher's own plain MP3 (passthroughUrl, resolved right before each attempt), fetched in chunks with resume, checked (type, header, size), encrypted and kept in the offline store under episode:<id>. Spotify exclusives (passthrough = NONE, Widevine-encrypted) are refused with a clear message, DRM is never attempted. A queue of its own, one worker, resumed at start-up.

  • Show and episode pages: a header with the cover and its gradient, publisher/authors/narrators, rating, Follow, Episodes/Chapters and About tabs, newest/oldest sort, episode rows with "11 min left" and a "played" mark; the episode page has its actions (✓, download, share, ⋮, Play) and "Mark as played / unplayed", written to the account's collection (so it follows you). An audiobook page is no longer empty: chapters plus authors and narrators.

  • A podcast player of its own: −15 s / +15 s, speed 1 → 3×, a clock that toggles elapsed/remaining, sleep timer, no shuffle or repeat. Two causes of episodes stopping in the background are fixed: the autoplay guard paused episodes, and a resume the page ignored was never asked again.

  • The stock app's gestures: tapping the active tab again scrolls Home and Your Library (list and grid) back to the top without reloading, tapping Search again focuses the field; tapping the cover in the player switches to an immersive full screen (controls folded into a strip), undone by another tap — the quick swipe to the lyrics still works.

  • Recents, as in the official app: the entry leaves Your Library for the profile panel, under "Your recap". The page has a "Recents" header with back, Music / Podcasts pills, dated sections (Today, Yesterday, then the date) and rows grouped by container — "4 tracks played • EP • …", "9 tracks played • Playlist", "12 tracks added • Playlist" for Liked Songs (heart badge), an artist with their round picture, a Blend — 56 dp covers, a round chevron to unfold the container's tracks, a tap on the row to open it. The counts come from the page itself (groups, content type, "added" vs "played"), not a guess, and match the stock app's on the same account.

  • A bottom bar that looks like Spotify's: the icons were declared bigger but a Material component clipped them to 24 dp, the tabs sat in the middle of the bar instead of spreading evenly, and the selected label could turn grey under a white icon. The bar now uses three equal tabs across the full width, 28 dp icons, 11 sp medium labels, Spotify's idle grey, and the selected tint on both icon and label — on top of the system gesture bar.

  • Signing in no longer lies: Spotify's e-mail step sends the page back to open.spotify.com, and the app took that address for a session — so leaving it to read the mail ended on an anonymous player with nothing playable. The sign-in page now stays in front until a real token exists, the short grace only counts while the app is on screen, coming back re-reads the token, and an anonymous token sends you to the sign-in page instead of pretending.

  • The app presents itself like a real browser, consistently: the user agent now carries the reduced version every desktop Chrome sends (no build number in it), the brand list follows the version the way Chromium builds it, and what is remembered per install is how far behind the WebView it sits — so the claim follows WebView updates instead of drifting.

  • Dragging a song to the edge of the queue scrolls the list: the reorder used to work only among the visible rows; a drag near the top or bottom now scrolls the sheet (speed growing toward the edge) and the song can be moved across the whole queue.

  • ...

Read more

v2.0.0-beta.8

v2.0.0-beta.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:40
  • SpotiFLAC: when it is not verified (or the verification lapsed), Downloads and any download open the verification first, then the songs download; its page is full screen (Retry and Skip were hidden under the mini player); sessions follow SpotiFLAC Mobile's rules (renewed once, in their last hour, and a download refused because another one just renewed it is sent again), so many downloads at once no longer end the verification; you are told when it must be done again.
  • Automatic downloads wait for Wi-Fi: downloaded lists keep in step only on Wi-Fi; a download you start on mobile data goes ahead with a warning.

Full Changelog: v2.0.0-beta.7...v2.0.0-beta.8

v2.0.0-beta.7

v2.0.0-beta.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:22
  • Music that keeps playing: a frozen player page is caught and reloaded in seconds, and the song goes on where it was; no more silent songs after a skip, "previous" or an ad; play right after launch works.
  • Skips about three times faster (~0.8 s from tap to sound instead of ~2.5 s), and much less work in the background: far fewer calls to the player page and to Spotify.
  • Ads: an ad that gets through is silent, and ad breaks are shorter.
  • Myspoti plays on this phone again when the Spotify app (or another device) took playback without being picked here; free accounts refused by Spotify in some countries get a fallback and a message.
  • Canvas: the player opens straight on it, with a smooth fade when it is still loading; tap it to watch it alone. No more flashing buttons.
  • Faster artist pages and playlists; your liked songs by an artist come first and open their own page; hearts are right on long lists.
  • Smart shuffle keeps the song going, adds songs to every playlist and has its own icon.
  • New: followers and following on profiles, episodes in playlists, unavailable songs greyed out, fast scrollbar, share as image (Instagram story), swipe up for the lyrics, foldable-friendly player.
  • Settings: autoplay, accent colour, screen rotation.
  • New languages: German, Spanish, Portuguese and Greek.
  • GrapheneOS: the player loads with "secure app spawning" on.
  • GitHub Sponsors: support Myspoti on GitHub Sponsors too, next to Ko-fi.

Full Changelog: v2.0.0-beta.6...v2.0.0-beta.7

v2.0.0-beta.6

v2.0.0-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 09:40
  • Fewer ads abroad: ads from other countries' ad servers are blocked, sponsored playlists and promotion shelves are hidden; ads are recognised even when they look like songs; an ad that still gets through is muted and skipped.
  • Steadier player: play, pause and skips go one at a time (fast taps no longer jam it), and a song that did not start is asked again.
  • No more "pop" between songs: a very short fade on every skip.
  • Smart shuffle from the player: tap shuffle twice on a playlist or Liked Songs.
  • Remote control: with another device playing, the notification and the slider keep up.
  • Sleep timer "end of track" works with episodes, local files and repeat one; artist pages load the whole discography.
  • Artist discography (Releases) shows albums and singles again.
  • Long names fit: long playlist names and artist mixes no longer push the layout; big titles shrink to fit, cards in a row keep the same height.
  • A pause stays a pause, even right at the end of a song.
  • Downloads are safe: a damaged download list no longer deletes your downloaded songs.
  • Changes Spotify refuses are undone on screen (likes, playlist visibility), with a message.
  • Search keeps your query when you come back, and says when it is loading, empty or failed (with Try again). Artist and profile pages can be reloaded too.
  • Jam: join with a copied link; sharing an episode works.
  • Logout stops everything (local songs, video, notification); the data saver applies from launch.
  • Player buttons are named for TalkBack.

Full Changelog: v2.0.0-beta.5...v2.0.0-beta.6

v2.0.0-beta.5

v2.0.0-beta.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 00:27
  • Encrypted downloads: downloaded songs only play in Myspoti, on your phone.
  • Offline queue: the queue of downloaded songs shows what really plays next, and can be edited.
  • Downloaded songs are no longer reported to Spotify: no more album starting over a downloaded song.
  • In-app updates: download and install without leaving the app.
  • Jam QR scan no longer crashes; a banner tells when downloads need the SpotiFLAC verification.
  • Your playlists, edited in the app: name, description, cover (from your photos), public, private or collaborative, delete.
  • Profiles: search people, open a profile (followers, public playlists), follow; a playlist's owner opens theirs.
  • More from Spotify: "Don't play this artist", save episodes, search suggestions, "More like this" under albums, library sorted by recents or recently added, pin and move items into folders.
  • Sort in both directions (tap the chosen sort again), remembered for each playlist.
  • Fixes: AMOLED black everywhere, lists no longer end under the mini player, full-screen music videos show, the Spotify account page stays under the status bar, "Saved in" confirms each change, fast skips no longer jam the player, no white screen on phones in light mode.
  • Security and reliability fixes (Android Auto, library pages, logout, links, video lookups).

What's Changed

  • Artwork provider: only serve https CDN URLs by @liliapk in #17
  • Flows: let cancellation escape runCatching around emit by @liliapk in #18
  • Pagination: advance by raw row count, not mapped rows by @liliapk in #19
  • Bridge: timeouts fail as BridgeException, not cancellation by @liliapk in #20
  • Bridge buffers: drop oldest, keep the newest state by @liliapk in #21
  • Media browser: only Auto, Assistant, System UI and the app may browse by @liliapk in #22
  • WebView navigation: exact-or-subdomain host matching by @liliapk in #23
  • MainActivity: detach the WebView in onDestroy by @liliapk in #24
  • Logout: clear history, download sessions and Web storage; one logout path by @liliapk in #25
  • Deep links: play once, parse all Spotify hosts, drop autoVerify by @liliapk in #26
  • Shuffle-play without a context: queue the whole shuffled list by @liliapk in #28
  • Operation table: cache by bundle set when the build id is missing by @liliapk in #29
  • Updater: pick this release's own APK; keep the install confirmation by @liliapk in #30
  • SpotiFLAC verification: hold the returned grant until the screen takes it by @liliapk in #31
  • Music video: look up clips only when wanted or the player is showing by @liliapk in #32
  • Keep disk IO off the main thread (recap, offline index, deletes) by @liliapk in #33
  • Downloaded songs: no Spotify reports, no Web Player takeover by @liliapk in #34
  • Release logging: strip Log.v/d/i, keep search queries out of Log.w by @liliapk in #27

Full Changelog: v2.0.0-beta.4...v2.0.0-beta.5

v2.0.0-beta.4

v2.0.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 19:54
  • Updates install in the app: "Update" downloads the new version with a progress bar and hands it to Android's installer; no trip to GitHub. The first time, Android asks to allow installs from Myspoti.

Full Changelog: v2.0.0-beta.3...v2.0.0-beta.4

v2.0.0-beta.3

v2.0.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 19:36
  • Lossless downloads: the offline downloads are now FLAC. Myspoti finds the same recording on a lossless service (Tidal, Qobuz or Amazon) by the track's ISRC and takes it as it is served, never re-encoded — 16-bit CD quality, 24-bit hi-res when it exists, or AAC re-encoded on the phone to keep them small (in Settings). Tidal (and Qobuz) come through the same signed servers as SpotiFLAC Mobile's extensions, three songs at a time and three segments per song; the smallest quality takes Tidal's own AAC as it is served. A one-off verification in Settings turns them on. A track with no lossless recording anywhere is marked unavailable.
  • Sound quality, chosen at the start: a first step after sign-in picks the streaming quality (Automatic, Low 24 kbit/s, Normal 96, High 160) and the download quality (off, smallest AAC 96 kbit/s, FLAC CD, FLAC hi-res). Both stay in the new Settings page.
  • Connect shows your headphones: with Bluetooth or wired headphones, their name replaces "This phone", a "This phone" row sends the sound back to the speaker, and a Bluetooth button opens the pairing settings. The quality badge opens a small page with what plays now (codec and bitrate) and the setting.
  • Downloads ask their quality if you want ("Ask each time"): once for a whole playlist, kept for its new songs.
  • Liked Songs update at once after a like or an unlike, without reloading the whole list.
  • No more "bop" between two songs on the phone's speaker: the sound output stays awake across the change.
  • Haptics work again: buttons, likes and the debug icon vibrate.
  • Solid bottom bar as an option in Settings, Display.
  • Settings page: sound quality, downloads, data and battery, display and language, in one place (profile menu or Library's account menu).
  • Italian: Myspoti's own texts are translated too.
  • Headphones unplugged or Bluetooth gone: the music pauses instead of moving to the phone's speaker.
  • Stuck ads: an ad that blocks the player is skipped twice, then the player reloads, so the music does not stop for good.
  • Offline listens count: a downloaded song that plays on the phone is reported to Spotify like a streamed listen — the real play time, the context it started from — so it counts in Wrapped and the top lists. Offline listens are kept and reported once the network is back.
  • New icon: one green wave line, on the launcher, the launch screen and the status bar.
  • Beta and release install side by side: betas are "Myspoti Beta", releases "Myspoti", each with its own updates.
  • Music no longer stops after a few songs: when the player gets stuck between two songs, the next one starts by itself, and the player reloads if that is not enough.
  • Smart shuffle in playlists and Liked Songs (tap shuffle twice): the list shuffled, with a Spotify recommendation every three songs.
  • Sort by plays in that order: a sorted playlist plays and queues in the order shown; date added joins the sort options.
  • Saved in shows your folders and the playlists' covers; a folder's menu creates a playlist inside it.
  • Home loads again by itself after an error, with a Try again button.
  • Spotify account pages open in the app's language when Spotify has them in it.
  • Foldables and wide screens: the player keeps its controls on screen.
  • No ads: the player tells Spotify it cannot play the ad audio formats, so an ad comes with nothing to play and the next song starts within a couple of seconds. Nothing false is reported to Spotify (no ad is ever marked as heard).

What's Changed

  • Crash fixes: foreground start while paused, malformed page messages, frame-scoped JS bridges by @liliapk in #14
  • Bottom bar: solid black background by @liliapk in #15

New Contributors

Full Changelog: v2.0.0-beta.2...v2.0.0-beta.3

v2.0.0-beta.2

v2.0.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 13:25
  • Lock screen and Now Bar: play / pause in the middle (like, previous, play, next, shuffle) and a centred app icon.

Full Changelog: v2.0.0-beta.1...v2.0.0-beta.2

v2.0.0-beta.1

v2.0.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 09:49

A new engine, written from scratch, and a cleaner app on top of it.

  • New engine: the app now talks to Spotify through its own API (:api), tested against the real Web Player on every change. Screens load faster: catalog, search, playlists and library come straight from Spotify's servers, in parallel, without waiting for the hidden player.
  • Playback works again on every phone: Spotify silently ignored play commands sent by an Android WebView. They now leave from the app itself, so songs start and the sound plays.
  • Faster start: the home feed, your library and Liked Songs show at once after a restart, from the last visit, then refresh. The library and Liked Songs load in the background as soon as Spotify is ready.
  • The player closes into the mini player: pulled down, it uncovers the page you were on, with the mini player and the tabs already in place (no more grey area).
  • Right music videos: a fan upload (lyrics, sped up, audio) is no longer taken for the artist's clip, even when YouTube Music files it as official. When in doubt, no clip.
  • Home screen widget (4x1): the current song with previous, play / pause and next.
  • Songs no longer skipped in a partly downloaded list: some networks (VPN, private DNS) made the app think it was offline, so only the downloaded songs played (#10). Offline, a message now says how many songs of the list are downloaded.
  • The Account row in Your Library opens your Spotify account page (#7).
  • Playback goes on with the screen off: the app no longer leaves the foreground between two songs, so Android stops freezing it after the first song.
  • Switching accounts works: after a logout, signing in with another account shows that account, not the previous one.
  • Sort by in playlists and Liked Songs: title, artist, album or duration.
  • Hearts show at once in playlists: the liked songs were only checked after a tap (a playlist in the check made Spotify refuse it). Lists at the top of the library and the home shortcuts load before you open them.
  • Setup screen after signing in: notifications, local music, Bluetooth and unrestricted battery, each with its own button.
  • Folders in Local Files: choose the folders shown; WhatsApp, Telegram, recordings and ringtones start hidden.
  • Spotify keeps working after its updates: the app picks up the Web Player's new operations by itself when Spotify ships a new version.
  • No ads: the ad audio is refused, so the player skips the ad within a second, and nothing false is reported to Spotify.
  • Podcasts and audiobooks are back: shows, episodes, chapters, Your Episodes in Your Library, and playback speed (from the song menu) for episodes.
  • New releases in Search: what the artists you follow just released, then the latest releases.
  • Browse all shows Spotify's real categories (pages of playlists and albums), not keyword searches.
  • Jam in the Connect sheet: join a Jam with an invite link, share and leave. Spotify keeps starting one to Premium accounts.
  • Your recap (profile menu): your top tracks, artists and albums over 30 days, 12 months or all time, counting Spotify, downloads and local files. It stays on the phone.
  • Spotify account (profile menu): the account pages (plan, privacy, devices) open in the app, already signed in.
  • Song menu: Credits, and Exclude from your taste profile.
  • More lyrics sources (lyrics settings): Apple Music word by word, NetEase and Genius, when Spotify has no lyrics.
  • Fixes: your top artists and tracks, the profile and new releases no longer fail when Spotify's public API limits the app; folders keep working after a rename; playlist details save reliably; the app language works on every Android version.
  • Removed for now: crossfade, and Spotify's own music videos inside the player (YouTube clips still play).

Full Changelog: https://github.com/kota-zo/myspoti/commits/v2.0.0-beta.1