Finamp: a Spotify-shaped player for the music sitting on your own Jellyfin
An open source Jellyfin music player
At a glance
- What is it?
- Finamp is a free, open source, MPL-2.0 music player for Android and iOS built in Flutter, designed to give a streaming service listening experience for music you already own, served from your own Jellyfin server. It offers offline and transcoded downloads, ReplayGain normalization, lyrics, gapless playback and a beta redesign available through every store channel.
- Who is it for?
- Use Finamp if you run a Jellyfin server and want a phone player that behaves like the mainstream streaming apps, polished interface, offline downloads, gapless playback, lyrics, rather than a raw web client. It is pointless without a server, the README says so in bold, so set up Jellyfin first.
- Can I use it commercially?
- Yes, with conditions. MPL-2.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Dart, 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
A streaming app's feel, pointed at your own library
Finamp is a Jellyfin music player for Android and iOS, written in Dart on Flutter, and its mission statement is a comparison done carefully, it is meant to give you a similar listening experience as traditional streaming services such as Spotify and Apple Music, but for the music that you already own. The requirement is stated with matching clarity, you need your own Jellyfin server to use Finamp, with a pointer to Jellyfin's website for setup. It is free, open-source software under MPL-2.0, just like Jellyfin itself, positioning the app as the client half of a self-hosted stack rather than a standalone product. The interface goal follows the mission, a welcoming UI that looks modern and unique but still familiar, with dynamic colors that adapt to the media being played, so album art reshapes the app around itself.
Downloads, transcodes and ReplayGain
The feature list concentrates on the gap between self-hosted files and a streaming-grade experience. Downloading files supports offline listening and saves mobile data, with transcoded downloads available to save even more space. Transcoded streaming attacks the same cost from the network side. Audio volume normalization arrives as ReplayGain on Jellyfin 10.9 or newer, and lyrics carry the same server version requirement. Gapless playback handles live albums correctly. Full support for Jellyfin's Playback Reporting feature and plugin keeps listening history intact on the server side, and an integration with AudioMuse adds sonic analysis and improved mixes. Android Auto support is listed with the project's own coming soon trademark, honest about the one gap that remains.
A redesign happening in public, on the redesign branch
The repository's default branch is named redesign, and the warning to contributors is explicit, check out the redesign branch because this is where all development happens at the moment. The redesign's stated goal is transforming Finamp into a modern, beautiful, and feature-rich music player made specifically for Jellyfin, and the beta is open through Google Play, Apple TestFlight and direct APKs from the releases page. The honesty about its state is refreshing, the UI and functionality might be inconsistent or incomplete and is not final, however the beta is fully functional and should be stable enough for daily use. Release naming tracks the line, 0.9.25-beta in August 2026, a retagged 1.0.0-beta, and 1.0.1-beta on 2026-09-02, with the repository pushed as recently as 2026-09-29.
Three stores and an APK, with F-Droid a day behind
Getting Finamp covers the full channel spread, F-Droid at com.unicornsonlsd.finamp, Google Play, and the Apple App Store at id1574922594, plus direct APK downloads from the GitHub releases page. The one operational caveat is documented rather than discovered, the F-Droid release may take a day or two to get updates because F-Droid only builds once a day, a limitation of the store's pipeline rather than the project's. For the redesign beta specifically, the same three surfaces apply, the Play Store beta track, the TestFlight link and the beta APKs, so a user can follow the newest build through the store they already trust instead of side-loading. The fastlane directory in the repository is the machinery automating those store submissions.
Weblate, mockups and the Finamplify board
The contribution guide is unusually structured around what a non-programmer can do. Design help means redesigning missing screens from existing mockups, obtained by asking on GitHub or Discord. Bug hunting spans fixing labeled bugs, adding reproduction steps, and finding new ones. Translations run through a hosted Weblate project, with a second task of adding descriptions to older strings in app_en.arb explaining where each string appears in the app. Documentation contributions include user docs written from initial struggles and developer solutions folded into CONTRIBUTING.md. Codebase work names optimizations, documentation and cleanup, and the support category asks people to help others on Discord and review pull requests. There is also redirection, contributors who cannot help Finamp directly are pointed at Jellyfin itself and at upstream libraries like just_audio and background_downloader, with the note that Finamp cannot exist without maintained and stable libraries.
The README admits the battery problem
Under improving the codebase, the guide states plainly that Finamp currently consumes a lot of battery, an admission rarely seen in project documentation and genuinely useful for anyone choosing a daily player. The long awaited features list continues the candor, Car Play, metadata editing, multi user and multi server support, various improvements for Finamp Desktop including fixing shuffle, improved UI and better system integration, and automatic widget tests. Entry points are sorted by difficulty, a Finamplify Hackathon project board holds leftover tasks, a broader Redesign Project Board exists but is admitted to be slightly outdated, and an easy fix issue filter with no assignee collects the beginner tasks. The Hacktoberfest framing around all of it is an invitation timed to the season rather than a permanent gate.
Six platforms in one Flutter tree
The repository layout shows the Flutter multi-platform ambition directly, android, ios, linux, macos and windows directories all present, with integration tests, l10n.yaml for the localization pipeline and a flake.nix declaring the Nix development environment. Development setup is documented as reading the Setting up a Development Environment section of CONTRIBUTING.md, after which flutter run starts the app and pressing r in the terminal hot-reloads changes, with first-party Flutter integrations available for many editors and IDEs. A PRIVACY.md states the data handling, DOWNLOADS_PLAN.md and beta-release.md document internal plans, and the pubspec files pin the dependency set. The FAQ answers the first question everyone asks with one word, absolutely, Finamp costs nothing to use, with voluntary contributions and donations appreciated instead.
Editorial conclusion
Use Finamp if you run a Jellyfin server and want a phone player that behaves like the mainstream streaming apps, polished interface, offline downloads, gapless playback, lyrics, rather than a raw web client. It is pointless without a server, the README says so in bold, so set up Jellyfin first. Before settling on it, join the redesign beta through Google Play or TestFlight rather than judging the old stable, expect the beta UI to be inconsistent in places while remaining functional, and if battery drain matters to you, know that the project lists its own battery consumption as an open optimization problem rather than a solved one.
Frequently asked questions
What is Finamp?
Finamp is a free, open source music player for Android and iOS, written in Flutter under MPL-2.0, built to give a streaming service style listening experience for music you already own on your own Jellyfin server. Features include offline and transcoded downloads, ReplayGain normalization, lyrics and gapless playback.
How is Finamp different from Spotify?
Spotify streams from Spotify's catalog by subscription, while Finamp plays the music you already own from your own Jellyfin server, aiming for a similar listening experience. It is free and open source, and it cannot be used without your own Jellyfin server.
Is Finamp free?
Absolutely, in the project's own FAQ wording, it costs nothing to use. Voluntary contributions of bug reports, code, designs and ideas are appreciated, and some developers accept donations, but there is no price anywhere.
How do I set up Finamp?
First set up a Jellyfin server, which Finamp requires, following the guides on jellyfin.org. Then install Finamp from Google Play, the Apple App Store, F-Droid or the APK on the releases page, and connect it to your server. The redesign beta is joinable through Google Play and Apple TestFlight.
What is the difference between Jellyfin and Finamp?
Jellyfin is the media server that stores and serves your library, while Finamp is a client, a music player for Android and iOS built specifically to consume a Jellyfin server. Finamp supports Jellyfin features like Playback Reporting and requires Jellyfin 10.9 or newer for ReplayGain and lyrics.
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/finamp-app-finamp)