Repository navigation
Releases: chadMueller/Nostalgex
Release list
Self-hosted web tuner 1.0.6 (Docker)
A new sign-in for Jellyfin and Emby, the same one the Apple TV app has. This is the self-hosted web tuner, not the Apple TV app. Everything here is live on nostalgex.app too.
Try it without installing anything: nostalgex.app/web-tuner.
Run it on your own server:
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Already running it? docker compose pull && docker compose up -d, or pull latest and recreate the container. The bottom of Settings says WEB TUNER 1.0.6 · DOCKER once you're on it.
Changed
- Quick Connect first on Jellyfin. With Quick Connect switched on in Jellyfin, the code is on screen as soon as your server answers. Approve it in Jellyfin on your phone or computer and you're in, with nothing to type. Signing in with a password is one click away.
- The Docker tuner looks for your server first. Click Jellyfin or Emby and it checks the machine the tuner runs on, and the last address you used. If your server is there, it goes straight to it. If it runs somewhere else, type its address. On nostalgex.app a browser can't look around your network, so it asks for the address straight away.
- Pick your name. If your server shows its users on its login screen, as Emby does out of the box, Nostalgex shows them too. A user with no password is signed in on that click.
- Easy to follow with a remote or a keyboard. The button you're on is bright cyan, text boxes are dark with a cyan frame, Enter moves to the next step and Esc goes back. Every step is also a button, for TV browsers like TV Bro.
Fixed
- The address is checked before you type a password, so a wrong address or port says so right away, and so does an address that isn't a Jellyfin or Emby server. Pick Emby but type a Jellyfin address (or the other way round) and it tells you and carries on.
- The Plex code screen has a CANCEL button, so you can go back without reloading the page.
The tuner's pages no longer share files with the nostalgex.app website, so changes to the website can't affect the tuner or this container. Nothing should look different.
Versions
- Git tag:
tuner-v1.0.6 - Docker image tags:
1.0.6,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.5 (Docker)
Ratings from outside the US now count properly. This is the self-hosted web tuner, not the Apple TV app. Everything here is live on nostalgex.app too.
Try it without installing anything: nostalgex.app/web-tuner.
Run it on your own server:
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Already running it? docker compose pull && docker compose up -d, or pull latest and recreate the container. The bottom of Settings says WEB TUNER 1.0.5 · DOCKER once you're on it.
Fixed
- UK and other non-US ratings count like their US equivalents. Jellyfin and Emby store a rating from outside the US with the country in front, like
GB-PGorGB-15, and Germany's asFSK-16. The channels only knew US ratings, so on a UK server the kids and family channels turned down U and PG titles and came out nearly empty, and an 18 didn't count as adult. Now U reads as G, PG as PG, 12 and 12A as PG-13, and 15 and 18 as R, with the TV versions for a show (TV-G, TV-PG, TV-14, TV-MA). U and PG titles fill the kids and family channels, 15s and 18s stay off them, and VHS VAULT holds them until 9 PM the way it holds R. - Other countries too. Ireland, Germany, Australia, New Zealand, Canada, France and the Netherlands, and a bare
12AorTV-12A. An age rating from anywhere else, likeSE-15, counts by its age.
Libraries with US ratings get exactly the same channels as before. The guide still shows the rating your server sends. This came out of the watershed idea in #41.
Versions
- Git tag:
tuner-v1.0.5 - Docker image tags:
1.0.5,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.4 (Docker)
A fix for the nights the clocks change. This is the self-hosted web tuner, not the Apple TV app. Everything here is live on nostalgex.app too.
Try it without installing anything: nostalgex.app/web-tuner.
Run it on your own server:
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Already running it? docker compose pull && docker compose up -d, or pull latest and recreate the container. The bottom of Settings says WEB TUNER 1.0.4 · DOCKER once you're on it.
Fixed
- No dead hour when the clocks go back. That day is 25 hours long, but the schedule only covered 24, so the last hour before midnight had nothing on. Channels now run right up to midnight.
- No reruns the day after the clocks go forward. The day after a 23-hour day looked two days back to see what had already aired, so it could repeat a good chunk of the day before. In London it was the whole day again. It now checks the day before, like every other day.
Every other day of the year, and anywhere without daylight saving, gets exactly the same schedule as before. Thanks to @tydude001 for spotting it.
Versions
- Git tag:
tuner-v1.0.4 - Docker image tags:
1.0.4,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.3 (Docker)
Holiday channels, smoother Jellyfin and Emby playback, and a version number you can see. This is the self-hosted web tuner, not the Apple TV app. Everything here is live on nostalgex.app too.
Try it without installing anything: nostalgex.app/web-tuner.
Run it on your own server:
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Already running it? docker compose pull && docker compose up -d, or pull latest and recreate the container.
New
- TIS THE SEASON grows to eight channels. MISTLETOE for cozy holiday romances, CHRISTMAS SPECIALS and KIDS CHRISTMAS TV with the Christmas episodes of your shows (Friends, The Simpsons, Bluey and the rest), and TURKEY DAY for Thanksgiving episodes. The holiday invite shows up a week before US Thanksgiving.
- The version is in Settings, at the bottom, so it's easy to tell which tuner you're running.
Fixed
- Jellyfin and Emby stop burning subtitles into the picture. A default or forced subtitle track made the server re-encode the whole film. Now the video is copied, and only a forced track in your language is burned in, so foreign-language lines still show.
- Dolby Vision profile 5 files are left off channels on Emby. Emby sends them to a browser green and purple, and nothing on our side changes that. Profile 8, HDR10 and everything else play as normal, and Plex and Jellyfin aren't affected.
- OSCAR WINNERS no longer counts every Rocky sequel as a winner.
- The SCREAM lock only takes films, so a TV series or music video titled Scream stays on its usual channels.
Channels with too few titles in your library stay hidden until you have enough for them, so not every new channel will show up for everyone.
Versions
- Git tag:
tuner-v1.0.3 - Docker image tags:
1.0.3,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.2 (Docker)
Two fixes, and a good moment to try the web tuner if you haven't yet. This is the self-hosted web tuner, not the Apple TV app. Everything here is live on nostalgex.app too.
Try it without installing anything: nostalgex.app/web-tuner. Sign in to Plex, Jellyfin or Emby and your library turns into live TV channels with a retro guide.
Run it on your own server:
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Already running it? docker compose pull && docker compose up -d, or pull latest and recreate the container.
Fixed
- Jellyfin Quick Connect works on Jellyfin 12. Jellyfin 12 only accepts a POST to start Quick Connect, and the tuner sent a GET, so you got "QUICK CONNECT IS NOT ENABLED ON THIS SERVER". It sends a POST now and still works with older Jellyfin. Thanks to @tydude001 for spotting it while building the Roku app.
- TOON TOWN stopped airing The Hobbit. TMDB tags the Hobbit and Lord of the Rings films "live action and animation", so TOON TOWN picked them up. That tag now only counts on a film that's also animation, family or comedy, so Space Jam and Scooby-Doo stay and Middle-earth goes.
In case you missed 1.0.1
- A sleep timer and playback information in the side menu, next to the guide.
- Emby has its own sign-in button.
- SCREAM is eight channels and can stay on in any month, plus MYSTERY BOX TV, CRINGE TV and A24.
Versions
- Git tag:
tuner-v1.0.2 - Docker image tags:
1.0.2,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.1 (Docker)
A sleep timer, playback information, Emby as its own sign-in, and more Halloween. This is the self-hosted web tuner, not the Apple TV app. All of it is on nostalgex.app too, since it's the same tuner.
docker compose pull && docker compose up -dOr docker pull ghcr.io/chadmueller/nostalgex:latest and recreate the container.
What's new
- Sleep timer. SLEEP in the side menu next to the guide: 15 MIN, 30 MIN or 1 HR, with the time left on the button. At zero it asks "Still watching?" for 20 seconds, then stops the picture and goes back to the guide. Pick a channel to start again. On a phone it's under MENU.
- Playback information. INFO in the side menu, or press I, shows what's playing: Direct Play or a server stream, the picture size, the codecs, and why it fell back if it did. Same panel as the Apple TV app, which @w6trp built in #26. It's also under Settings > PLAYBACK.
- Emby has its own button. Connect with Emby on the sign-in page, with your username and password. Emby used to go through the Jellyfin option and the library never loaded. If you signed in that way, you're switched over on the next load without signing in again. In the container a plain
http://Emby address works; on nostalgex.app it has to be https. - SCREAM and TIS THE SEASON stay on in any month. Switch one on and its channels build all year, not just in October or December. Before this, a switched-on SCREAM came back empty after a reload outside October.
- SCREAM grows from 4 channels to 8: SLASHER, HORROR COMEDY, FOUND FOOTAGE and WORLD HORROR join SCREAM KIDS, FRIGHT NIGHT, SCREAM ADULTS and NOSTALGEX HORROR. Channel ideas from @tydude001.
- Three more channels: MYSTERY BOX TV, CRINGE TV and A24.
- Fewer titles pulled off channels by mistake. The rule that keeps Scream and Halloween films on SCREAM ADULTS now matches exact titles, so things like Kicking & Screaming stay on their usual channels, and Santana videos stay on HIGH ROTATION.
- Show Now Playing and Mark Watched are separate switches in Settings, instead of one Report Playback switch. They start off, and if you had Report Playback on, both stay on. Thanks to @w6trp.
Channels with too few titles in your library stay hidden until you have enough for them, so not every new channel will show up for everyone.
Versions
- Git tag:
tuner-v1.0.1 - Docker image tags:
1.0.1,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Full guide: https://www.nostalgex.app/self-host
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Self-hosted web tuner 1.0.0 (Docker)
The Nostalgex web tuner now runs on your own server. It's a small Docker image: run it next to Plex, Jellyfin or Emby, then open it in any browser on your network. This is not an Apple TV release; the Apple TV app is unchanged.
docker run -d --name nostalgex -p 8080:8080 --restart unless-stopped ghcr.io/chadmueller/nostalgex:latestThen open http://YOUR-SERVER-IP:8080. Port 8080 already taken? Use -p 8099:8080 and open port 8099 instead. There's a compose file in docker/compose.yaml.
Why run it yourself
- It's plain http on your own network, so it can reach a plain
http://Jellyfin or Emby server. The https site at nostalgex.app can't, because browsers block that. - Plex works either way. nostalgex.app already reaches Plex through Plex's own secure addresses, so for Plex the container just means the page itself comes from your server instead of mine.
- Same tuner as nostalgex.app: same 131 channels, same guide, same daily schedule.
- About a 27 MB download. nginx serving static files as a non-root user, amd64 and arm64.
What it talks to
- Your media server. Sign-in and playback go straight from the browser to your server.
- plex.tv, if you sign in with Plex, like every Plex app.
- The shared metadata cache (Supabase) and the TMDB/OMDb relay on nostalgex.app, on by default, so channels like TEEN MOVIES and TRUE CRIME fill. Only TMDB and IMDb ids leave the browser: no titles, no server address, no credentials. Set
NOSTALGEX_ENRICHMENT=offto turn it off. With Jellyfin or Emby, the browser then talks to the container and your server and nothing else.
No analytics, and no scripts or fonts from a CDN.
Where it's been tested
- Chrome, Safari and Firefox on a Mac.
- iPhone and iPad.
- A Google TV in the TV Bro browser. The remote drives a cursor there, so everything is a button: UP and DOWN under the guide, CLOSE in Settings, and OK on the picture in full screen for channel, sound and exit.
- Fire TV Silk, Samsung and LG: not tested yet. If you try one, tell me how it went.
Also new in the web tuner
These are on nostalgex.app too, since it's the same page.
- Works from a TV browser, and scales down properly on small TV screens.
- Sound remembers your choice. It still starts muted (browsers require that), and comes back on with your first click.
- Settings has a CLOSE button on every screen size.
- The sign-in and loading screens no longer flicker. Retro mode's scanlines and flicker now only run over the picture.
Full guide: https://www.nostalgex.app/self-host
Versions
- Git tag:
tuner-v1.0.0 - Docker image tags:
1.0.0,1.0andlatest - Tags that start with
v(likev1.0.26) are the Apple TV app, not this.
Questions or something not playing? Open an issue or come say hi on Discord: discord.gg/FgnZcr5bDT
Nostalgex 1.0.26
1.0.26 is three releases in one. The App Store went straight from 1.0.23 to 1.0.26, so this release rolls up everything from 1.0.24, 1.0.25 and 1.0.26.
The short version: it simply works a lot better now.
Reliability
- Large library crash fixed. Very large libraries no longer crash right after the guide appears. The library is now saved in small pieces in the background, and the next launch opens from the saved copy instead of scanning again.
- Emby libraries load again. The scan was sending Emby a request shaped for Jellyfin, which returned a 404 on the very first call. Emby now gets its own requests.
- Plex titles fixed. A title cleaner meant for music videos was trimming every film with a dash in its name, so Spider-Man became "Man" and went missing from channels that look for it by name. Films keep their full titles now.
- Clear "why won't this play" cards. When a programme can't play, the channel shows a card explaining why instead of silently skipping ahead.
- Stalled streams recover. If a Jellyfin or Emby stream stalls, Nostalgex asks the server again instead of sitting on a frozen picture.
- Multiple versions and multipart files on Plex. Films with more than one version, or split across several files, play the right version and start in the right part.
- Jellyfin: MP4 files saved with an .mkv extension play, and FIND SERVERS ON MY NETWORK fills in your server address.
- Fuller channels: more channels fill up using TMDB and IMDb data, and whole film series stay off channels outside their genre.
Emby is now officially supported 🎉
A big, warm thank you to the Emby community. You sent a ton of feedback, logs and testing, and that is what got these fixes out. Emby is now officially supported alongside Plex and Jellyfin.
Headline feature: Franchises
FRANCHISES goes through your library and finds the film series in it: Star Wars, Indiana Jones, Rocky, American Pie, whatever you own. Each series gets its own channel and its own switch in Settings.
Server collections come along too, sorted into FRANCHISES or OTHER COLLECTIONS. NOTABLE STARS is gone: actor and director sets moved into OTHER COLLECTIONS, and sets like John Wick and The Hunger Games are filed as franchises.
Quality of life
- iCloud sync (Settings › CONNECTION): every Apple TV on your Apple ID shares the same lineup and settings. Off by default, and server logins never leave the device.
- REPORT PLAYBACK: shows what you're watching in your server's Now Playing and marks a film watched once you've seen most of it, without flooding Continue Watching with everything you surfed past.
- Phone web tuner: nostalgex.app now works properly on a phone, with full width video, the guide in the right place, and the controls behind one menu.
- Tip jar in Settings: Popcorn, TV Dinner, Pizza Night. A tip is just a thank you.
Thanks
Thank you to @w6trp for #18, #19, #20 and #21, all in this release.
For the longer story behind these changes, see docs/DEVLOG.md.
App Store: apps.apple.com/app/nostalgex
Discord: discord.gg
Nostalgex 1.0.24
Emby libraries load, and the app tells you when something won't play
- Emby libraries load again. The app was asking Emby for its libraries using Jellyfin's spelling of the address, and Emby answers that with a 404, so the scan failed on the very first request no matter what your libraries were called or how big they were. Every Emby user hit this. Thanks to Jay for the report.
- When a programme won't play, the app now says why instead of quietly jumping to the next one. You get a card on the channel for a few seconds: whether your server refused it, couldn't keep up, couldn't find the file, or whether it's the Apple TV that can't decode it. It's amber when your server is the thing to go and look at, red when it's the file.
- Finding out which of those it is meant asking your server directly, because Apple TV doesn't tell an app the status code behind a failed stream. So on a failure the app makes one small request to the stream that just died and reads the real answer.
- Jellyfin and Emby step the quality down before giving up. If a stream starts falling behind, the app now asks your server for a smaller one and keeps the programme going. Plex has done this for a while; the other two were skipping straight to the next title on a single stall.
- Error messages name the server you actually connected to. Jellyfin and Emby users were being told to go and check Plex settings they don't have.
- The guide's vertical wrap is steadier. Rolling off the bottom of the channel list now comes back to the top reliably at any list length. Up out of channel one still goes to Settings, as before.
Build 45, built from 7b4090f. This went to TestFlight only and was never submitted to the App Store on its own: everything here shipped to the public in 1.0.26.
Full history: content/changelog.json and the App Store version history.
Nostalgex 1.0.23
Halloween, Christmas, eleven new channels, and a guide that keeps up
- Channel numbers have changed. Every package is now one unbroken run: NOSTALGEX 1 to 19, PRIME TIME 40 to 54, TIS THE SEASON 130 to 136, SCREAM 137 to 140. Music videos move to 200 and up. Packages used to have channels scattered across the lineup, and this leaves room for each one to grow without landing on another.
- SCREAM arrives for October: FRIGHT NIGHT, SCREAM ADULTS, SCREAM KIDS and a new NOSTALGEX HORROR for 70s, 80s and 90s horror. The guide offers it rather than switching it on, nothing joins your lineup until you say yes, and saying no means it waits until next year. While it runs it sits at the top of the guide, with the kids channel first.
- TIS THE SEASON is ready for December with seven channels. HOLIDAZE for everything, SANTA'S LIST for the kid-safe films, NAUGHTY LIST for the grown-up ones, NOSTALGEX CHRISTMAS for anything before 2000, HALLMARK for the TV movies, and two television channels: CHRISTMAS SPECIALS and KIDS CHRISTMAS TV, which find festive episodes of shows you already have by looking at the episode titles.
- Both seasonal packages can be switched on any month of the year from Settings. The month only decides when the guide offers it and when it jumps to the top.
- Four more channels elsewhere. HISTORY & BIO picks up the biopics and history films that only ever surfaced as new additions. DVD SHELF, Y2K COMEDY and Y2K SITCOMS cover 2000 to 2009, which the retro channels stopped short of. MILLENNIUM CARTOONS is now Y2K TOONS and sits with them on 19.
- FRONT LINE is a war channel again. It was matching on words like battle and soldier without checking the genre, so Harry Potter, Pirates of the Caribbean and The Sound of Music were turning up between the war films.
- HIGH ROTATION was asking for music videos from 1980 to 1999, and most libraries date them from whenever the file was made, so it was always empty. It now takes everything, and Y2K and CURRENT SPIN split the rest by era.
- Music video channels fill in. Genres come from Deezer when the server has none, and the year is read from the filename instead of a server date that is usually just the day the file was added, so Y2K and CURRENT SPIN sort by the right decade.
- Channels built into the app can no longer be replaced by collections found on your server. If you had collections turned on, a channel could be quietly taken over and show something unrelated.
- Changing channels plays what the guide says. Tuning into a channel partway through a programme could start that programme from its first frame, or play the next one from the beginning. Jellyfin servers hit this on nearly every channel, because Jellyfin refuses a start time on a segment request. The app seeks on its own now, the way Jellyfin's own web player does.
- Films where the server re-encodes both the video and the audio no longer lose the picture about 24 seconds in on tvOS 26. The app was asking Plex to adjust quality mid-stream, and that adaptive mode hands back segments slower than real time, which the Apple TV gives up on. Quality stepping is the app's own job now.
- A stream the server cannot keep up with steps down to 1080p and carries on from where it was, instead of freezing on one frame or skipping to the next programme. A 4K file that transcodes slower than real time was doing both.
- Dolby Vision films that Plex refuses to convert now play. When the server turns down the Dolby Vision colour space, the app asks once more for the same remux Plex's own Apple TV app gets.
- The guide scrolls properly. Every channel's schedule was being rebuilt on the interface thread every thirty seconds, which froze scrolling for a moment each time, worst on Apple TV HD. That work now happens out of the way.
- Jellyfin and Emby servers reached by hostname, VPN or Tailscale now connect over http. Only plain LAN addresses worked before, and everything else failed looking like the server was down. Typing just an IP finds port 8096, pasting the address from your browser cleans it up, and a failed connection says why.
- Opening the app goes straight to your guide. If you were already signed in, the connect screen no longer appears first, and short waits show the logo instead of a progress bar with nothing to measure.
- Settings now says how much of your library the app actually loaded, in titles, movies, episodes and shows. If that number looks far too small, that is worth telling us about, and it is a different problem from channels looking empty.
- Settings also shows the last playback failure, under RESCAN LIBRARY. If something will not play, that line and the title count above it are what we need.
- REWATCHABLES MOVIES and REWATCHABLES TV fill from Jellyfin and Emby play counts, the same way they already did for Plex. A title needs 3 or more plays.
- Playback reporting works for Jellyfin and Emby too. It is still off until you turn it on in Settings, and a watch here only counts on your own server.
- Audio follows the AirPlay speakers you already picked as the Apple TV's output.
- From anywhere in the guide, Play goes full screen on what's already on. Menu jumps back to that channel, and again to leave the app. Settings is one press up in the package list, which is now wider and easier to read.
Build 44, built from 9568194. On the App Store.
Full history: content/changelog.json and the App Store version history.