Echo Music: a GPL-3.0 Android client that streams YouTube Music without ads
Project brief: A modern Android music app with ad-free streaming, synced lyrics, offline playback, and an intuitive user experience.
At a glance
- What is it?
- Echo Music is a Kotlin Android app that plays YouTube Music's catalogue ad-free, with synced lyrics and offline downloads. Here is how it installs, what it does not do, and who should skip it.
- Who is it for?
- Adopt Echo Music if you want YouTube Music playback without ads on Android and you are willing to install an APK from the Releases page rather than an app store. Do not adopt it if you need an iOS client, a desktop player or a licensed catalogue that will not break when YouTube changes its endpoints; the README documents Android only, and every module in the repository talks to a third-party service.
- 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 1 day 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 September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Echo Music solves, and who it is aimed at
YouTube Music carries a large catalogue, and its free tier interrupts playback with ads. Echo Music is an Android client that plays that catalogue without them. The README describes the app as delivering a listening experience "by leveraging YouTube Music's vast library, without the ads", and adds offline downloads, real-time synchronized lyrics and environment-aware music recognition on top.
The audience is narrower than the feature list suggests. This is an Android-only project: the installation section covers downloading a pre-compiled APK and building from source with Gradle. There is no iOS target and no desktop build in the repository. The language is Kotlin, the licence is GPL-3.0, and the top-level layout is a multi-module Gradle project (app/, core/, innertube/, lyrics/, playback/, and a set of provider modules such as lrclib/, kugou/, betterlyrics/ and paxsenixlyrics/). Anyone who wants a music player they can read, fork and rebuild is the intended user. Anyone who wants a store-installed app with a support contract is not.
How the innertube module sits between the app and YouTube Music
The repository layout answers most of the architecture question without opening a file. A module named innertube/ sits at the top level next to app/. Innertube is the internal name for the API surface YouTube clients use, so the module is the layer that talks to the streaming service. The player UI in app/ does not speak to YouTube directly; it goes through that module.
Lyrics are split the same way. Separate top-level modules for lrclib/, kugou/, betterlyrics/, paxsenixlyrics/, lyrics/ and simpmusic/ indicate that lyric lookup is not one code path but several providers behind a common interface. The README names one of them: "Lyrics+, new lyrics provider for improved accuracy and coverage". Translation is handled by what the README calls "Built-in Google Translate integration".
Two other modules are worth noting for what they imply about coupling. shazamkit/ and unison/ sit alongside canvas/ and artistvideo/, which suggests audio recognition and real-time listening sessions are separate concerns rather than features bolted into the player activity. The cost of this design is the usual one: every provider module is a dependency on someone else's endpoint. When a provider changes its response format, that module breaks, and the app has to ship a release.
Installing Echo Music from the APK or building it yourself
The README gives two routes. The short one is the Releases page: download the latest pre-compiled APK and install it. The long one is a Gradle build, and it is documented step by step.
Clone the repository and change into it:
git clone https://github.com/iad1tya/Echo-Music.git
cd Echo-MusicThen point Gradle at your Android SDK by creating local.properties. The README gives this exact command, and notes that SETUP.md covers the platform-specific paths:
echo "sdk.dir=/path/to/your/android/sdk" > local.propertiesFirebase is optional and used for analytics and crash reporting. If you want it, the README defers to SETUP.md for adding google-services.json.
The part that matters most is the build variant. Echo Music ships two: FOSS, without Google Play Services or Cast, and GMS, with Cast support. The README's debug commands are:
./gradlew assembleUniversalFossDebug
./gradlew assembleUniversalGmsDebugA successful run leaves an APK under the app module's build output. The README points at SETUP.md for optimized ARM64 builds and release builds, which is where you should look if the debug output is larger than you want on a phone.
Where Echo Music breaks, and when it is the wrong tool
The dependency on YouTube Music is the structural limitation, and the README does not pretend otherwise. Playback works by talking to a service the project does not control. If that service changes how it authenticates or serves streams, the innertube module stops working and no amount of local configuration fixes it. The same applies to each lyric provider module: lrclib, kugou, paxsenixlyrics and the rest are external endpoints with their own uptime.
Distribution is the second constraint. The README's install path is a direct APK download from the Releases page, not an app store. That means no store-mediated update channel and no store review. You are trusting the release artefact.
The third is platform. There is no iOS or desktop code in the repository. If you need the same library on a laptop or an iPhone, Echo Music is not the tool, and no configuration will make it one. Data Saver Mode is also labelled Beta in the README's What's New list, so treat its data-reduction behaviour as unfinished rather than a guarantee.
How Echo Music differs from NewPipe and ViMusic
The closest alternatives are other open source Android clients that front the same catalogue: NewPipe and ViMusic. The difference is scope rather than mechanism. NewPipe is a general YouTube front end: it handles video, subscriptions, channels and downloads, and music is one use among several. Echo Music is built as a music player first, and the repository reflects that with dedicated lyrics/, playback/ and provider modules that a general video client has no reason to carry.
Against ViMusic, the split is feature depth versus surface area. Echo Music's README lists word-by-word lyric synchronisation, a lyrics translation integration, offline downloads via a dedicated download manager, crossfade, Canvas animations, and podcast and local media support. A leaner client will start faster and have fewer moving parts; Echo Music trades that for more features and more provider modules that can individually fail. Neither approach is wrong. Pick based on whether you want a music app or a YouTube app that also plays music.
Maintenance, build cost and what GPL-3.0 means here
The repository is not archived, and the last push was on 2026-08-28, the same day as the v1.2.2 release; v1.2.1 landed earlier that day. Renovate is configured (renovate.json is a top-level entry), which means dependency updates are automated rather than manual. That is a real signal about upkeep, but it is not a support commitment.
Upgrade cost for a user is low: install the new APK. Upgrade cost for a builder is the Gradle toolchain, the Android SDK and, if you enable it, a Firebase project with google-services.json. The build variant choice is the one decision you cannot defer, because FOSS and GMS produce different artefacts and only the GMS variant carries Cast support.
The licence is GPL-3.0. If you fork Echo Music and distribute the result, the GPL's source-availability terms apply to your version. Running it on your own phone is not distribution. This is a description of the licence file in the repository, not legal advice; read LICENSE and, if you plan to ship a fork, talk to someone qualified.
Editorial conclusion
Adopt Echo Music if you want YouTube Music playback without ads on Android and you are willing to install an APK from the Releases page rather than an app store. Do not adopt it if you need an iOS client, a desktop player or a licensed catalogue that will not break when YouTube changes its endpoints; the README documents Android only, and every module in the repository talks to a third-party service. Before installing, check the latest release tag, read PRIVACY_POLICY.md and SETUP.md, and confirm that the GMS or FOSS variant matches whether you want Cast support.
Frequently asked questions
How does Echo Music work?
It is an Android client that plays YouTube Music's library without ads, with the repository's innertube module handling the service connection and separate modules for lyrics providers. Offline downloads, synced lyrics and audio recognition sit on top of that playback layer.
Is Echo Music a good music app?
The README documents ad-free streaming, offline downloads, word-by-word lyrics, podcast and local media support, and two build variants. Whether that suits you depends on your tolerance for installing an APK directly rather than through an app store, and on Android being your platform.
Is the Echo Music app free?
The project is licensed GPL-3.0 and the APK is distributed from the Releases page, so there is no purchase step described in the README. The README does include a Support the Project section with optional donation links.
How do I install Echo Music on Android?
Download the latest pre-compiled APK from the Releases page, or build it yourself with ./gradlew assembleUniversalFossDebug or ./gradlew assembleUniversalGmsDebug after creating local.properties with your SDK path.
How do I add Spotify playlists to Echo Music?
The README's What's New list includes an Import from Spotify feature for bringing playlists and tracks over. The README does not document the import steps themselves.
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/echomusicapp-echo-music)