Swiftfin
Native Jellyfin client for iOS and tvOS
Swiftfin is a free, open-source native Jellyfin client for iOS, iPadOS, and tvOS written in Swift. It uses native video players to deliver smooth playback on Apple devices for media hosted on a self-hosted Jellyfin server.
Key features
- Native iOS and tvOS apps
- VLC and native player backends
- Server connection management
- SwiftUI interface
Pros & cons
Strengths
- Smooth Apple TV experience
- Official Jellyfin project
Trade-offs
- Apple platforms only
- Requires Jellyfin server
Swiftfin replaces
Last reviewed Sep 13, 2026 · 846 words
On an Apple TV, Swiftfin is the official Jellyfin client, it is free, and it is now good enough that most households do not need to pay for Infuse. The qualifier is "most". The two player backends inside Swiftfin behave differently, and choosing the wrong one for your library is the difference between a smooth 4K HDR evening and a night of transcoding and subtitle complaints. This guide is about that choice, because everything else in Swiftfin is a login screen.
Native player or VLCKit: the one decision
Swiftfin ships two playback engines and lets you switch in settings. The native player is Apple's AVFoundation. It gets full system integration on tvOS: frame-rate matching, dynamic range matching for HDR10 and Dolby Vision profiles Apple supports, and the system's own audio passthrough behaviour. Its limitation is that AVFoundation only understands the containers and codecs Apple blesses, so a large share of MKV files with certain audio tracks or subtitle formats will either be remuxed by the server or transcoded outright.
VLCKit is the libVLC engine. It plays essentially anything Jellyfin can store, including MKV with DTS audio and ASS styled subtitles rendered properly, and it asks the server for far fewer transcodes. What it lacks is the deep tvOS integration; on an Apple TV you may lose frame-rate matching and end up with a picture that is correct but not as tidy as the native path. On iPhone and iPad the gap matters less, because you are rarely watching HDR on a phone with a sound bar attached.
My rule of thumb: on Apple TV with a library of remuxes and a Jellyfin server that has hardware transcoding set up, start with the native player and let the server do conversion where needed. On mobile, or on a server without a GPU, use VLCKit and save the server the work. The Jellyfin complete setup covers getting transcoding working; without it, the native player's remux requests will hit your CPU.
Setup is a URL and a Quick Connect code
Install from the App Store on iOS, iPadOS and tvOS, or via TestFlight for the beta channel where new features land first. Enter your server address, the same one you use in a browser, and either sign in with a password or use Quick Connect: tap the option in Swiftfin, then approve the six-digit code from the Jellyfin dashboard under your user menu. On an Apple TV remote, Quick Connect saves a great deal of swearing at an on-screen keyboard.
Swiftfin remembers multiple servers and multiple users per server, with a switcher on the home screen. It respects the Jellyfin server's own user permissions and parental controls. If your server only lives on Tailscale, the tvOS Tailscale app makes that work on the TV too.
Where Swiftfin still loses to Infuse
Infuse is the polished paid alternative, and the Infuse alternatives page frames the trade properly. Its advantages are a longer-refined player with strong Dolby Vision handling across more profiles, a metadata layer independent of Jellyfin, and a decade of edge-case fixes. Swiftfin, written in Swift with a SwiftUI interface since 2021, MPL-2.0 and 4,136 stars, is younger and its tvOS interface still has moments of rough focus navigation and occasional layout oddities in long libraries. Live TV is present but basic. Downloads for offline viewing on iPhone and iPad are newer and less battle-tested than the equivalent in Findroid on Android.
If you have a Dolby Vision profile 7 MKV collection and a sound system that cares about lossless audio passthrough, Infuse remains the safer pick and the subscription is cheap relative to the hardware you have already bought. If your library is a normal mix of 1080p and 4K files and you are happy to let Jellyfin transcode the awkward ones, Swiftfin covers it.
Being an official Jellyfin project matters
Unlike most third-party clients in this star band, Swiftfin lives in the Jellyfin organisation on GitHub and tracks server API changes as they happen. That is the reason to prefer it over the various commercial and abandoned Jellyfin apps on the App Store, several of which are thin wrappers that break on every server release. When Jellyfin adds a feature, Swiftfin is usually the second client to expose it after the web interface.
What I'd do
Install Swiftfin on every Apple device in the house, set the native player on the Apple TV and VLCKit on the phones, and use Quick Connect to log in. Watch three or four films across your usual formats. If everything plays without a transcode or a subtitle complaint, you are done and have spent nothing. If your HDR remuxes or your audio passthrough are not right after an evening of testing, buy Infuse for the living room and keep Swiftfin on the mobile devices, where it is already the best free option and the one I would choose over the official web wrapper every time.
Compare Swiftfin
1 head-to-head comparisons.
Similar media servers apps
Jellyfin
Media ServersFree software media system for streaming your library
Replaces Plex, Emby
qBittorrent
Media ServersBittorrent client that aims to be a good alternative to all other
Replaces µTorrent
SRS
Media ServersA simple, high efficiency and real-time video server, supports RTMP,
Navidrome
Media ServersModern music streaming server for your collection
Replaces Spotify
Kodi
Media ServersOpen-source home theater and media center
Replaces Plex
Koel
Media ServersPersonal music streaming server with an elegant interface
Replaces Spotify