An open API service indexing awesome lists of open source software.

https://github.com/superuser404notfound/jellyseetv

Native Jellyfin client for Apple TV with built-in Seerr requests. Direct Play, real HDR10 / Dolby Vision, real Dolby Atmos. Powered by AetherEngine.
https://github.com/superuser404notfound/jellyseetv

aetherengine apple-tv direct-play dolby-atmos dolby-vision hdr hdr10 jellyfin jellyfin-client media-player seerr swift swiftui tvos video-player

Last synced: about 1 month ago
JSON representation

Native Jellyfin client for Apple TV with built-in Seerr requests. Direct Play, real HDR10 / Dolby Vision, real Dolby Atmos. Powered by AetherEngine.

Awesome Lists containing this project

README

          

JellySeeTV


Your Jellyfin library and Seerr โ€” together on Apple TV.

Native tvOS, instant playback, real HDR, real Dolby Atmos.

Browse what you own. Request what's missing. Without ever leaving the couch.







> ๐Ÿงช **Public Beta is open.** Install via TestFlight: **https://testflight.apple.com/join/REPLACE_ME**
> See [BETA.md](BETA.md) for what to focus on and how to report bugs.

---

## Two services, one remote

JellySeeTV is the only **open-source** Apple TV client that brings **Jellyfin and Seerr together in the same UI**. Watch what's already on your server. Spot something on a trending row that isn't there yet? Request it from inside the app โ€” Seerr handles the rest.

No more switching to a phone, opening a web UI, or pinging your homelab admin. Single sign-on, one focus-driven interface, the full library + request loop on the TV where you actually watch.

## Open source, end to end

Most Apple TV media players are closed-source binaries you have to trust. JellySeeTV isn't. Every byte that touches your server is in this repo, your auth tokens stay in your Keychain, and there's no telemetry, no analytics, no third-party SDK phoning home.

JellySeeTV itself is **MIT** โ€” fork it, rebrand it, ship it. The video stack underneath ([AetherEngine](https://github.com/superuser404notfound/AetherEngine)) is **LGPL-3.0**, which keeps engine-level improvements flowing back to the community. Both are auditable, buildable from source, and free of any vendor lock-in. Self-host the server, self-build the client โ€” the whole loop is yours.

## Why JellySeeTV

Jellyfin is great. The existing Apple TV clients are either web wrappers or built around third-party players that fight tvOS instead of using it. JellySeeTV is built natively from the ground up: SwiftUI on top, a custom video engine underneath, and the same HIG patterns Apple uses for TV+ โ€” focus engine, Siri Remote gestures, transport bar, info panel. Plays the file directly from your server in almost every case, no transcoding required.

And the Seerr integration isn't a tacked-on link to a web view โ€” it's a first-class part of the app, with its own browse rows, request flow, and status tracking right next to your library.

## Screenshots

*Coming soon โ€” we'll add these once the public TestFlight opens.*

## Features

### ๐Ÿ“š Browse & discover
- **Server discovery** โ€” finds Jellyfin on your network automatically, or add manually
- **Home** โ€” Continue Watching, Next Up, Latest by library, fully customizable
- **Library** โ€” Movies, Series, Collections with poster grids and instant filtering
- **Series view** โ€” season picker, episode list, "Up Next" highlighting
- **Search** โ€” across your whole server, results as you type
- **Image caching & prefetching** โ€” posters and backdrops load before you focus them

### ๐ŸŽฌ Watch
- **Direct Play** for almost every codec your Apple TV understands: H.264, HEVC, HEVC Main10, AV1
- **HDR10, Dolby Vision, HLG** โ€” auto-detected, sent through with full color metadata, display switches to HDR mode automatically (Match Content)
- **Dolby Atmos** via EAC3+JOC, wrapped as Dolby MAT 2.0 โ€” your AVR's Atmos light actually comes on
- **Multichannel surround** โ€” 5.1, 7.1 with correct channel layout
- **Resume** from where you left off, on any device
- **Intro skip** โ€” auto-detected from your Jellyfin server, optional one-tap skip
- **Next episode** โ€” auto-play with countdown, or just an overlay; configurable
- **Subtitle support** โ€” SRT, with track selection during playback
- **Audio track switcher** โ€” pick the language or surround mix you want, mid-playback
- **Native player UI** โ€” same transport bar, scrub preview and info panel as Apple TV+

### ๐Ÿ“จ Request what's missing
- **Seerr integration** โ€” browse trending and popular media right inside the app
- **One-tap requests** โ€” for movies and full series
- **Track status** โ€” see what's been approved, declined, or is already downloading
- **Single sign-on** โ€” log in once, JellySeeTV handles your Seerr session

### ๐ŸŒ Personal
- **26 languages** โ€” German, English, Spanish, French, Italian, Japanese, Korean, Norwegian, Dutch, Polish, Portuguese (BR + PT), Russian, Swedish, Simplified + Traditional Chinese, Turkish, Ukrainian, Czech, Slovak, Croatian, Finnish, Greek, Hungarian, Romanian, Danish
- **Dark, minimal design** โ€” built for living rooms, not for desks
- **Liquid Glass** UI accents on tvOS 26+
- **Siri Remote optimized** โ€” touch surface scrubbing, click for play/pause, swipe gestures throughout

## Built on

JellySeeTV is a thin native shell over a custom video stack. The interesting part is what *isn't* there: no VLCKit, no third-party players, no web views. Just Apple's frameworks plus a Swift package that handles the formats Apple's own player can't.

| Component | Technology |
|---|---|
| UI | SwiftUI + UIKit interop where needed |
| Video engine | [AetherEngine](https://github.com/superuser404notfound/AetherEngine) โ€” FFmpeg demux, VideoToolbox decode, AVPlayer for Atmos passthrough |
| Display | `AVSampleBufferDisplayLayer` driven by a `CMTimebase` synced to the audio clock |
| Audio | `AVSampleBufferAudioRenderer` for PCM, `AVPlayer` over local HLS for Dolby MAT 2.0 (Atmos) |
| Networking | `URLSession` against the Jellyfin REST API |
| Persistence | Keychain for credentials, no telemetry storage |
| Media server | [Jellyfin](https://jellyfin.org) |

If you want the full pipeline detail โ€” HDR routing, Atmos passthrough, A/V sync, channel-layout tagging โ€” see the [AetherEngine README](https://github.com/superuser404notfound/AetherEngine#readme).

## Requirements

| | Min |
| --- | --- |
| Apple TV | 4K (any generation) |
| tvOS | 26.0 |
| Jellyfin server | 10.9+ recommended |
| Seerr (optional) | 2.0+ |

A 1080p Apple TV HD will technically run the app, but Direct Play of 4K HDR content needs the 4K hardware.

## Building from source

```bash
git clone https://github.com/superuser404notfound/JellySeeTV.git
cd JellySeeTV
open JellySeeTV.xcodeproj
```

Pick the `JellySeeTV` scheme, an Apple TV destination, and run. AetherEngine is wired in as a local Swift Package โ€” you'll need it cloned next to this repo (or adjust the path in Package dependencies).

```
~/Dev/
โ”œโ”€โ”€ JellySeeTV/
โ””โ”€โ”€ AetherEngine/
```

Xcode 26+ and Swift 6.0+ are required.

## Roadmap

- [ ] Public TestFlight beta
- [ ] App Store release
- [ ] iOS / iPadOS companion app
- [ ] Live TV + DVR support
- [ ] Music library support

## Related

- [AetherEngine](https://github.com/superuser404notfound/AetherEngine) โ€” the video engine powering JellySeeTV
- [Jellyfin](https://github.com/jellyfin/jellyfin) โ€” the free software media system
- [Seerr](https://github.com/Fallenbagel/jellyseerr) โ€” request management for Jellyfin
- [Swiftfin](https://github.com/jellyfin/Swiftfin) โ€” official Jellyfin client for iOS / tvOS (VLCKit-based)

## Built with

JellySeeTV is vibe-coded โ€” designed and shipped by [Vincent Herbst](https://github.com/superuser404notfound) in close pair-programming with **Claude** (Anthropic). The commit log is the receipt: nearly every commit carries a `Co-Authored-By: Claude` trailer.

## License

[MIT](LICENSE).