Unofficial YouTube Music / Spotify Premium client for Android, built in Liquid Glass. Audio effects, Spotify Connect, listening history, 8 languages. Rust core on librespot.
See the code
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 |
![]() | ![]() | ![]() |
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.
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.
Square first asks where the music should come from. You can change it later in the settings.
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.
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.
The same two links are in the app, under Settings → About.
Square is free and has no ads. If it is useful to you, you can support its development on Ko-fi.
| 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. |
Requirements, build steps, signing, the architecture and notes on the code are in docs/DEVELOPMENT.md.
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.
Unofficial YouTube Music / Spotify Premium client for Android, built in Liquid Glass. Audio effects, Spotify Connect, listening history, 8 languages. Rust core on librespot.
See the code
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 |
![]() | ![]() | ![]() |
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.
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.
Square first asks where the music should come from. You can change it later in the settings.
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.
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.
The same two links are in the app, under Settings → About.
Square is free and has no ads. If it is useful to you, you can support its development on Ko-fi.
| 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. |
Requirements, build steps, signing, the architecture and notes on the code are in docs/DEVELOPMENT.md.
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.