Streamyfin

Free and open-source Jellyfin client for mobile devices

Media Servers ★ 5.2k stars Easy setup MPL-2.0

Streamyfin is a free and open-source mobile client for Jellyfin servers built with React Native and Expo. It offers native playback, downloads for offline viewing, and Chromecast support as an alternative to the official Jellyfin apps.

Key features

  • Native Jellyfin playback
  • Offline downloads
  • Chromecast support
  • Trickplay scrubbing

Pros & cons

Strengths

  • Modern mobile UI
  • Active development

Trade-offs

  • Requires existing Jellyfin server
  • Mobile only

Streamyfin replaces

Last reviewed Sep 13, 2026 · 899 words

Streamyfin is the app I hand people instead of the official Jellyfin mobile client, and the difference is felt in the first 30 seconds: downloads for the plane, trickplay thumbnails when you scrub, Chromecast that works, and a layout that looks like it was designed this decade. It costs nothing, it is MPL-2.0 licensed, and it has pulled 5,163 stars since its first release in 2024. There is nothing to self-host here. It is a client for a Jellyfin server you already run, and if you do not run one yet, start with the complete Jellyfin setup and come back.

What it does that the official app does not

The official Jellyfin mobile app is a thin shell around the server's web UI, which is why it feels like a website with a worse back button. Streamyfin is a native React Native app that talks to the Jellyfin API directly, so navigation is instant and the interface is its own. The features that matter in practice:

Offline downloads. Pick an episode or a film, choose a quality, and the app pulls a copy into its own storage. Downloads can be direct copies of the file or transcoded by the server to a smaller size, and they play back with no connection. This is the single feature Infuse and Plex users cite as the reason they will not move to Jellyfin, and it is solved.

Chromecast. Cast to a Google TV or a Nest Hub from the app, with the server doing any transcoding the target needs.

Trickplay scrubbing. If your server has generated trickplay images (a server-side option in recent Jellyfin releases), you get thumbnail previews when you drag the seek bar, the way Netflix does it.

Jellyseerr requests. Point it at a Jellyseerr instance and users can search for a film that is not in the library and request it without leaving the app. For a household where you run the server and others just watch, this closes the "can you add..." loop.

Where it sits among the Jellyfin clients

Jellyfin's client story is fragmented, and picking one per device is part of running the server. Streamyfin covers iOS and Android phones and tablets only; the catalogue's "mobile only" note is accurate and the project does not pretend otherwise. Swiftfin is the native Swift app for iPhone, iPad, and Apple TV, and it is the better choice on tvOS because Streamyfin does not exist there. Findroid is the native Android alternative with a strong player but a smaller feature set. Infuse on Apple platforms remains the most polished player money can buy, at a subscription price; Streamyfin gets within reach for free.

My working split: Streamyfin on phones and Android tablets, Swiftfin on Apple TV, the Jellyfin app on an Android TV box or Fire Stick, and a browser on laptops.

Installing it and the two things that trip people

Streamyfin is on the App Store and Google Play, with APK releases on GitHub for anyone who prefers to sideload. On first launch you type your server URL. Two things go wrong at that step.

First, the URL must be reachable from the phone's network. If your server is only on the LAN, the app works at home and fails on cellular; the fix is a VPN like Tailscale on the phone or a reverse proxy with TLS in front of Jellyfin. Do not expose port 8096 raw to the internet.

Second, downloads and casting behave differently depending on whether the server can direct-play the file. A 4K HEVC file the phone cannot decode will be transcoded by the server on the fly, and if your server has no hardware acceleration you will see it stall. Enabling Quick Sync or NVENC on the server side fixes more Streamyfin complaints than anything in the app.

There is also an optional Streamyfin server plugin for Jellyfin that lets you push client settings (default quality, download rules, the Jellyseerr URL) from the server so every household member's app is configured the same. It is worth installing if more than 2 people use the server.

How mature is it really

Active development is the honest description, with the good and bad that implies: releases arrive often, features land quickly, and occasionally an update introduces a playback regression on a specific device that gets fixed in the next release. The project is 2 years old. It is not the official app and the Jellyfin team does not support it; issues go to the Streamyfin repo. For a family server that is fine. If you are the kind of operator who wants a client that changes once a year, the official app is boring in the way you want.

What I'd do

Install Streamyfin on every phone and tablet in the house, install the server plugin so the settings are consistent, enable trickplay generation on the server, and make sure hardware transcoding is on. Keep the official Jellyfin app installed as a fallback for the week a bad release lands. Do not pay for Infuse unless you are on Apple TV, and even then try Swiftfin first. For the media server category as a whole this is the missing piece that makes Jellyfin feel like a finished product on a phone.

Compare Streamyfin

1 head-to-head comparisons.

Similar media servers apps