Lelonio/Square
Unofficial YouTube Music / Spotify Premium client for Android, built in Liquid Glass. Audio effects, Spotify Connect, listening history, 8 languages. Rust core on librespot.
About Lelonio/Square
Lelonio/Square is an open-source project on GitHub, mainly written in Kotlin. Unofficial YouTube Music / Spotify Premium client for Android, built in Liquid Glass. Audio effects, Spotify Connect, listening history, 8 languages. It currently holds 119 stars and 10 forks with 7 open issues, and was last pushed on 2026-10-10 (repository created 2026-08-06).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #75 with 8 new stars today.
GitHub Repository Details
README
Square
An unofficial Android music client for Spotify Premium and YouTube Music, built in Liquid Glass.Download · Features · First launch · FAQ · Telegram community · Building
| Player | Lyrics | Effects |
| :---: | :---: | :---: |
|
|
|
|
| Artist | Album | Glass settings |
|
|
|
|
Features
Two sources, one app
- Spotify or YouTube Music, chosen at first launch and switchable in the
- Spotify: your own account, with its playlists, library and Connect
- YouTube Music: the whole catalogue and the music videos, with no account
Player
- The cover or the song's looping canvas video behind the controls.
- Music videos: switch from the song to its video in place, without losing the
- Radio from any song, and autoplay of similar songs when the queue ends.
- Crossfade between songs, with an option to skip trailing silence.
- Sleep timer: after 5 to 60 minutes or at the end of the song, fading out
Audio effects
- Speed and pitch, each on its own, plus reverb.
- Presets, so "slowed + reverb" is one tap on any song.
- Karaoke: turn the voice down.
- Streaming quality that follows the connection, or a fixed one.
Lyrics
- Synced lyrics, word by word where they exist and line by line otherwise.
- Translation into your language, under the original lines.
Library and discovery
- Playlists, albums, artists and liked songs. Create, rename and delete
- A home page of shelves made for you, a New tab with releases and charts,
- Search, with your recent searches kept (swipe one away to remove it).
- The music already on your phone, in a Local files shelf.
Offline
- Download playlists, albums and songs, from either source. A song kept by two
- Downloads over Wi-Fi only, and automatic downloads of your liked songs.
- Offline mode: play only what is on the phone.
Spotify extras
- A Connect device: send playback to Square from any other device, and
- What your friends are listening to.
- Similar playlists at the end of each playlist.
- Song credits: performers, writers and producers.
- What you play is saved to your listening history, as it would be anywhere
- Spotify links can open straight in Square.
Android Auto
- Browse playlists and recently played, search by voice, like a song or start a
Look and language
- Every control, the tab bar, the player, the sheets and the menus are made of
- Eight languages: English, Italian, Spanish, French, German, Portuguese, Hindi
Download
Or
Download the APK from the latest release and install it. Square needs Android 8.0 or later.
Square updates itself: it checks for new releases and installs them from the settings. It is not on the Play Store and cannot be; see the disclaimer.
The first minutes after installing are slower
Android takes a while to optimise a freshly installed app, and until it does the interface is noticeably slower. To do it straight away, open the app once and give it a few seconds, then run this with the phone connected:
adb shell cmd package compile -m speed-profile -f dev.lelonio.square
Run before the app has been opened, the command finds nothing to compile.
First launch
Square first asks where the music should come from. You can change it later in the settings.
- YouTube Music plays straight away. Signing in with Google, from the
- Spotify needs a Premium account and a few minutes of guided setup: you
FAQ
Square does not appear in Android Auto. Android Auto only lists apps installed from the Play Store. Turn on "Unknown sources" in Android Auto's developer settings and Square shows up.
Can I use a free Spotify account? No. A free account can sign in, but Spotify only streams to a client like this one with Premium. YouTube Music works with no account at all.
YouTube Music search works, but songs do not play. YouTube changes how its streams are served every so often. Update to the latest release, which is usually where the fix is.
Disclaimer
Square is not affiliated with, endorsed by or connected to Spotify or Google. Both sources are used on terms they do not offer: Square re-implements Spotify's protocol, which Spotify's Terms of Service forbid, and reads YouTube Music through the private endpoints its own web client uses. It cannot be published on the Play Store, and you use it at your own risk. There is no warranty of any kind; see the licence.
Help and feedback
- Telegram community: join Square | Community for questions, feedback, bug reports and feature requests.
- Release announcements: Square | Official automatically shares new APKs and release notes from GitHub.
- Questions (how something works, how to set it up): Discussions, Q&A
- Ideas and requests: Discussions, Ideas
- Something broken: open an issue. If the app closed or froze, attach a report from Settings → About → Save a report.
Support
Square is free and has no ads. If it is useful to you, you can support its development on Ko-fi.
Credits
| Project | Licence | How it is used |
| --- | --- | --- |
| librespot | MIT | The Spotify engine. librespot-core, librespot-playback and librespot-connect are vendored with local patches. |
| Spotify Web Playback SDK | Spotify Developer Terms | Playback for accounts Spotify refuses audio keys, through the listener's own developer app. |
| Metrolist | GPL-3.0 | Its InnerTube client, vendored as innertube/, because it is published nowhere else. Powers the signed-in YouTube Music library. |
| NewPipeExtractor | GPL-3.0 | Anonymous YouTube Music search and stream URLs. |
| lossless.wtf | n/a | Synced lyrics timed to the word, asked first on both sources. |
| LrcLib | n/a | Synced lyrics for the YouTube Music source, over its open API. |
| Spicy Lyrics | AGPL-3.0 | The lyrics animation, ported to Compose by @donutnotnut in #50. |
| Bungee | MPL-2.0 | Time stretching, fetched at build time. |
| AndroidLiquidGlass | Apache-2.0 | The glass material; the catalog components are copied with their notice. |
| Phosphor Icons | MIT | Every icon in the app. |
| ebur128 | MIT | Loudness of local files, so they play at the level of the streamed tracks. |
| librespot-java | Apache-2.0 | The listening-event format, re-implemented from its EventService rather than copied. |
| go-librespot and go-librespot-termux | GPL-3.0 | The remote sleep timer's command and state fields, and the check on truncated audio keys, re-implemented from their findings rather than copied. |
Building from source
Requirements, build steps, signing, the architecture and notes on the code are in docs/DEVELOPMENT.md.
Licence
GPL-3.0-or-later. See LICENSE.
The lyrics view,
LyricsView.kt,
is ported from Spicy Lyrics and stays under AGPL-3.0, combined with the rest as
section 13 of both licences allows.
