Repository navigation
Replies: 43 comments 7 replies
|
Not on the roadmap. Roku needs its own language and I'm one person keeping the Apple TV app and the web tuner in step. If a self-hosted web version lands it still won't reach Roku. Feel like this is one lower on the list, I think docker container or an android tv app might work better |
|
Hi! Since Roku isn't on the roadmap, I built a port: It treats Nostalgex as the source of truth. It's a separate MIT repo that credits Nostalgex, so it adds nothing to your
|
|
This is great, thanks for building it. I read through it: it only talks to plex.tv and your own server, stays read-only, and the filter vectors come straight from our filter script, which is exactly how I'd want parity checked. I haven't fully decided how Roku fits yet, so let's keep it as an open idea for now. Longer term, I could see it living in this repo as roku/, so it reads the same channels.json, memberships and franchise files and picks up channel changes automatically. If we go that way, you'd be credited and I'd love to have you as co-maintainer. On your questions: the JS is the reference (scripts/nostalgex-channel-filter.cjs and the shared JSON files). New since your snapshot: FRANCHISES builds a channel per film series from franchises.json and scripts/nostalgex-franchise-builder.js, with a golden file in scripts/franchise-golden.json. Let's hold the logo until we settle where it lives. I need to order a Roky to give it a try and share feedback here. Come hang out in the Discord too: discord.gg/FgnZcr5bDT |
|
Thanks! Yes, I'd be glad to make it an official Nostalgex app for Roku. A few things to settle first, so we both know what we're agreeing to:
Franchise channels are in, following the Apple TV app. Films and shows the builder places on a classic join that channel (The Mandalorian on STAR WARS). Every other franchise found gets a switch under FRANCHISES and, when it's on, a channel from CH 300. STAR TREK and FAST & FURIOUS start on. It ports Enrichment is next. Two small things for the relay:
|
|
The relay accepts You shouldn't need any CORS handling, since roUrlTransfer isn't a browser and sends no Origin. Clearing the client filter is all it takes. The shared metadata cache in Supabase is readable with the anon key that's already in the repo, so it's worth checking there first and only hitting the relay on a miss. That's what the other two do. One shared limit worth knowing: OMDb's free tier is 1,000 requests a day across every client together, so cache aggressively. |
|
Thanks for opening the relay so quickly! Enrichment is now running on my two Rokus. First run against my library: of 894 TMDB ids, 880 came from the shared Supabase cache and 14 through the relay as One small thing: the anon key isn't actually in the repo. The source has empty placeholders, and the values go in at build time. I took the URL and key from the On the logo: thank you for offering it! I've grown fond of the port's own logo, icon and splash, so I'd like to keep those for now, which also saves you sorting out artwork. The other three (PRs or commit access for |
|
Put it on my Roku today (Stick Plus, OS 15.3.4). Your vectors all pass on the device, the schedule matches the web tuner, and enrichment through the relay works. Nice work. What we hit, biggest first:
On the look, I'd love it as close to the Apple TV as you can get. The App Store page and nostalgex.app/screens have full-size shots, and the views are in Your questions: |
|
Thanks for trying it on a real Roku, and for such a clear list! All six are fixed, in
Server collections are also in, as channels from CH 500, ported from Thanks for settling the rest. Next is the look, guide first, matched to the Apple TV screenshots and |
|
Sorry, I missed your follow-up before posting, since it was a reply under your comment. Thanks for setting the bar; I'll treat those four as what has to be true before it goes in the Channel Store. Where each stands:
And yes please to the console logs. The |
|
A fresh install's guide was on screen 38 seconds after signing in, on a TCL 43S45 with the default lineup and one 5,363-item owned server. That's well under your 2-minute bar. The rest of the bar is below, measured on my two TVs, with the two misses where they come up: one slow converted channel, and a 70-channel lineup that's still over 2 minutes. The build is
The numbers and how each was taken are in PORTING.md. Your console log from the stick would still help most on two lines: |
|
A first run with FRANCHISES on now has the guide on screen in 103 seconds, under your 2-minute bar. That's 61 channels on the TCL 55R617 (OS 15.3.4, the same as your stick), the TV where 70 channels took 131 s last time. Two speed-only changes did it, and neither changes a single result:
The vectors generated from your engine, and the franchise tests, still pass. Both benchmarks are in Most of the rest was reading the library: 57.7 s this time against 8 to 12 s on this TV's earlier runs, because one request to Plex timed out and was retried. I haven't changed that step. The build for your stick is |
|
Put Your log lines from my stick:
The guide looks really close to the Apple TV now. What's left is mostly making it behave like the Apple TV:
Haven't tried every package on yet. I'll do that on the next build. |
|
All six are in 1. Onboarding (
2. Settings order (
3. Switching a package on (
4. Full screen (
5. Overlay bug (
6. Branding (
The build for your stick is
|
|
Please use The progress screen rebuilt itself from scratch on every progress update, and the Collections step sends three updates per collection. Timing lines on the TV showed where it went: each batch of 25 collections came back from Plex in about 1.1 s, but the screen updates after it took 66 s for the first batch and 136 s for the second. Now an update that keeps the layout only changes the detail line and the bar. On the next full scan on the same TV, the 67 collections took 10.3 s, with 1.5 to 2.7 s of screen updates per batch. The Library step's show counter went through the same rebuild. On that TV the library read took 12.2 s before and 8.2 s after, but that's one run each, so I wouldn't read much into it. I noticed it because the screensaver came on partway through and pressing Back from it closed the app. A load that stalls like this on your stick could look like the app quitting. The sign-out and sign-in steps and the four log lines from my last reply all still apply, on |
|
Put Your lines from my stick:
Next round:
Heads-up: we're going to turn retro mode up on the Apple TV. I'll send the new numbers so the Roku matches. |
|
@tydude001 we ported the clock-change fix into
One signature change. Tests. Small one for The Swift and JS side is |
|
@tydude001 now that the clock fix is out, here's where Roku sits against the Apple TV, so you can pick things up. Phase 1 is what testers hit first, in order. S is small, M is medium. Apple TV paths are under Phase 1
Phase 2, after phase 1
Ours, not yours
How we split it: pick what you want and say which here before you start, so nobody doubles up. PRs into |
|
We'll take 2, 3 and 4 from phase 1: decode-aware direct play, plain http to home hostnames and Tailscale, and the version line. Each as its own PR into
Thanks for porting the clock-change fix. We'll start from |
|
The beta on our living room TV (55R617, OS 15.3.4): about 50 s from Plex sign-in to the guide, and about 2 s to relaunch. That's a first launch with the full scan of our library (5,373 items), counted by hand. Our 43" ran the three PRs below instead of the beta. PRs from the fork for phase 1's 2, 3 and 4, each checked on our 43" (OS 16.0.4) before opening:
|
|
Quick heads-up before you dig in tonight. We ported the new Apple TV sign-in to Roku (find my server first, Quick Connect first, Emby user tiles, new look on the connect screen) and it's landing on main tonight. It rewrites most of ConnectView, so #47 and #48 will need a rebase on top of it, sorry about that. The rest of your PRs shouldn't be affected. I'll go through all of them tomorrow. Thanks for all of it, seriously! I'm going to hold off on any feature development for the next few days for us to get the roku beta to a stable spot! |
|
Quick round-up from today so nothing's blocking you. Merged: #50, #47 and #46. Thanks! Still open on your side:
New, and probably the most important one: Dolby audio is still silent on Emby after #46.
Small ones for later:
On our side we're sorting out the Roku store questions (the getUserData/RFI flag and the plex.tv/link code) with Roku support, so you don't need to touch any of that. |
|
@tydude001 follow-up on the silent Dolby audio on Emby, with the exact request that gets sound on my stick. I measured it on my Streaming Stick Plus (OS 15.3, audio set to Stereo) against Emby 4.10.1, using a small throwaway player that plays the same address the way What gives sound. All of it is the HLS part of
What I measured (the player's audioFormat, plus what Emby's ffmpeg did):
No difference: Two things I couldn't check this way: actually hearing it (I'm going by what the player reports), and lip sync joining mid-programme on TS with HEVC. I'll check both on the stick when your PR is up. Side note, separate from this fix: without |
|
#55 has your four changes, and the lip sync you couldn't check holds on the server side. HEVC 10-bit on TS, joined about 30 minutes in, puts the sound within 5 ms of the picture on Emby and on Jellyfin. I measured that by cross-correlating the stream's audio against the file's own. On our lab Emby 4.10.1 and Jellyfin 12.2, the old request copied AC3 and E-AC-3 as stored, and the new one gives stereo AAC in TS with sound. Jellyfin was copying the Dolby track too, so it's fixed there as well. Hearing it on your stick is still the real test. Also up:
Agreed, the default-track language belongs with the audio language parity item, so I've left it out of #55. |
|
@tydude001 the rest of the Roku parity list is up as issues now, all labelled roku parity. Each one has what a tester sees, the Apple TV code that does it, where the Roku stands and what done looks like. Stability first: #57 (a stream that fails sits on an error), #58 (4K remuxes through the server), #59 (rebuffering never steps down), #60 (empty guide on a first run), #61 (no way to stop waiting on a slow server). Then the rest, in order: #62, #63, #64, #65, #66, #67, #68, #69, #70, #71, #72, #73, #74, #75, #76. Pick up whichever you want, no need to ask. New bugs from testers will land as issues too, so that's the one place to look. |
|
@tydude001 quick update before you dig in tonight. Merged: #77. The Matrix plays on my stick now, and the colours look normal on my TV with the 8-bit re-encode. Roku 1.0.5 goes to the beta tomorrow with it. If you're looking for what to grab next, this order would help most:
No rush on any of it. I'll review and pull in whatever you've got tomorrow. |
|
@tydude001 merged #81, thanks for the quick rebase. #82 and #80 are in too. Small ask when you get a sec: could we get a dev-only shortcut to play a specific film on demand? Something like a deep link on the sideloaded dev channel that takes a server item id and just plays it full screen ( No rush, whenever it fits around #59. |
|
@chadMueller The dev shortcut you asked for is up as #86: on a sideloaded build, curl -d '' "http://<tv>:8060/launch/dev?contentId=item%3A<id>&mediaType=movie" # at launch
curl -d '' "http://<tv>:8060/input?contentId=item%3A<id>&mediaType=movie" # while it runsThe id is Plex's ratingKey, or the Also up: #87, the STOP WAITING block for #61. After 60 s with nothing back from the server it offers STOP WAITING, and at 210 s it stops on its own, as And #88 ports the Apple TV's schedule to the Roku, the port your dev log says the Roku is waiting on. |
|
@tydude001 while you're on the #86 fix and the #88 rebase, want a hand with some of the parity list? Your bundle covers #57, #59, #61 and #75, which leaves about 15 open. I don't want to step on anything you've got going, so tell me which ones you'd rather we take and which you want to keep. Some that look self-contained to me:
We'd do each one as its own PR against main, small and tested on my stick, and tag you to review. If you've already started on any of them, or you'd rather keep the whole list, that's totally fine too. Just say so. Also on our side right now: testing the open beta bug reports on my stick (Emby sound, the Plex rescan, the commentary track, subtitles), and checking the build against Roku's certification list before we submit to the store. I'll send you anything that's yours with repro steps. |
|
@chadMueller Thanks, yes please: take #66 and #76 whenever you like, and #67 and #73 once the nine are in. None of our PRs fixes any of the four. But #67 would change |
|
@tydude001 Roku 1.0.6 is on the beta, and the Roku is close to parity with the Apple TV. Thanks for #106 and #107, both in. What's in 1.0.6: language defaults for audio and subtitles, forced subtitles on Jellyfin and Emby, MY COLLECTIONS on Jellyfin and Emby with FRANCHISES split from OTHER COLLECTIONS, SHOW NOW PLAYING and MARK WATCHED (both off by default), a first run with a small library no longer lands on an empty guide, a six-hour library refresh, Dolby Vision profile 5 films kept off channels, and fixes for a re-tune loop and for a failed stream skipping the film. What's left, all labelled roku parity. Each has the Apple TV reference, where the Roku stands and what done looks like: #65 STREAM QUALITY setting These are yours if you want them, no need to ask. If you'd rather skip one, say so and I'll know. I review each PR and test it on my stick. One change from before: HIGH ROTATION genres (#73) is parked while I rethink how music videos and separate libraries work across all the apps, so skip that one. The dashboard test credentials and the store listing are on my side. |
Uh oh!
There was an error while loading. Please reload this page.
Amazing service! I saw the Apple TV app, and the request for a FireStick version, is a Roku App on the roadmap? Thank you!
All reactions