FI

Findroid

Third-party Android client for Jellyfin with offline playback

Media Servers ★ 4.3k stars Easy setup MIT

Findroid is a modern third-party Android client for Jellyfin built natively with Kotlin and Jetpack Compose. It supports offline downloads, multiple servers, and ExoPlayer-based playback for self-hosted media libraries.

Key features

  • Native Android UI
  • Offline downloads
  • Multi-server support
  • ExoPlayer playback

Pros & cons

Strengths

  • Polished Material design
  • Active maintenance

Trade-offs

  • Android only
  • Needs Jellyfin server

Findroid replaces

Last reviewed Sep 13, 2026 · 807 words

Install Findroid on your phone before your next flight. It is the Jellyfin Android client that treats downloads as a first-class feature rather than an afterthought, and it does so in a native Kotlin and Jetpack Compose interface that feels like a modern Android app instead of a web view wrapped in a shell. It is MIT licensed, has 4,232 stars, and has been in active development since 2022. It also needs a Jellyfin server on the other end; there is nothing to self-host here beyond the server you already run.

What you get that the official app does not

The official Jellyfin Android app is a web view around the server's own interface, which is why it looks identical on every platform and why it occasionally behaves like a website. Findroid is written against the Jellyfin API directly. Navigation is Material 3, the library grid scrolls at a proper 60 fps or better, and the player uses ExoPlayer (Media3), Android's standard media framework, with an optional mpv backend for stubborn files.

Two features do the heavy lifting. Offline downloads let you pick an episode, a season or a film and store it on the device for playback with no server connection at all, with playback position synced back when you reconnect. Multi-server support lets you keep a home server and a friend's server in one app and switch between them without logging out. The official app has gained downloads slowly and awkwardly; Findroid had them from the start.

Downloads work best when your server does the transcoding once

The trap: Findroid is built around direct play. If your library is 40 GB 4K HEVC remuxes, a download is 40 GB on your phone and playback is whatever your phone's decoder can manage. For a travel library, keep or create a smaller copy. The simplest pattern is to let Sonarr and Radarr fetch 1080p or 720p versions for the shows you actually watch on the move, and reserve the big remuxes for the TV.

Findroid's transcoded playback support arrived later than its direct-play support and is thinner than what the web client offers. In practice that means: on a good home network, everything plays; on a weak mobile link with a heavy file, you may see buffering where the official app would have quietly asked the server for a lower bitrate. Test it before you rely on it in a hotel.

Setup takes two minutes and one URL

Grab the app from Google Play, the IzzyOnDroid F-Droid repository, or the GitHub releases page. Log in with the same URL you use in a browser:

https://jellyfin.example.com

If you only expose Jellyfin over Tailscale, install Tailscale on the phone and use the tailnet address or MagicDNS name. Findroid honours the server's Quick Connect flow, so you can approve the login from the Jellyfin dashboard instead of typing a password on a phone keyboard. For the full server side, including hardware transcoding and reverse proxy details, follow the Jellyfin complete setup.

Two settings to visit on day one. In the player section, choose whether downloads go to internal storage or an SD card; the default is internal, and a season of 1080p television will fill 8 to 15 GB. In the same section, enable the mpv player only if ExoPlayer stumbles on a specific file, since ExoPlayer is the better-integrated default for hardware decoding.

Where it falls short

Findroid is video-only in spirit. Music libraries show up but the experience is basic; use Finamp for music. Live TV and DVR are not covered. Android TV is a separate, less complete story: Findroid runs on a TV box, but its interface is phone-first and the D-pad experience lags behind the official Android TV app. There is no Chromecast support of note, so casting from Findroid to a TV is not a workflow to plan around.

The project is a one-person effort with contributors, which is common in this star band and worth stating plainly. Development has stayed steady for four years and releases follow Jellyfin server changes without long gaps, but if the maintainer stepped away, the official app would remain the safer long-term client.

What I'd do

Keep both. Use Findroid as the daily phone client for browsing, watching at home and downloading before travel; keep the official Jellyfin app installed as the fallback for anything Findroid cannot play or cast. Keep a 1080p copy of travel content so downloads stay under 2 GB an episode. On the Apple side, the equivalent pairing is Swiftfin, and on a TV box, use the official Android TV app rather than forcing Findroid onto a remote it was not designed for.

Similar media servers apps