Spotui: a Spotify interface with an empty screenshot section and a YouTube audio layer
Spotify clone with deep integration
At a glance
- What is it?
- Spotui is an Android client written in Kotlin and Compose that signs into a real Spotify account and mirrors the official app, while resolving audio and lossless through separate third-party projects. It is licensed GPL-3.0, one release deep on version numbering, and carries an unusually large open-issue count.
- Who is it for?
- Use Spotui if you want a native Android player against an account you already pay for and you are comfortable with the audio arriving through a separate resolution chain rather than the service that sells it to you. Do not treat it as an independent music source, because the feature list depends on your account tier for lyrics and downloads, and the lossless path is documented as resolving rather than as streaming.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 39 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The screenshot section exists and is empty
The page has four feature bullets, a credits list, a disclaimer, and one heading with nothing under it.
That heading is Screenshot. There is no image, no caption and no link.
It is a strange omission for a specific kind of project. Every other part of the page describes what the application looks like by proxy, by saying it mirrors the official experience and that the queue matches what the web player would play. For an interface clone, the interface is the entire claim, and the one section that would show it is blank.
It also reads as an editing accident rather than a decision. The surrounding structure is consistent: a title, an intro paragraph, a feature list, a screenshot heading, a credits heading with four entries, a disclaimer. A section that was meant to hold an image and never got one.
The assets directory in the repository root suggests the files for such an image exist, since an assets folder in an Android project normally holds launcher icons and similar resources. Whatever it holds, none of it reached the page.
The practical effect is that a reader deciding whether to install gets a bulleted feature claim and no evidence for any of it, on a project whose only purpose is to be a look.
The audio comes from a different service than the account
The feature list says the application connects to your real Spotify account and mirrors the Spotify experience. The credits say where the sound comes from, and it is not Spotify.
Four projects are credited. One is credited for Spotify metadata plus a YouTube streaming layer. Another is credited for lossless track resolving. A third is credited for crossfade and DJ-style audio filtering.
Read together, those three roles describe a chain: your Spotify account supplies the library, the playlist data, the recommendations and the lyrics, while a separate streaming layer supplies the audio, a separate resolver produces lossless files, and a separate filter does the transitions. The application is the player and the interface.
The autoplay claim makes the split explicit. The page says the queue continues with Spotify's real track radio, so what plays next matches what the official web player would play. That is a strong result for a third-party client, and it is achieved by deferring the decision to Spotify rather than by recommending anything locally.
What the page does not say is where the audio bytes come from on that path. Given the credits name a YouTube streaming layer, the implication is that Spotify supplies the decision and a different service supplies the sound, which is a materially different thing from streaming from the account you pay for.
Lyrics and downloads are account features the app reads, not capabilities it provides
Two of the four bullets describe things the account determines.
The lyrics bullet promises Spotify's own synced lyrics, with a live preview on the player and a full-screen view. The word synced matters: those are line-by-line timed lyrics, and they are not available on every tier of a paid account. So the feature's availability is set upstream.
The downloads bullet lists liked songs, followed artists, listening history and downloads including lossless FLAC. Same structure. Downloads from a streaming service are a tier feature, and lossless specifically is a higher one. The application can display and manage them; whether they exist is decided by the account it signed in with.
This is not a criticism. It is the architecture stated plainly, and it is the reason the playlists bullet is worded the way it is, claiming everything is synced with your account rather than claiming the app stores anything.
The distinction worth carrying into any decision is between the interface and the catalogue. Everything this project does well is interface. What you can actually play is bounded by one subscription, and the one place the app reaches outside that subscription, audio resolution, is also the place where the credits show the work belongs to someone else.
The credits are an architecture description and they say which parts you cannot fix here
Four credits, and each one names a role rather than a link alone.
The metadata and streaming credit is given a bare repository link with no path, which is the one place the page is imprecise: it names a project for Spotify metadata and a YouTube streaming layer, and every other credit has a specific repository.
The second credit is the important one for anyone reading the tree. It names the original Compose Spotify clone that this application started from. So the project is a fork in substance as well as in lineage, and the divergence from that ancestor is the whole contribution.
The third credit covers lossless resolution, and the fourth covers the crossfade and DJ-style filtering. Both are the kind of feature that looks like part of the player and is actually a separate codebase underneath.
There is a practical consequence. If your playback has a gap, a wrong format, or an audio filter that behaves oddly, the fix is in one of those three upstream projects, and opening an issue here will not reach it. The credits are the only routing information the page gives you, which makes them more load-bearing than a conventional acknowledgements list.
The module layout puts the video streaming client in its own directory
The repository root has thirteen entries, and three of them are Gradle modules with informative names.
There is a directory named after YouTube's internal API, which is where a YouTube streaming layer would live. There is a directory named after the service itself, which is where the account and API layer would live. And there is the application directory, which is the user interface.
So the root layout states the same architecture as the credits, in directory form: interface, service client, and streaming client. The split is the right one, because it is the boundary at which this project's code stops and the other projects' begins.
Around those three are the ordinary Android build files: a Gradle wrapper for both platforms, a settings file, a root build script, a properties file, a gitignore, and an assets directory.
There is no continuous integration directory, no contributing guide, no documentation directory and no code of conduct in that listing. For an application with several hundred stars and a stated intention to be educational and open, the absence of a contributing guide is the most consequential gap, because the credits describe four upstreams and any contribution that touches a shared boundary needs someone to say where it belongs.
Eighty-seven open issues against three releases is the number that does not add up
The activity figures describe a project under real use and real strain.
Three releases are visible. They are versioned without a prefix character and without a patch component: one point five, one point four, one point three, roughly three weeks and then a month apart. The newest was published on the same day as the last push, to the minute, which is what you would expect from a tag cut from the tip of the default branch.
Against that, the repository has around six hundred stars, a few dozen forks, and eighty-seven open issues.
Eighty-seven is not a rounding error. It is a queue several times the size of the release cadence, on a project whose visible changelog is three tags. Whatever the cause, the number is the single most informative thing about the repository's state, and it is more informative than the release list.
Some of that is inherent to the project. An unofficial client for a service with no public API will accumulate issues from people whose account does not support a feature, from people whose region does not, and from people whose account has been flagged. And the credits predict it: because three of the four upstream projects are involved, there will be a steady stream of issues that are really questions for another repository.
So the count may be less alarming than it looks, and it is still the number to weigh before contributing.
The disclaimer is one line, and the licence is copyleft
The page closes with a single sentence: this project is for educational purposes only, and Spotify is a trademark of Spotify AB.
Two different things are being handled in one sentence. The trademark line is the ordinary and correct acknowledgement that the name and the interface belong to someone else. The educational-purpose line is a statement about how you may use the software.
The licence is the other half of that, and it is copyleft. The GPL-3.0 covers the code. Nothing on the page says what it means for you to ship a modified build, and the trademark sentence sits next to the code licence without connecting them.
For an application that signs into a real account, the two are genuinely separate questions. The code licence governs what you may do with the source. The service's terms govern what you may do with your account, and no open-source licence has any bearing on that. A build you modify and distribute is covered by the copyleft terms; the account you sign in with is not covered by anything in this repository.
The one-line disclaimer is honest about what it is, which is a disclaimer. What the page does not attempt is the harder question, which is what happens to an account that is used to play audio resolved through a different service.
Editorial conclusion
Use Spotui if you want a native Android player against an account you already pay for and you are comfortable with the audio arriving through a separate resolution chain rather than the service that sells it to you. Do not treat it as an independent music source, because the feature list depends on your account tier for lyrics and downloads, and the lossless path is documented as resolving rather than as streaming. Before you install, read the four credits as an architecture description rather than a formality, because the audio and FLAC layers belong to other projects and their behaviour is not this repository's to change. And if you are considering contributing, the issue count is the first thing to look at, since there are far more open issues than the release cadence suggests anyone is triaging them.
Frequently asked questions
What is the Spotui app for Android?
A Spotify client written in Kotlin with Jetpack Compose that connects to your real Spotify account and mirrors the official experience, including playlists synced with the account, Spotify's own synced lyrics, and a queue that continues with Spotify's real track radio.
Does spotui stream audio from Spotify?
The credits name a separate project providing a Spotify metadata and YouTube streaming layer, and another providing lossless FLAC track resolving. The account supplies the library, data, recommendations and lyrics while separate projects supply the audio, and the page does not describe where the audio bytes come from.
Does spotui need a paid Spotify subscription?
The page does not state a requirement. It describes synced lyrics and downloads including lossless FLAC as features, both of which depend on the tier of the account the app signs into, so availability of those two is decided upstream rather than by the app.
What open source projects does spotui build on?
Four, each credited for a specific role: a project providing Spotify metadata and a YouTube streaming layer, the original Compose Spotify clone this app started from, a project providing lossless FLAC track resolving, and a project providing crossfade and DJ-style audio filtering.
How is the spotui repository structured?
Three Gradle modules with informative names, one for the user interface, one named after the music service for the account and API layer, and one named after YouTube's internal API for the streaming layer. There is no contributing guide, documentation directory or workflow directory in the root listing.
What licence is spotui under?
The GNU General Public License version 3. The page adds a one-line disclaimer that the project is for educational purposes and that Spotify is a trademark of Spotify AB, but does not connect the code licence to the separate question of what your account's terms permit.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/spotui-spotui)