Open-source project
Maloy-Android/Muzza avatar
Maloy-Android/Muzza

Muzza is a Material 3 YouTube Music client built on the InnerTune lineage

A Material 3 YouTube Music client for Android

702 stars27 forksKotlinGPL-3.0

At a glance

What is it?
Muzza is an Android YouTube Music client written in Kotlin that adds crossfade, ListenTogether, offline caching, Spotify import, lyrics and Android Auto to the InnerTune and OuterTune code base it credits. It suits an Android listener who wants the YouTube Music catalogue with a tuned player, and it depends on services that can change without notice.
Who is it for?
Adopt Muzza if you play on Android, want the YouTube Music catalogue in a themable player with crossfade, offline caching and lyrics, and are comfortable with an app that talks to YouTube directly. Skip it if you need offline playback guaranteed by a service you control, or if you are in a region where YouTube Music is unavailable and a proxy is not an option.
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 5 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 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Muzza openly builds on four earlier open source music clients

The credit section is unusually direct for an Android app, and it is the fastest way to understand the codebase. The author gives credit to z-huang for InnerTune, to DD3Boh and mikooomich for OuterTune, to mostafaalagamy for Metrolist, and to Arturo254 for OpenTune, plus other third-party developers. Read that list as a dependency map. The innertune/ directory at the top level of the repository is the InnerTune base, and outer work appears through the simpmusic/ directory, with metroproto/ holding the protocol layer and lrclib/ for lyrics. That is not a criticism. It is the normal way a capable Android player gets built, by taking a working extractor and protocol layer rather than writing a media extraction stack from nothing, and Muzza is honest about where the pieces came from. What it adds on top is where the interesting judgement lies.

The player features are what separate it from a bare YouTube Music shell

The feature list reads like a wish list from a music listener rather than a developer roadmap, and the items that matter are the ones about sound. Crossfade is there, which is the single most requested feature in a local music player and the one most apps get wrong. Skip silence trims the dead air at the end of a track, audio normalization evens out the volume difference between an aggressively mastered track and a quiet one, and adjust tempo/pitch lets you change playback speed without the chipmunk artefact. ListenTogether is there for synchronous listening with other people. Play songs from YT/YT Music without ads is listed as a feature, and login support comes in two forms, a normal login and a login with token support. Background playback, personalized quick picks and a dynamic theme that follows the system colour scheme round out the everyday experience, and the screenshots in the repository show the layout the description promises.

Caching and download are the reason the app is more than a streaming shell

Cache and download songs for offline playback appears in the feature list, and it is the item that separates this from a thin wrapper around the YouTube Music web player. The app also reports YouTube-Music synchronization, so a change made on the service side, a new playlist, a different like, propagates back. Those two features together give you something that behaves like a real player: local files for the commute, and library state that follows you across devices because the authoritative copy stays on the server. Importing songs and playlists from Spotify is listed as well, which is a migration path for people who arrived from a different service and want their existing playlists and saved tracks in the new one rather than starting from an empty library. The distinction to hold on to is that the downloaded file is a cache of a stream from a service you do not control.

Lyrics come with translation and synchronization built in

Synchronized lyrics and a lyrics translator are separate entries in the feature list, and the repository has a dedicated lrclib/ directory, which points at the LRC lyrics library as the source of the timed text. Synchronized means the text scrolls with the track rather than sitting in a block that you follow, which is the difference between a lyric display and a karaoke view. The translator entry means the displayed text can be rendered in another language, useful when a song's words are not in a language the listener reads. Song and album search is also present, covering songs, videos, albums, artists, profiles and playlists from YouTube Music. The discovery surface is therefore broad, but it is a search over one service, and the playback source is that same service.

Android Auto needs a developer setting switched on before the app appears

Android Auto support is listed, and there is a dedicated FAQ entry explaining why it may not show up. You go to Android Auto's settings and tap multiple times on the version in the bottom to enable developer settings, then in the three dots menu at the top-right of the screen you click Developer settings, and then you enable Unknown sources. In other words, the car integration is not enabled by default on the device and requires the user to walk through a hidden developer menu. That is a reasonable answer to Google Play policy for a third-party media app, but it is also a support burden, and anyone expecting the app to appear in the car launcher by default will conclude it is broken. Discord Rich Presence support is listed too, which shows current listening state in a Discord profile, and the app has its own Telegram channel for update news, plus a separate Telegram channel for APK downloads.

Distribution runs through GitHub releases and a Telegram APK channel

There is no install command to copy here, and the project points you to a website at muzza.infinityfreeapp.com, a GitHub releases page with a latest release badge that includes prereleases, and a Telegram channel for downloads at t.me/muzzaapks, with another channel for update news at t.me/appmuzzaupdatesnews. The repository is a Gradle project with gradlew and gradlew.bat wrappers, build.gradle.kts and settings.gradle.kts, an app/ module and several library modules including innertune/, kizzy/, kugou/, lrclib/, metroproto/ and simpmusic/, plus fastlane/ for release metadata, which is where the screenshot files referenced in the README come from, and crowdin.yml, which is the translation service. Because the APK is distributed through a Telegram channel as well as GitHub releases, the two channels are worth comparing, and the fastlane metadata directory is the closest thing to a canonical asset location. The licence is GPL-3.0.

Region support and account tokens are the two real constraints

The documentation carries a warning that is worth reading before anything else. If you are in a region where YouTube Music is not supported, you won't be able to use this app unless you have a proxy or VPN to connect to a YTM supported region. That is the service's constraint, not the app's, but it decides who can use the thing at all. The second constraint follows from how the app works. It plays and caches content from YouTube, and to do that for an account it needs a session, which is why login support and login with token support are both listed. A token is a credential for your account, and handing it to a third-party app is a decision with consequences even when the app is open source. The related concern is that this whole class of client depends on unofficial endpoints, so the app can break when the service changes, and no amount of source code review on the app side prevents that.

Where Muzza is the wrong choice

Three situations argue against it. The first is a listener who needs a guaranteed offline library. A cached stream that is fetched from YouTube is not the same as a file you own, and the app's offline mode is a cache of something the service controls. The second is anyone who does not want an unofficial client on their phone, full stop. The credit list names InnerTune, OuterTune, Metrolist and OpenTune, which is a clear signal that the media extraction approach is the shared weakness of this family of apps, and a user whose threat model includes a compromised device should read the extraction code before logging in. The third is a non-Android user, since this is an Android app and there is no desktop or web build. There is also a maintenance question specific to this project. The repository is not archived and the last push was on 2026-10-18, with releases 0.7.7 on 2026-08-11, 0.7.6 on 2026-06-20 and 0.7.5 on 2026-05-10, so work is current, but the version numbering is still in the 0.7 range and the project has no stated policy for what happens when the upstream service changes.

Editorial conclusion

Adopt Muzza if you play on Android, want the YouTube Music catalogue in a themable player with crossfade, offline caching and lyrics, and are comfortable with an app that talks to YouTube directly. Skip it if you need offline playback guaranteed by a service you control, or if you are in a region where YouTube Music is unavailable and a proxy is not an option. Verify first which release you install, because the project distributes APKs through a Telegram channel as well as GitHub releases, and check the app's source for how it obtains media URLs before you trust it with a session token.

Frequently asked questions

What is Muzza?

Muzza is a Material 3 YouTube Music client for Android, written in Kotlin. It adds crossfade, ListenTogether, cache and download for offline playback, Spotify import, synchronized and translated lyrics, Android Auto support and Discord Rich Presence.

Where can I download the Muzza APK?

The project links its GitHub releases page, with a latest release badge that includes prereleases, a Telegram APK channel at t.me/muzzaapks, a Telegram update news channel at t.me/appmuzzaupdatesnews, and a website at muzza.infinityfreeapp.com.

Why does Muzza not show up in Android Auto?

You have to enable it manually. Go to Android Auto's settings and tap multiple times on the version at the bottom to enable developer settings, then open Developer settings in the three dots menu at the top-right and enable Unknown sources.

Can I use Muzza in a region where YouTube Music is not supported?

The documentation warns that you will not be able to use the app in such a region unless you have a proxy or VPN to connect to a YouTube Music supported region.

Which open source projects is Muzza based on?

The credit section names z-huang for InnerTune, DD3Boh and mikooomich for OuterTune, mostafaalagamy for Metrolist and Arturo254 for OpenTune. The repository has matching directories including innertune/, simpmusic/, metroproto/ and lrclib/.

Official sources

  1. License: GPL-3.0
  2. Maloy-Android/Muzza on GitHub
  3. Project website
  4. README
  5. Releases
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/maloy-android-muzza.svg)](https://hysenlabs.com/projects/maloy-android-muzza)

Was this useful?