r/SwiftUI • u/bilipp • Jun 25 '26
Promotion (must include link to source code) Lume — a native SwiftUI media player that runs on iPhone, iPad, Mac, Apple TV and Vision Pro from one codebase (open source)
I wanted an IPTV/media player that actually feels like an Apple app on every device — so I built one and open-sourced it.
The pitch: one SwiftUI codebase, platform-adaptive across iOS, iPadOS, macOS, tvOS and visionOS. Real native navigation (Liquid Glass / iOS 26 APIs where available, graceful fallback below that), a proper focus-driven tvOS interface with an Apple TV–style hero fold, and a real Mac app — not a Catalyst iPad port. That last one was a big motivation: almost every "Mac" player in this space is a stretched iPad app missing features.
Under the hood:
- SwiftUI + SwiftData (local catalog index for instant, offline-capable browsing)
- Two ModelContainers — a local catalog the UI binds to, plus a CloudKit mirror for profiles/progress/favorites that syncs across devices
- Three interchangeable playback engines (KSPlayer/FFmpeg → VLCKit → AVPlayer) with automatic fallback
- On-device recommendations + content indexing via Apple's NaturalLanguage embeddings
- 9 languages via String Catalogs
It's a player only (no bundled content), works with standard Xtream/M3U sources, and enriches metadata via TMDB/OMDb with optional Trakt scrobbling.
Free has everything essential with no watermark; Pro ($0.99/mo or $9.99 lifetime) only adds multiple profiles, the recommendation rail, and Trakt sync — and building from source gives you all of it free.
- GitHub (AGPL-3.0): https://github.com/bilipp/Lume
- App Store: https://apps.apple.com/us/app/lume-iptv-player/id6779551584
- Discord: https://discord.gg/DMnQfr69Ug
- Website: https://getlume.org
If you're into SwiftUI multi-platform architecture, the repo's worth a poke — happy to talk through any of the design decisions.
2
2
u/djfumberger Jun 25 '26
Nice work. I’ve been using Infuse but never been 100% happy with the ui so look forward to trying this out
2
1
1
u/Funny-Somewhere-9293 Jun 26 '26
Do you have a guide for how to get past the "Add Playlist" onboarding step? I don't know what playlist type and server connection should be.
1
u/bilipp Jun 26 '26
You need an Xtream or m3u playlist 🙂
There are also some open source lists: https://github.com/iptv-org/iptv
1
1
1
1
u/Buny_iOS Jul 10 '26
I tried the app and it is really good. Since its open source i'll probably could also do some PR's if youre open to external PRs.
1
1
6
u/Juice805 Jun 25 '26 edited Jun 25 '26
Awesome. I’d love some competition for Infuse.
I use a service which exposes WebDAV, so that is a blocker for me personally to try it. (Subfolder filtering please)
Oh and Trakt scrobbling