Skip to content
Swiftly Music Blog Discord GitHub
  1. Swiftly Player
  2. Blog

Jellyfin on iPhone: 9 apps compared for downloads and PiP

The official Jellyfin app, Swiftfin, Infuse, Streamyfin, Swiftly Player and more, compared for downloads, Picture in Picture, CarPlay and Skip Intro.

By Swiftly Player13 min read

Disclosure: we build Swiftly Player, one of the clients in this article. We point out where other apps do better.

Version numbers, prices and features come from each project's GitHub repository, App Store listing or official site, checked in September 2026. These apps change often, so open the linked source before you rely on a detail. Where a claim could not be confirmed from a primary source, it says so instead of guessing.

TL;DR

Jellyfin does have an official iOS app again, Jellyfin Mobile — it went almost three years without an update, came back in February 2025, and is a web wrapper rather than a native app, largely maintained by one person. If you want a free, native, open-source app instead, Swiftfin or Streamyfin are the two to look at, though Swiftfin still has no downloads and its Picture in Picture only works if you give up VLC. Swiftly Player is free, plays through VLC, keeps Picture in Picture and downloads on the same player, and reads Skip Intro from your own server's Media Segments. Infuse has the widest file support and connects to Jellyfin, Plex and Emby at once, for a subscription. None of the apps checked here support CarPlay for video playback — that is an Apple platform restriction, not something any one app is missing.

Comparison table

AppPricePlayback engineDownloadsPicture in PictureSkip IntroSeerr
Jellyfin MobileFree, open sourceWeb view (Expo/React Native)Yes, original files; transcoded downloads still alphaNot documentedNot documentedNot documented
SwiftfinFree, open sourceVLC or Native (AVPlayer), your choiceNot yetNative player onlyNot yet, in progressNot documented
InfuseFree, Pro from $1.99/month, $99.99 lifetimeOwn engineYes (iOS, Mac)YesYes, via TheIntroDB.orgNot verified
StreamyfinFree, open sourceMPVYes, experimental (server-side FFmpeg conversion)YesYesYes
Swiftly PlayerFree, open sourceVLCYesYes, same VLC playerYes, from Jellyfin's own Media SegmentsYes
VidHubFree, VIP from $1.49/monthOwn engineYes, cloud/NAS sources; not confirmed for Jellyfin specificallyReported unreliableNot documentedNot documented
SenPlayerFree, Lifetime Pro from $9.99Own engineYesYesNot verifiedNot documented
JellyTVFree, JellyTV+ from about $2.49/monthNative, optional "JellyTV Engine"YesYesListed on jellytv.appYes, in JellyTV+
MoonfinFree, open coreFlutter / native videoYesNot verifiedNot verifiedYes

What these comparison columns actually mean

Direct Play is what you want: the file plays exactly as stored on your server, nothing converted, which keeps quality intact and your server's CPU idle. The app tells the server which containers, codecs and subtitle formats it can handle; the wider that list, the more often you get Direct Play instead of a transcode. VLC-based and MPV-based apps generally declare more formats — MKV, HEVC, AV1, DTS, TrueHD — than apps relying only on Apple's built-in AVPlayer.

Picture in Picture lets a video keep playing in a small floating window while you use another app. Not every player supports it with every format: Swiftfin's own player documentation states plainly that Picture in Picture only works with its Native (AVPlayer) player, not VLC, and Native drops MKV and most subtitle formats in exchange.

CarPlay deserves a direct answer rather than a table cell: no app checked here supports it for video, and that is consistent across Swiftfin, Infuse, Streamyfin, Swiftly Player, VidHub, SenPlayer and JellyTV. Apple's own CarPlay guidelines are built around audio, navigation and messaging apps, not video playback while driving; the closest thing anyone has is a feature request in Infuse's community forum, and a separate discussion clarifies that any future ability to watch video through a car's own screen while parked would come from car manufacturers adding AirPlay 2 support in the vehicle, not from a CarPlay video extension. If you see "CarPlay" mentioned for one of these apps elsewhere, it likely means audio-only support in a different app category, not this one.

Seerr means Jellyseerr or Overseerr integration — requesting a movie or show that is missing from your library, without leaving the app.

Jellyfin Mobile (the official app)

Jellyfin Mobile is the project's own app, free and open source, and — this surprises people who searched for "jellyfin ios app" a year or two ago and found nothing recent — it is actively maintained again. Per the repo's own README, it is a web wrapper built on Expo (React Native) with native enhancements, not a fully native Swift app like Swiftfin. It went without a real update for almost three years before v1.6.0 shipped in February 2025, and the project's own posts describe it as largely worked on by one contributor.

Version 1.7.0, from September 2025, added direct downloads of all media types with Files app integration, working similarly to the web client and the Android app; transcoded downloads specifically are still labeled alpha rather than stable. That release also marked the last version to support iOS 12 — later releases require iOS 15.1 or newer. Jellyfin's own client list lists it as the official app and Swiftfin separately as "Official Beta." Picture in Picture, CarPlay, Skip Intro and Seerr integration are not documented for it here.

Swiftfin

Swiftfin is the Jellyfin project's own native client, free with no in-app purchases, requiring iOS 18 and a Jellyfin 12.0 server or newer. It offers a genuine choice between two players, and the choice is a real trade-off per its own player comparison: VLC supports around 18 subtitle formats against Native's four, and its own documentation "recommends using VLC for optimal compatibility." Native (AVPlayer) is the only one of the two with Picture in Picture and full AirPlay — VLC has a known bug causing significant audio delay over AirPlay, and subtitle track selection is not supported in Native at all.

Downloads have been an open discussion since 2024 and are still not shipped as of the project's own December 2025 development notes, which describe the feature as having "a lot of moving parts." Skip Intro is tracked in issue #1525; a pull request implementing Media Segment support was in review as of those same notes, so it is in progress, not shipped. Multiple servers work, though several open issues describe rough edges around naming and adding a second server. No CarPlay support and no documented Seerr integration were found.

If you already run Swiftfin and want to see what fills these gaps, our Swiftfin alternatives article and free Infuse alternatives article both cover the same four apps below in more depth.

Infuse

Infuse plays MKV, MP4, ISO, VIDEO_TS and BDMV without asking the server to transcode, and connects to Jellyfin, Plex and Emby at once in a single interface. Infuse Pro costs $1.99 a month, $16.99 a year or $99.99 once, after a 7-day trial; the free tier still plays your library. Downloads work for offline playback on iOS and Mac, though watch history can reset once you reconnect after watching offline. Picture in Picture and AirPlay are both supported.

Skip Intro, added in Infuse 8.4, uses Infuse's own TheIntroDB.org community database rather than Jellyfin's Media Segments — people running the Intro Skipper plugin on their own server have found its skip prompt does not appear inside Infuse. CarPlay is not supported; Firecore's own community forum has an open feature request for it with no indication it is coming soon. No built-in Seerr or Jellyseerr integration was found in Infuse's own documentation. There is no Windows, Linux or Android version.

Streamyfin

Streamyfin is free and open source, built with Expo, and uses MPV on every platform rather than switching players the way Swiftfin does. Its downloads are marked experimental: the README explains that it works "by using FFmpeg to convert an HLS stream into a video file on your device," a conversion handled in real time by a companion server plugin during the download, rather than a byte-for-byte copy of the original file. Newer builds add Picture in Picture alongside hardware-decoded MPV playback, per the App Store's own version notes.

Skip Intro and Skip Credits are confirmed in the README, and so is Seerr integration for requesting missing titles. AirPlay is not confirmed as shipped — a public App Store review specifically asks for it as a missing feature, so treat that as unresolved rather than working. Multiple saved servers are supported, with an automatic switch to your local network address when you're home. No CarPlay support was found anywhere in the README, site or listing.

Swiftly Player

Swiftly Player is a free, open-source Jellyfin client under the MPL-2.0 license, with its source on GitHub. One App Store download covers iPhone, iPad, Mac and Apple TV, no separate purchase for any of them.

Playback goes through VLCKit, aiming for Direct Play or Direct Stream on every file; the device profile declares containers, codecs and every subtitle format it supports, including MKV, HEVC, AV1, DTS, TrueHD and PGS. Unlike Swiftfin, Picture in Picture and downloads use that same VLC player, so an MKV file with an unusual subtitle format keeps playing in the small floating window and stays available offline — there is no second, more limited player to switch to for either feature. Downloads keep about 1 GB of device storage free in reserve, download one title at a time, and only ever suggest removing files that are both fully downloaded and already watched.

Skip Intro, Skip Recap and Skip Credits read Jellyfin's own Media Segments — the same data an Intro Skipper plugin writes to your server — rather than an outside database. It holds several Jellyfin servers and accounts at once, signs in with Quick Connect instead of typing a password, requests titles through Seerr, and picks up a film paused on another device from the same second. For the iPad specifically, our best way to watch Jellyfin on iPad and Jellyfin app for iPhone and iPad guides cover Split View and setup in more detail; our subtitles guide explains why VLC-based playback avoids the picture-subtitle transcodes that catch out other apps.

Gaps: it is a small, young project with a smaller community than Swiftfin or Infuse, with no SyncPlay, no Live TV and no casting, and no CarPlay, in line with every other app here.

VidHub and SenPlayer

VidHub and SenPlayer are general video players rather than Jellyfin-specific clients, and both list Jellyfin as one of several supported server types alongside Emby, Plex and network shares like SMB and WebDAV. VidHub's pricing runs through in-app purchases, VIP at roughly $1.49 a month, $9.99 a year or a platform-specific lifetime tier; a reviewer called Picture in Picture on iPad "the most glaring missing feature," and the developer reportedly pulled it offline temporarily to fix a bug, so treat current PiP reliability with caution. SenPlayer's lifetime Pro purchases are split by platform, from $9.99 for iPhone and iPad.

Both apps' downloads are oriented mainly at cloud drives and NAS shares rather than documented specifically for Jellyfin libraries. Neither documents Skip Intro, Seerr integration or CarPlay, which fits their role as broad network players that happen to speak the Jellyfin protocol.

JellyTV and Moonfin

JellyTV runs on iPhone, iPad, Mac, Apple TV, Vision Pro and Apple Watch from one codebase, free with an optional JellyTV+ subscription for an admin interface, Trakt and AniList integration and iCloud settings sync — Seerr requests are part of that paid tier. Its App Store listing shows more than one monthly figure for JellyTV+, as low as $2.49, so check which tier you are actually buying. The free app already includes downloads, Picture in Picture and AirPlay with HDR/Dolby Vision compatibility, per its own listing, but it needs iOS 26 or later.

Moonfin is a Flutter app for Jellyfin and Emby with an iPhone App Store listing, supporting multiple servers browsed in one place, offline downloads and Seerr integration. Pricing, Picture in Picture and AirPlay support were not independently verified here.

One app is worth naming even though it doesn't belong in the table: Fladder (DonutWare/Fladder) has no App Store presence at all — its own install docs state that sideloading with Sideloadly is the only way to run it on iOS or iPadOS, which rules it out as a mainstream recommendation here.

FAQ

Is there an official Jellyfin app for iPhone?

Yes, Jellyfin Mobile. It went almost three years without an update before returning in February 2025, and it is a web-based wrapper rather than a fully native app.

Does any Jellyfin app for iPhone support CarPlay?

No. None of the apps checked here — including Infuse, which has an open community request for it — support CarPlay for video. Apple's CarPlay guidelines are built around audio, navigation and messaging, not video while driving.

Which free iPhone app skips intros using my own server's data?

Swiftly Player reads Jellyfin's own Media Segments, the data an Intro Skipper plugin writes to your server. Streamyfin also supports Skip Intro and Skip Credits. Infuse instead relies on its own TheIntroDB.org database rather than your server's data. Swiftfin has the feature in progress but not shipped as of this check.

Can I download shows to watch offline on a flight?

Yes, with Infuse, Streamyfin, Swiftly Player, JellyTV or Jellyfin Mobile's own newer downloads. Note that Streamyfin's downloads convert a stream through server-side FFmpeg rather than copying the original file, and Jellyfin Mobile's transcoded downloads are still labeled alpha. Swiftfin does not have downloads yet.

Which Jellyfin apps support Seerr for requesting new titles?

Streamyfin, Swiftly Player, JellyTV (in its paid JellyTV+ tier) and Moonfin all confirm Seerr or Jellyseerr integration. It was not found documented for Swiftfin, Infuse, VidHub or SenPlayer.

Do I need iOS 26 for these apps?

Only JellyTV currently requires iOS 26 or later. Swiftfin needs iOS 18. Check each App Store listing for the others before installing on an older iPhone.

Summary

  • Pick Jellyfin Mobile if you want the project's own app and don't mind a web-based interface with a long history of slow updates.
  • Pick Swiftfin if a direct line to the Jellyfin project matters most, and you can live without downloads or Skip Intro for now, and accept giving up VLC for Picture in Picture.
  • Pick Infuse for the widest file and server support across Jellyfin, Plex and Emby, if a subscription and TheIntroDB instead of your own server's Skip Intro data are fine.
  • Pick Streamyfin for a free, open-source app with Skip Intro, Seerr and Picture in Picture together, and accept that its downloads are still experimental.
  • Pick Swiftly Player for free VLC playback with Picture in Picture and downloads on the same player, and Skip Intro from your own server's Media Segments.
  • Pick JellyTV if you want an Apple Watch app and don't mind iOS 26 and an optional subscription.
  • Try VidHub, SenPlayer or Moonfin only if you also need another server type or cloud storage alongside Jellyfin.
  • Skip Fladder on iPhone unless you are comfortable sideloading — there is no App Store version.

Related articles

All articles