If this helped you, consider starring the repo ⭐ ⭐This is still on the making, SpotiFLAC still has an oauth issue.⭐
SpoitiLists is a free extension for SpotiFLAC Mobile. It shows your real Spotify playlists and your saved (liked) songs inside SpotiFLAC’s Home feed. When you open a playlist in the app, it loads the current track list from Spotify, so new songs you add on Spotify show up the next time you open that playlist (SpotiFLAC may cache the Home screen for a few minutes).
This project is not made by Spotify or the SpotiFLAC team. It uses Spotify’s official Web API and OAuth (you log in with your Spotify account).
SpotiFLAC can load extensions from a registry JSON on GitHub.
-
Open SpotiFLAC → Store tab.
-
When it asks for an Extension Repository URL, paste this raw
registry.jsonlink:https://raw.githubusercontent.com/AlexRabbit/SpoitiLists/refs/heads/main/registry.json -
Find SpoitiLists in the list and install it.
-
Go to Settings → Extensions, tap SpoitiLists, and follow Part B below to connect Spotify.
You must create a small “app” in Spotify’s developer site. You are not publishing an app to the Play Store; this is only for an API Client ID.
- On a computer or phone browser, go to:
https://developer.spotify.com/dashboard - Log in with your Spotify account.
- Click Create app.
- Fill in:
- App name: anything, e.g.
SpoitiLists - App description: e.g.
Personal SpotiFLAC extension - Redirect URI: click Add, type exactly:
spotiflac://callback
(If SpotiFLAC’s docs or settings say a different URI, use that exact string instead.) - Which API/SDKs are you planning to use? choose Web API.
- App name: anything, e.g.
- Save. Open the app → Settings.
- Copy the Client ID (long text). Do not put your Client Secret into SpoitiLists; this extension uses PKCE and does not need the secret.
Why buttons used to “do nothing”: SpotiFLAC wrapped extension actions as { result: { message: … } }, while the UI read message only at the top level — so toasts never appeared. SpoitiLists 1.1.1+ expects a SpotiFLAC build that flattens that JSON (see Part C), and (for the copyable field) merges setting_updates into extension settings.
Version / Store installs: SpotiFLAC refuses an install when the package version equals the one already installed (Extension is already at version …).
Store shows new version but Settings shows an old one: The Store reads registry.json; the installed version comes from manifest.json inside the .spotiflac-ext file. If you bump manifest.json / registry.json but forget to rebuild and commit extensions/spoiti-lists.spotiflac-ext and extensions/SpotiLists.spotiflac-ext, GitHub still serves an old zip — users keep getting the old version. After every version bump, run scripts/package.sh or scripts/package.ps1, then commit and push both extension files together with the JSON files. CI on this repo checks that they match.
Store shows “Failed to install SpoitiLists”: SpotiFLAC downloads the file from download_url in registry.json (see extension_store.go → downloadExtension). If that URL returns 404 (file missing on GitHub, wrong branch, or wrong capitalization in the path), the install fails with a generic message. Fix: commit and push extensions/spoiti-lists.spotiflac-ext (and/or extensions/SpotiLists.spotiflac-ext) to the main branch, then open the raw URL in a browser — you must see a download, not “404: Not Found”. The registry uses the all-lowercase filename to avoid case mismatches. After pushing, pull to refresh in the app Store (or clear the store cache in SpotiFLAC if it still fails).
- Open SpotiFLAC → Settings → Extensions → SpoitiLists (install 1.1.1+).
- Paste your Spotify Client ID into Spotify Client ID.
- Leave Redirect URI as
spotiflac://callbackunless you changed it in Spotify’s dashboard (both places must match exactly). - Tap 1. Connect to Spotify. The Spotify login link field fills with a long URL — select and copy it (or use the snackbar hint), open it in Chrome / Safari, log in, and tap Agree.
- After approval, Spotify redirects (often
spotiflac://callback?code=…). If the browser cannot open the app, copy thecode(or the whole callback URL), paste it into Authorization code, save that field, then tap 2. Finish login. - If the link field is empty, tap Show last login link again (avoid tapping Connect again unless you want a new PKCE attempt).
Optional — automatic handoff: If your SpotiFLAC build handles spotiflac://callback, you may not need to paste a code. That is implemented in the app, not only in SpoitiLists.
Privacy: Clear Authorization code after login if you pasted a code there.
For Connect to show feedback and fill Spotify login link, use a SpotiFLAC Mobile build that includes:
- Go:
InvokeActionflattens the extension’s return object to the top level of the JSON (somessage/setting_updatesare visible to Flutter). - Flutter: extension settings screen merges
setting_updatesfrom action results into saved settings, and showsoauth_login_urlas selectable text.
The copy in this repo’s SpotiFLAC-Mobile-main folder includes those changes; if you use an older store APK, upgrade when the upstream project ships the same fixes, or build from source.
- Open the Home tab. With SpoitiLists enabled, you should see sections like Your playlists and Saved tracks.
- Tap a playlist to open it; the song list is loaded from Spotify when you open it.
- If you added songs on Spotify and don’t see them yet: go back and open the playlist again. The Home row can update after a short cache (often a few minutes).
- Download
extensions/spoiti-lists.spotiflac-extfrom this repo (raw or ZIP).extensions/SpotiLists.spotiflac-extis the same bytes if you prefer that name for sideloading. - SpotiFLAC → Settings → Extensions → install .spotiflac-ext (as described in SpotiFLAC’s own help).
From the repo root:
- Windows:
powershell -ExecutionPolicy Bypass -File scripts/package.ps1 - macOS / Linux:
chmod +x scripts/package.sh && ./scripts/package.sh
This creates SpotiLists.spotiflac-ext at the repo root and copies it to extensions/spoiti-lists.spotiflac-ext (Store download_url — commit and push this file so the Store can install) and extensions/SpotiLists.spotiflac-ext (same package, friendly name).
After changing manifest.json or index.js, rebuild, commit, and push so the Store URL stays up to date.
License: MIT — see LICENSE.