Stuck on something? Start here. Most of what trips people up is the browser, not the app, and it's all written down below.
Nostalgex points at your own Plex, Jellyfin, or Emby and turns it into flippable TV channels, with an actual channel guide instead of an endless grid. There are two ways to run it.
http and raw-IP included, so none of the browser headaches below apply. If you're running a normal home setup, this is the one to use.Sign in with your Plex account and Nostalgex finds your server on its own. Plex hands out its own secure addresses (plex.direct), so it usually just works on both the app and the web tuner with nothing extra to set up.
Drop in your Jellyfin server URL and sign in, either with your username and password or Quick Connect. Use the whole URL with the scheme on the front, like https://jellyfin.yourdomain.com.
Emby and Jellyfin share an API, so Emby works the same way: drop in your Emby server URL and sign in with your username and password. In the Apple TV app it's its own option; on the web tuner, use the Jellyfin connect and point it at your Emby server.
The web tuner runs on an https page, and browsers won't let an https page reach out to a plain http or raw-IP address. They call it mixed content, and they just block it. If your server opens fine in another browser tab but the tuner swears it can't reach it, that's almost always what's happening. It's the browser's rule, not something I can flip off from the web.
https:// URL in.http/raw-IP servers directly because native apps don't have this restriction.A plain http box on your LAN will always work in the Apple TV app and never in a browser tab. That's the one real difference between them.
Here's the one that catches people. Your Jellyfin is on https and reachable, but the tuner still says "COULD NOT REACH THE JELLYFIN SERVER", and if you pop open the browser dev console you see a CORS error. That means your reverse proxy is rejecting the request because it's coming from a different domain (this site). The browser throws away the response unless your server says it's OK for https://nostalgex.app to talk to it.
The fix is one header at your proxy: allow requests from https://nostalgex.app. How you do that depends on what you run.
http-request set-var(txn.cors_origin) req.hdr(Origin)
acl cors_allowed var(txn.cors_origin) -m str https://nostalgex.app
http-response set-header Access-Control-Allow-Origin %[var(txn.cors_origin)] if cors_allowed
add_header Access-Control-Allow-Origin "https://nostalgex.app" always;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, DELETE" always;
add_header Access-Control-Allow-Headers "Authorization, Content-Type, X-Emby-Authorization" always;
# answer the preflight
if ($request_method = OPTIONS) { return 204; }
header Access-Control-Allow-Origin "https://nostalgex.app"
header Access-Control-Allow-Methods "GET, POST, OPTIONS, DELETE"
header Access-Control-Allow-Headers "Authorization, Content-Type, X-Emby-Authorization"
@options method OPTIONS
respond @options 204
Reload the proxy, hard-refresh the tuner, and try again. The exact syntax shifts around between versions, but the goal is always the same: every response (including the OPTIONS preflight) needs to carry Access-Control-Allow-Origin: https://nostalgex.app.
Don't feel like touching your proxy config? Use the Apple TV app. It needs none of this.
No. It's a straight line from your browser or app to your own server. Your login, server URL, library, and video never reach me. I only host the web page. If you want to check, open the Network tab in your browser and watch where the requests go. Every one of them hits your server, not mine.
No. There are no analytics or tracking scripts on the tuner pages. The marketing landing page counts basic visits, but the part that connects to your server doesn't run anything.
Not right now. Nostalgex builds channels out of your own Plex, Jellyfin, or Emby library, it doesn't read a list of live streams. M3U isn't on the roadmap yet.
Browsers won't let a secure page reach a plain http or raw-IP server, and they enforce CORS on top of that. A native app has neither rule, so the Apple TV app just connects to your local box directly.
First, make sure you're on the latest version. Older builds couldn't play HEVC/H.265 or mkv and would sit on a black screen. They play fine now. A few seconds of the "tuning" screen at the start is normal too: anything that isn't directly playable gets transcoded by your server, and that takes a moment to spin up. If a channel never starts, check that transcoding is turned on (Jellyfin: Dashboard → Playback).
https://your-server.Reporting a bug? The stuff that actually helps me fix it: what you were doing, what you expected versus what happened, your app and tvOS version (Settings → About), whatever error or diagnostic line showed up, and a photo of the screen if you've got one.
Nostalgex is built by Muell Haus Inc. Here's the Privacy Policy.