Swiftfin
Swiftfin is a self-hosted media servers tool that provides native Jellyfin client for iOS and tvOS.
Self-hosted media streaming on Apple devices, honestly reviewed. What you actually get when you skip the official web client.
TL;DR
- What it is: Open-source (MPL-2.0) native iOS and tvOS client for the Jellyfin media server — built with Swift and VLC to maximize direct play on Apple hardware [README].
- Who it’s for: Apple users who already run a Jellyfin server and want a polished, native client instead of the browser-based fallback. iPhone, iPad, and Apple TV users specifically [README][2].
- Cost: The app is free. Swiftfin is MPL-2.0, Jellyfin server is free, the App Store download is free. The only cost is whatever hardware you already run your media server on [README].
- Key strength: The best native Apple TV client in the Jellyfin ecosystem, with settings that sync across iOS and tvOS profiles, live TV support, and a long-running roadmap backed by 457 contributors [README][2].
- Key weakness: Still in active development — feature parity with the tvOS version lags behind iOS, TestFlight beta is iOS-only, and TV guide customization is limited compared to Plex [README][3]. Requires Jellyfin 10.11+ which means you’re locked to a specific server version [README].
What is Swiftfin
Swiftfin is the native iOS and tvOS client for Jellyfin, the free and open-source media server. Where Jellyfin’s default interface runs in a browser, Swiftfin is a proper Swift application — built from the ground up for iOS 16+ and tvOS 17+ — that uses VLC as its playback engine to maximize direct play and look native on every Apple device class [README].
The pitch is simple: if you’ve already set up a Jellyfin server on your network or a VPS to escape Plex’s paywall and you own an iPhone or Apple TV, Swiftfin is how you watch. The official Jellyfin project has first-party clients for Android, Android TV, and a web client, but Swiftfin is the de facto standard for the Apple side of the equation [2].
The project lives under the jellyfin GitHub organization, which means it has the backing of the broader Jellyfin ecosystem rather than being a solo side project [README]. As of this review, it sits at 3,774 stars with 457 forks and 457 contributors — not a massive repo, but a healthy community project for a platform-specific client.
Two playback engines exist: a “Native” player and a “Swiftfin” player. The documentation distinguishes their feature sets, though the details of what each supports differently is in the Media Playback docs rather than the README itself [README]. The presence of a ChromeCastFramework.json in the repository suggests Chromecast support exists or is in development.
Why people choose it
The XDA Developers review [2] says it plainly: “Apple users seeking a Jellyfin client for their iPhone need look no further than Swiftfin.” The reason isn’t that it’s perfect — it’s that it’s the best option in its category.
The comparison the review draws is against the broader Jellyfin client ecosystem, not against proprietary alternatives. Swiftfin is highlighted alongside Fladder (Windows/macOS/Linux/iOS), Jellyfin Media Player (desktop), and Wholphin (Android TV) as one of the clients that “finally make Jellyfin look and feel like a premium app” — specifically calling it one of the best options for Apple TV users [2].
What the XDA review highlights in Swiftfin’s favor:
- Multi-user support. The app handles multiple Jellyfin users, with settings that stay consistent across iOS and tvOS profiles. If you watch on your iPhone in the morning and your Apple TV at night, the viewing experience stays coherent [2].
- Live TV. Swiftfin supports live TV, which matters if your Jellyfin server has a tuner attached and you’ve set up a TV guide [2].
- Consistent development. The review specifically calls out a “long roadmap and consistent track record” — this isn’t a project that shipped 1.0 and went quiet [2].
The honest caveat from the Jellyfin forum [3]: TV guide customization in Swiftfin is limited. A user asking whether the guide can be rearranged to look like Plex’s or a standard DVR got no resolution in the thread — suggesting either it’s not possible or poorly documented [3]. For users who rely heavily on live TV and guide navigation, this is worth knowing before you commit.
Features
Based on the README and documentation references:
Playback:
- VLC-powered video playback for broad codec support and maximized direct play [README]
- Two player modes: “Native” and “Swiftfin” — distinct feature sets documented separately [README]
- Designed to minimize server-side transcoding [README]
Platform:
- iOS 16+ support [README]
- tvOS 17+ support [README]
- Requires Jellyfin server 10.11 [README]
- Settings sync across iOS and tvOS profiles for the same user [2]
Content:
- Multi-user support [2]
- Live TV support [2]
- Library browsing for movies, TV shows, and supported media types [README library docs]
- ChromeCast support (based on framework inclusion in the repo) [README source tree]
App delivery:
- App Store release (stable) [README]
- TestFlight beta (iOS only — tvOS beta not available through TestFlight) [README]
- 7 total releases, latest version 1.4 as of December 12, 2025 [GitHub releases]
Community:
- Weblate-powered translations — the project supports multiple languages contributed by the community [README]
- Translation coverage visible via the Weblate badge in the README [README]
What’s documented but not detailed in the sources:
- The players.md documentation covers how Native vs. Swiftfin player features differ — specific codec support, subtitle rendering, and HDR handling are documented there but not covered in the third-party reviews available [README]
- Library compatibility details are in libraries.md, which describes what media types work vs. which don’t [README]
Pricing: cost picture
This section looks different for Swiftfin than for a SaaS tool, because there’s no SaaS version. Everything is free.
Swiftfin: Free. MPL-2.0 license. App Store download is free. No subscription, no in-app purchases mentioned in any source [README].
Jellyfin server: Free. GPL-2.0. Runs on any Linux box, Raspberry Pi, or NAS. The server itself is what you’re already running if you’re reading this [README][1].
Infrastructure cost: Whatever you already pay for your home server or VPS. Jellyfin is well within the capacity of a $6/mo Hetzner VPS or a spare machine on your home network.
The real cost comparison is against the alternatives:
- Plex: Free tier exists but limits downloads, mobile sync, and live TV. Plex Pass required for full features — pricing not available in provided sources, but it’s the incumbent everyone’s fleeing.
- Infuse (iOS/tvOS): A popular premium iOS media player that supports Jellyfin as a backend. It has a paid Pro tier for advanced features. Specific pricing not available in provided sources, but it represents the “pay once or subscription” alternative to Swiftfin’s free model.
- Emby: Server software with a paid Premiere tier for mobile clients on Android/iOS.
For a Jellyfin user, Swiftfin is the zero-cost path to a native Apple experience. The cost savings compared to Plex Pass or Infuse Pro over a year are entirely dependent on what you’d otherwise pay — data not available from these sources — but the floor is clear: Swiftfin + Jellyfin costs whatever your hardware costs.
Deployment reality check
“Deployment” for Swiftfin means downloading an app. There’s no server component, no Docker container, no config file.
What you actually need:
- An iPhone (iOS 16+) or Apple TV (tvOS 17+) [README]
- A running Jellyfin server at version 10.11+ accessible on your network or via a domain [README]
- An App Store account to download the app
App Store vs. TestFlight:
- The stable release is on the App Store. Install and point at your Jellyfin server URL [README].
- TestFlight beta is available for iOS for those who want new features earlier. The tvOS version does not have a TestFlight channel — a GitHub discussion exists tracking this gap [README].
What can go sideways:
- The Jellyfin 10.11 version requirement is a hard dependency — older server versions are not supported [README]. If you’re running an older Jellyfin instance, you’ll need to update the server before Swiftfin works.
- TV guide customization is limited. The forum [3] shows a user wanting Plex-style guide layout and getting no resolution — if guide navigation is central to how you watch live TV, test this before migrating your full setup.
- TestFlight betas can have rough edges by definition — the project actively solicits bug reports from TestFlight users [README].
Time estimate: Under 5 minutes to install and connect to an existing Jellyfin server. The setup complexity lives entirely in getting Jellyfin itself running, not in the Swiftfin client.
Pros and cons
Pros
- Free, genuinely. MPL-2.0, no subscription, no freemium tier, no in-app purchases. The app costs nothing and the license lets you fork it [README].
- Native Swift codebase. Built for Apple platforms specifically, not a web wrapper or a port. This matters for performance, OS integration, and longevity [README].
- VLC playback engine. Direct play coverage is broad because VLC handles codecs that iOS’s native frameworks don’t [README].
- Settings sync across profiles. Your iOS and tvOS experience stays consistent under the same user account [2].
- Live TV support. Unlike some clients, Swiftfin handles live TV if your Jellyfin server is configured for it [2].
- Active development with real contributor count. 457 contributors, 7 releases, consistent track record [README][2].
- Officially under the Jellyfin organization. Not a third-party fork — aligns with the main project’s releases [README].
- Multi-user support. Households with multiple Jellyfin profiles are handled cleanly [2].
Cons
- tvOS trails iOS in feature coverage. TestFlight beta is iOS-only with an open GitHub discussion about the tvOS gap. New features reach iOS users first [README].
- TV guide is not customizable. Forum users asking for Plex-style guide layouts get no clear answer — this appears to be a genuine limitation [3].
- Requires Jellyfin 10.11+ specifically. Version lock-in on the server side — older Jellyfin instances won’t work [README].
- Limited third-party reviews. The depth of community documentation around edge cases (HDR passthrough, Dolby Atmos passthrough, specific codec issues) is largely in GitHub issues rather than polished guides.
- ChromeCast appears to be in the stack but documentation on it is thin. The framework file exists, but no review source clarifies how well it works in practice.
- Still in active development. The project describes itself as such, and the XDA review notes this explicitly [2]. Core functionality is solid, but rougher edges exist.
Who should use this / who shouldn’t
Use Swiftfin if:
- You run Jellyfin (version 10.11+) and own Apple devices — iPhone, iPad, or Apple TV.
- You want a native app experience instead of the browser-based Jellyfin interface on iOS.
- You’re leaving Plex and don’t want to pay for Plex Pass just for mobile access.
- You want live TV support on Apple TV from your Jellyfin server.
- You have a multi-user household all on Apple devices.
Skip it (look at Infuse instead) if:
- You want a more polished, commercially-maintained iOS media player and are willing to pay for it.
- You need the deepest possible codec and metadata support and don’t mind a subscription model.
- You’re connecting to multiple different servers (Plex, Emby, and Jellyfin simultaneously) and want a unified client.
Skip it (use the official Jellyfin web client) if:
- You’re on an older Jellyfin version and can’t update the server right now.
- You primarily watch on a non-Apple device and the web client is good enough on iOS.
Skip it entirely if:
- You’re not already running Jellyfin. Swiftfin is a client — it does nothing without the server. If you haven’t set up Jellyfin yet, start there first.
Alternatives worth considering
For iOS/tvOS Jellyfin clients:
- Official Jellyfin for iOS/tvOS — exists but less polished than Swiftfin; Swiftfin is the community-preferred choice for Apple [2].
- Infuse — commercially-developed iOS/tvOS media player that supports Jellyfin as a server source. Paid Pro tier for advanced features. The premium alternative to Swiftfin.
- Fladder — mentioned by XDA [2] as a strong Jellyfin client, but its primary focus is Windows/macOS/Linux, with iOS support secondary.
If you’re questioning Jellyfin itself:
- Plex — the incumbent. Better UI polish, massive catalog integrations, but Plex Pass is required for mobile and offline features.
- Emby — similar to Jellyfin, fork of the same codebase. Has a paid Premiere tier; iOS client is separate from Swiftfin.
- Navidrome — only if your use case is music specifically; not a video solution.
The practical shortlist for an Apple user with self-hosted media: Swiftfin vs. Infuse. Pick Swiftfin if free and open-source matters. Pick Infuse if you want commercial support and broader multi-server compatibility and are willing to pay for it.
Bottom line
Swiftfin exists because the Jellyfin web client on iOS is tolerable and the Jellyfin web client on Apple TV is worse. It fills a genuine gap: if you’ve built a self-hosted media stack on Jellyfin to escape Plex’s subscription model, Swiftfin is what makes that stack feel like a real app on Apple hardware. The XDA review’s framing is accurate — this is one of the clients that lifts Jellyfin from “impressive for open source” to “actually competitive with Plex as an experience” [2]. The trade-offs are real: tvOS feature parity lags iOS, TV guide customization is limited, and the version lock to Jellyfin 10.11 means you need to keep the server current. But for the target audience — Jellyfin users who own iPhones and Apple TVs — there isn’t a better free option, and the MPL-2.0 license means the project can be forked and maintained by the community if the main team ever goes quiet.
Sources
- Related Repos — jellyfin/jellyfin alternatives and similar packages. https://relatedrepos.com/gh/jellyfin/jellyfin
- Patrick Hearn, XDA Developers — “5 Jellyfin clients that finally make it look and feel like a premium app” (Feb 26, 2026). https://www.xda-developers.com/jellyfin-clients-that-finally-make-it-look-feel-like-premium-app/
- Jellyfin Forum — “swiftfin change tv guide appearance?” (Jun 22, 2025). https://forum.jellyfin.org/t-swiftfin-change-tv-guide-appearance
Primary sources:
- GitHub repository and README: https://github.com/jellyfin/Swiftfin (3,774 stars, MPL-2.0 license, 457 contributors)
- App Store listing: https://apps.apple.com/us/app/swiftfin/id1604098728
- TestFlight beta (iOS): https://testflight.apple.com/join/SqNPfdxq
Features
Mobile & Desktop
- Mobile App
Related Media & Streaming Tools
View all 334 →Immich
95KHigh-performance self-hosted photo and video management — automatic backup, ML-powered search, and a Google Photos-like experience on your own server.
Jellyfin
49KThe volunteer-built media solution that puts you in control of your media. Stream movies, shows, music, and photos to any device from your own server.
PhotoPrism
39KAI-Powered Photos App for the Decentralized Web. Tag and find pictures automatically without getting in your way.
Cobalt
39KSave what you love without ads, tracking, paywalls or other nonsense. Just paste the link and you're ready to rock.
qBittorrent
36KAn open-source software alternative to uTorrent. Feature-rich and runs on all major platforms.
SRS
29KSimple, high efficiency, realtime video server. Supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and GB28181.