Commit graph

305 commits

Author SHA1 Message Date
Jos Vooges | STH
6a637ab2ef Show viewer name on active streams for app clients.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 13:47:12 +02:00
Jos Vooges | STH
79f9d8b7f8 Strip alpha from App Store screenshots (ASC rejects transparency).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 12:45:49 +02:00
Jos Vooges | STH
fb2ca1fde7 Add iPad 12.9/13 App Store screenshots (2048x2732 and 2064x2752).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 12:36:33 +02:00
Jos Vooges | STH
5ef44823c5 Bump Android TV to 0.14.12 for local-subtitles release.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 08:53:16 +02:00
Jos Vooges | STH
33685b8823 Bump mobile 1.0.11 and iOS 0.4.4 for local-subtitles release.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 04:21:19 +02:00
Jos Vooges | STH
300409da06 Auto-apply local sidecar subtitles on iOS playback start.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 04:10:37 +02:00
Jos Vooges | STH
37e7aafdf5 Auto-select local sidecar subtitles on playback start.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 04:08:09 +02:00
Jos Vooges | STH
c3755b48a5 Fix Synology Admin upgrade without docker.sock (rw binary mount).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 03:47:07 +02:00
Jos Vooges | STH
20433dd747 Bump target media-node version to 1.3.5 so Upgrade shows again.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 03:41:45 +02:00
Jos Vooges | STH
9de3ee62d7 Serve local sidecar subtitles via existing client search/fetch and Stremio.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 03:37:08 +02:00
Jos Vooges | STH
c8647a9e9d Show total job count and aggregate download speed on Jobs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 03:21:13 +02:00
Jos Vooges | STH
7b7ca96d91 Allow canceling active downloads and changing Films/4K target mid-job.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 03:05:03 +02:00
Jos Vooges | STH
c75bfc4a97 Only warn missing subtitle after import, not while downloading.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 02:34:40 +02:00
Jos Vooges | STH
bd21b01956 Add full series download flow with episode and season import.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 02:30:40 +02:00
Jos Vooges | STH
e841997399 Show download speed in MB/s instead of Mbps.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 02:05:33 +02:00
Jos Vooges | STH
f1e927726c Show live download progress and Mbps between status and target.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 01:51:28 +02:00
Jos Vooges | STH
a4bb2c591a Add Films/4K/Series download targets and completed jobs panel.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 01:42:34 +02:00
Jos Vooges | STH
19aa18e964 Pass CLIENT_LINK_BASE_URL into master-api on Dokploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 01:21:58 +02:00
Jos Vooges | STH
a6fa9c22fb Add user delete and collapsible device unlink in admin Gebruikers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 00:53:05 +02:00
Jos Vooges | STH
a431bebf3b Unify app users with per-user IPTV and drop shared IPTV fallback.
Gebruikers own their Xtream line and optional Stremio addons; admin Accounts merges into Gebruikers so kids can get filtered lines without leaking the latest addon credentials.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 00:43:55 +02:00
Jos Vooges | STH
bc63ec11bb Fix TypeScript unknown stream type that broke Dokploy master-api build.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 23:33:45 +02:00
Jos Vooges | STH
4c91b692d2 Fix IPTV country ALL bouquets being treated as dump folders.
Keep NL|ALL-style packs visible, only drop pure Alles/All dumps, and coerce XUI object-map category responses.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 23:32:13 +02:00
Jos Vooges | STH
1834d42bd5 Fix IPTV categories timing out under per-category stream fetches.
Return all live categories immediately; only wait briefly for bulk counts and keep a single Alle zenders entry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 23:21:14 +02:00
Jos Vooges | STH
318f613b40 Restore IPTV categories; only drop provider aggregate folders.
Keep one Alle zenders entry, backfill per-category counts when the bulk stream list is incomplete, and do not block the linked IPTV line on lastError.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:20:31 +02:00
Jos Vooges | STH
a0311c031e Add Samsung Tizen TV web client.
Focus-friendly VMC shell for Tizen with live TV and playback against the master API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:16:30 +02:00
Jos Vooges | STH
252bce838b Add native VMC iOS client with VLC playback.
SwiftUI app against master API: link, profiles, browse, live TV, favorites sync, and TestFlight-ready assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:16:29 +02:00
Jos Vooges | STH
2eabd76d93 Improve Android profile management and account settings UI.
Add profile update API calls and richer edit/manage flows on TV and mobile, with version bumps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:16:28 +02:00
Jos Vooges | STH
6a0eee0313 Fix missing IPTV categories hidden by zero channelCount filter.
Show all live categories even when the full stream list is incomplete or category ids do not match exactly; harden Xtream list parsing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:14:12 +02:00
Jos Vooges | STH
cf9cdd43db Add server-synced viewer favorites for cross-device bookmarks.
Per-profile favorites API and migration so clients can share bookmarks after Dokploy deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 15:43:37 +02:00
Jos Vooges | STH
f58a088156 Add Netflix-style viewer profiles with kids filter on master, TV, and mobile.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 03:01:00 +02:00
Jos Vooges | STH
4cd4347daf Prefer series poster in continue watching with episode overlay.
Use the series poster instead of episode stills, and show SxE plus title on Verder kijken cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 00:51:48 +02:00
Jos Vooges | STH
388962e6d1 Fix Live TV EPG by using bulk XMLTV instead of partial short_epg.
Category now/next titles were incomplete because warmup capped streams and per-channel fetches timed out; load xmltv.php once, fix timezone parsing, and fill remaining gaps in the background.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 16:10:46 +02:00
Jos Vooges | STH
16f3f3f93c Improve IPTV EPG caching with SWR, warmup, and spotlight logos.
Speeds up Live TV now/next titles via longer cache, background refresh, and category warmup; also expose logoUrl on spotlight items.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 16:01:06 +02:00
Jos Vooges | STH
826e95aaab Fix Recent sorting with stable discoveredAt on media files.
Backfill from file mtime and set discoveredAt on first index (and size changes) so new titles rise to the top instead of bulk-import path order (W/Z).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 01:00:18 +02:00
Jos Vooges | STH
421baae3d7 Fix recent catalog sorting by file mtime and polish mobile UI.
Use GREATEST(last_seen, created_at) so Recent/Films/shelves show truly newest media after bulk imports, and ship phone-first layout with touch-friendly players.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 00:46:31 +02:00
Jos Vooges | STH
a5e8e18b75 Add Android phone/tablet app module alongside the TV client.
Separate applicationId for Play listings; touch bottom-nav and soft-keyboard search while sharing the same cluster API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 21:07:27 +02:00
Jos Vooges | STH
24e56b2343 Add public privacy policy page at /privacy for Play Console.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 18:48:15 +02:00
Jos Vooges | STH
227dee4a53 Ignore bogus Next-Action probes that spam admin-ui logs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 02:05:51 +02:00
Jos Vooges | STH
a6a922bf05 Sort home shelves by newest first and add TMDB rematch for scanned titles.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 03:42:03 +02:00
Jos Vooges | STH
5749e41148 Fix IMDb backfill timing out by processing in batches with auto-retry in admin UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 03:25:58 +02:00
Jos Vooges | STH
6437e42c30 Add one-click remote node upgrade via WebSocket (v1.3.3).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 03:08:36 +02:00
Jos Vooges | STH
d2046904a0 Fix silent TMDB matching failures and add node upgrade tooling.
Survive IMDb unique conflicts during movie matching, log per-file sync errors, add library lookup diagnostic, and ship upgrade-node.sh plus Admin upgrade button for Unraid/Synology nodes still on 1.2.9.
2026-09-02 02:55:53 +02:00
Jos Vooges | STH
3b3d796452 Make live channel popup category switching instant.
Load channel lists without EPG first, cache categories, and prefetch neighbors so left/right navigation feels snappy while EPG fills in on the background.
2026-09-02 02:19:03 +02:00
Jos Vooges | STH
522cd00e83 Load all channel EPG titles before showing the TV channel list.
Prefetch now-playing titles for every channel when a category opens so program info is visible immediately, not only on row focus.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 01:57:49 +02:00
Jos Vooges | STH
9377c9fa0e Batch-fetch IPTV now-playing titles with server-side EPG cache.
Add epg=1 to the channels API so the app loads program titles in one request per category instead of one call per channel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 01:50:33 +02:00
Jos Vooges | STH
da6159059d Fix live channel menu freeze when switching categories.
Stop bulk EPG prefetch from blocking the overlay; load program titles lazily on focus and keep the channel list visible while categories refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 01:43:53 +02:00
Jos Vooges | STH
7581c5b34a Add EPG and category browsing to live channel switcher.
Prefetch now-playing titles for menu rows and use left/right to switch IPTV categories while the in-play overlay stays open.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 01:26:51 +02:00
Jos Vooges | STH
8cfae01e4b Add in-play channel switcher overlay for live TV.
Press up during playback to open a glass-style side panel with the current category channels; switch zenders without closing the menu until back is pressed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 01:16:53 +02:00
Jos Vooges | STH
e061d23569 Redesign live TV guide with compact Ziggo-style list layout.
Replace large channel tiles with dense rows, horizontal category tabs, and a right-side EPG detail panel while keeping focus restoration behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 00:56:45 +02:00
Jos Vooges | STH
4ba32a2327 Improve live TV focus restoration and modernize channel guide UI.
Focus lands on categories or last watched channel when opening TV or returning from playback, and refresh the category sidebar, channel grid, and EPG bar styling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 00:49:44 +02:00
Jos Vooges | STH
fe4b1210ac Prefer classic Xtream TS URLs for live IPTV playback.
Match Smarters by serving /live/user/pass/id.ts first from master-api, and tune the Android live player buffer for steadier TS playback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 00:06:02 +02:00
Jos Vooges | STH
5524b3269d Add live IPTV TV tab to Android app with per-viewer access.
Expose client IPTV endpoints and admin toggle so viewers with IPTV access get a setup-box-style channel guide and live player in the TV app.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 17:31:05 +02:00
Jos Vooges | STH
159cd48692 Add shelf homepage names and fix TV poster clipping on home rows.
Admin can set a separate homepage label per library shelf; the client home API uses it for row titles while browse keeps the canonical name. Also fixes LazyRow focus clipping on the TV home screen (0.8.4).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 16:20:53 +02:00
Jos Vooges | STH
7c808e9167 Fix library repair failing on playback session foreign keys.
Delete stale playback sessions before removing unavailable or duplicate media file rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 14:56:37 +02:00
Jos Vooges | STH
d044106f77 Fix slow library repair and add TV quality badges on detail pages.
Batch-merge duplicates instead of O(n²) scans, prune duplicate file rows, cap IMDb backfill per run, and improve admin dashboard feedback. Android TV shows compact quality logos and version picker on movie details (0.8.2).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 14:51:26 +02:00
Jos Vooges | STH
57280ef470 Tighten detail action buttons for readability on backdrops.
Use compact solid buttons and a quieter back control so labels stay clear over hero art.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 04:04:35 +02:00
Jos Vooges | STH
6c96b0ca01 Rich movie and series detail pages with logo, trailer, and meta.
API returns clear logos, cast, rating and YouTube trailers; TV detail screens use a Netflix-style hero layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:55:25 +02:00
Jos Vooges | STH
47dcbafa87 Fit full compact search keyboard beside results on TV.
Replace oversized McButtons with a 6-column key grid so the whole keyboard stays visible Netflix-style.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:43:13 +02:00
Jos Vooges | STH
8b3fb1b856 Clarify viewers admin page with expandable cards and clear status.
Separate account, Google Play, and devices; collapse details by default so the overview stays scannable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:17:34 +02:00
Jos Vooges | STH
4124eb2d28 Restore missing fastify dependency removed when adding Google auth.
Docker builds failed because tsc could not resolve fastify after it was accidentally dropped from package.json.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:13:44 +02:00
Jos Vooges | STH
4f76e39124 Move Google Play credentials into admin Settings UI.
Store encrypted service-account and group config in the database so Dokploy env vars are optional.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:10:59 +02:00
Jos Vooges | STH
4d96940b20 Fix TV continue-watching long-press menu and Netflix-style search layout.
Long-press no longer auto-selects the first action; search shows keyboard left and results right.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:04:44 +02:00
Jos Vooges | STH
0eb0c5d367 Add admin Google Play Closed Testing access via Cloud Identity Groups.
Admins can enable or revoke store access per viewer; membership syncs to a configurable Google Group without changing app auth.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 03:04:34 +02:00
Jos Vooges | STH
04d6a38234 Tighten TV back navigation, continue-watching actions, and detail focus.
Long-press continue items to mark watched or hide, scroll-back before exit, confirm quit on home, and focus Play by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 00:25:43 +02:00
Jos Vooges | STH
7e624dd452 Fix shelf catalog pagination so browse shows all titles.
Shelf endpoints now return a real total and page by skip/take instead of capping around 60.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 00:10:26 +02:00
Jos Vooges | STH
38a779c5f8 Show up to 5 Continue Watching items on home with a See all grid.
Cap the home row at five titles and open a continue-watching catalog when more exist.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 00:00:25 +02:00
Jos Vooges | STH
4b3c594609 Fix version/subtitle labels and add OpenSubtitles search in the TV player.
Clean null metadata in stream labels, show readable subtitle track names, and let viewers pause to pick OpenSubtitles during playback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 23:37:40 +02:00
Jos Vooges | STH
2ce482370b Make VMC icon and TV banner high-contrast red for Shield.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 23:14:28 +02:00
Jos Vooges | STH
2a2dbd886f Add VMC app icon and Android TV banner branding.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 22:55:59 +02:00
Jos Vooges | STH
0959764320 Stabilize Android builds by compiling Kotlin in-process.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 22:49:24 +02:00
Jos Vooges | STH
8301d5191f Fix Series tab crash from duplicate LazyRow key series.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 22:43:19 +02:00
Jos Vooges | STH
02ef92d4f8 Brand admin UI as VMC.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 22:18:48 +02:00
Jos Vooges | STH
06e7640ab5 Rename to VMC and polish TV nav, spotlight, Netflix player.
Home billboard shows latest titles; shelves sort by newest files; Films/Series get shelf subnav with search; player overlay closer to Netflix.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 22:18:37 +02:00
Jos Vooges | STH
e22cef06dd Fix ShelfRow.slug for browse-all navigation compile. 2026-08-31 02:09:06 +02:00
Jos Vooges | STH
1b0d5a9f8d Netflix-style TV nav: Films/Series tabs, search, browse-all catalogs. 2026-08-31 02:06:24 +02:00
Jos Vooges | STH
9e7faba240 Fix TV audio via ExoPlayer passthrough, visible controls, version labels. 2026-08-31 01:52:11 +02:00
Jos Vooges | STH
700947d2e7 TV client: LibVLC for full audio, richer home rows, playback track picker. 2026-08-31 01:41:05 +02:00
Jos Vooges | STH
09be3be3a5 Fix McButton parameter order for Compose trailing lambdas. 2026-08-31 01:32:09 +02:00
Jos Vooges | STH
921fe57bd8 Polish Android TV UI and fix player audio/controls. 2026-08-31 01:28:55 +02:00
Jos Vooges | STH
0b107515e4 Add viewer accounts, device linking, and Android TV client foundation. 2026-08-31 01:12:06 +02:00
Jos Vooges | STH
d233878e6d fix subtitle search: IMDb-only to stop wrong movies; restore OS.org hits. 2026-08-30 22:01:39 +02:00
Jos Vooges | STH
942da3a58c Allow re-picking OS.org subtitles on imported jobs; fix OpenSubtitles.com User-Agent format.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 21:45:48 +02:00
Jos Vooges | STH
afcc2e759f Clarify OpenSubtitles.com 403 (User-Agent) and prefer OS.org downloads without .com login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 21:39:47 +02:00
Jos Vooges | STH
93bbd07487 Fail loudly on subtitle download and write sidecar with retry (media-node 1.3.2).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 21:33:00 +02:00
Jos Vooges | STH
e2a9155105 Search OpenSubtitles.com and .org in parallel for more NL subtitle hits.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 20:43:19 +02:00
Jos Vooges | STH
213faa15ea Move Download Station into Settings tabs and harden Downloads for mobile.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 20:15:18 +02:00
Jos Vooges | STH
d89b207acf Store OpenSubtitles credentials in Admin settings and attach NL subs to Stremio streams.
No env vars needed; subtitle text is served from Master after download import.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 18:40:36 +02:00
Jos Vooges | STH
607386b94c Keep release tags in imported filenames and add OpenSubtitles NL pick.
Downloads confirm flow can select a Dutch subtitle that is written beside the movie on import.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 18:35:05 +02:00
Jos Vooges | STH
9843d20614 Fix Downloads search UI and clarify DS destination errors.
Clear results after starting a job, show one clean list layout, and map Synology 403 to a readable destination hint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 18:19:24 +02:00
Jos Vooges | STH
18eb702de2 Add Synology Download Station search and 4K import pipeline.
Admin can search DS, confirm TMDB/IMDb, then auto-move finished downloads into a fixed 4K library folder via the media-node.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 17:42:12 +02:00
Jos Vooges | STH
756b2adda8 Add Accounts menu and mobile card layouts; reorganize admin IA.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 02:36:36 +02:00
Jos Vooges | STH
2489e9b1fc Add admin password change form in Settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 02:19:33 +02:00
Jos Vooges | STH
d53a4f9297 Make admin UI mobile-first with bottom nav and installable PWA support.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 02:11:40 +02:00
Jos Vooges | STH
f1b6923287 Fix stream progress to use bytes sent instead of range offset probes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 01:45:50 +02:00
Jos Vooges | STH
359a3c6883 Dedupe live streams to one row per viewer and ignore probe sessions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 01:35:20 +02:00
Jos Vooges | STH
0f7b566626 Add Plex-like live streams with viewer labels and progress, plus admin UI redesign.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-29 01:24:55 +02:00
Jos Vooges | STH
106aa996a4 Fix storage double-count, add incremental catch-up scan, improve 4K detection.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 07:39:43 +02:00
Jos Vooges | STH
a26d1a4c45 Add Synology media-node install script for multi-NAS enrollments.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 04:25:23 +02:00
Jos Vooges | STH
76c989ba3c Show node scan status and fast-path shelf updates during library sync. 2026-08-26 03:00:47 +02:00
Jos Vooges | STH
71c0244dd9 Show shelf paths in settings and force rescan after path changes. 2026-08-26 02:18:19 +02:00
Jos Vooges | STH
8200b908e1 Prefer longest scan root for shelf assignment and refresh Stremio shelf manifests. 2026-08-26 02:05:13 +02:00
Jos Vooges | STH
788cfa1255 Add manual TMDB/IMDb rematch for movies and series in admin. 2026-08-26 01:56:29 +02:00
Jos Vooges | STH
887f750f92 Repair Cinemeta/IMDb linking after path migration and harden library sync. 2026-08-25 22:02:54 +02:00
Jos Vooges | STH
21d0d7868e Serialize library sync to prevent Prisma connection pool exhaustion. 2026-08-25 21:30:48 +02:00
Jos Vooges | STH
a4dfb1b472 Add admin-managed node scan paths, restart, and shared library shelves.
Shelves (e.g. Kids Films) are defined in settings; node roots bind paths to shelves so the same Stremio catalog aggregates content across nodes.
2026-08-25 20:47:41 +02:00
Jos Vooges | STH
002472e235 Mark IPTV live streams notWebReady and prefer MPEG-TS for XUI playback.
Stremio requires notWebReady for non-MP4 so the local streaming server follows XUI redirects; HLS auth often hangs while TS works.
2026-08-25 17:05:51 +02:00
Jos Vooges | STH
2df8a6a83c Use XUI /play/token stream URLs from m3u playlist for live TV.
Classic /live/user/pass/id hangs on real live channels on XUI 1.5; created_live (24/7) still worked, which matched the reported symptom.
2026-08-25 16:46:55 +02:00
Jos Vooges | STH
b9900e1c3a Fix direct IPTV playback: drop notWebReady and encode Xtream credentials in URLs. 2026-08-25 16:42:14 +02:00
Jos Vooges | STH
9b7e26041e Add Xtream IPTV per addon token with Live TV, EPG, and icons. 2026-08-25 16:32:45 +02:00
Jos Vooges | STH
b78f7af24f Improve Stremio logos and enrich movie/series meta from TMDB.
Prefer Metahub/medium logos, add cast, directors, rating, trailers and related fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 14:23:42 +02:00
Jos Vooges | STH
1da247d2fb Backfill series IMDb IDs and resolve Cinemeta tt:S:E streams locally.
Catalog/meta stay on mcseries; tt is streams-only so episode lists stay intact.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:48:46 +02:00
Jos Vooges | STH
fc842aa145 Process all pending movies in IMDb backfill instead of capping at 200.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:41:56 +02:00
Jos Vooges | STH
a9df10ed7c Fix TypeScript null check in movie stream consolidate.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:37:06 +02:00
Jos Vooges | STH
5e11811dea Backfill movie IMDb IDs so Cinemeta detail pages resolve local streams.
Admin button + startup job; log tt stream misses without touching series meta.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:35:30 +02:00
Jos Vooges | STH
82bf5f5844 Restore movie streams via IMDb IDs while keeping series on private IDs.
Claim tt for streams only, store movie imdb from TMDB, consolidate duplicate movie rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 11:24:02 +02:00
Jos Vooges | STH
38bd4a822e Fix series showing only S01E01: consolidate duplicate series and list from files.
Merge title/TMDB siblings on meta open, drop defaultVideoId, show episode file counts in admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 05:22:09 +02:00
Jos Vooges | STH
8b3ef15dc9 Fix TypeScript null check in series episode loader.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 05:13:19 +02:00
Jos Vooges | STH
1c76b0cd32 Fix series episode list: private IDs, unique released, dual episode lookup.
Bump addon to 1.4.0 so Stremio refreshes catalog away from IMDb/Cinemeta merges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 05:11:58 +02:00
Jos Vooges | STH
0ebaaa1d99 Stop using IMDb IDs for library series so Stremio no longer merges with Cinemeta.
Always use mcseries-{uuid}, load all episodes with files, unique released dates per episode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 05:08:38 +02:00
Jos Vooges | STH
6974ac39e8 Fix Stremio series episodes per addon SDK: require Video.released, safer IDs, wildcard meta routes.
Stremio drops videos without ISO-8601 released; also prefer IMDb IDs and mcseries- ids without extra colons.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 05:03:24 +02:00
Jos Vooges | STH
189448ebdb Decouple series episode listing from logo/still columns so meta cannot go empty again.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:57:55 +02:00
Jos Vooges | STH
a0785962ab Add series clearlogo and restore episode thumbnails safely on seasons meta path.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:53:45 +02:00
Jos Vooges | STH
1f180476d1 Restore series meta via seasons path; keep TMDB enrich off the critical path.
Series listing broke after switching to series.episodes and selecting stillUrl — revert to the pre-TMDB catalog-aligned query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:50:46 +02:00
Jos Vooges | STH
6a2dc108de Fix TypeScript where-clause type that broke master-api Docker build.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:45:40 +02:00
Jos Vooges | STH
f6482be692 Hardening series meta: survive missing still_url and empty available flags.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:44:18 +02:00
Jos Vooges | STH
52e2be7296 Fix empty series episodes: never block Stremio meta on TMDB enrich or bad air dates.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:33:21 +02:00
Jos Vooges | STH
9c3fd94f03 Make scan settings default without Unraid env and editable per node in admin.
Legacy 6h configs migrate to watch + nightly 03:30; master pushes schedule via HELLO_ACK/CONFIG_UPDATE.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:27:12 +02:00
Jos Vooges | STH
f113a1ad8c Watch-first library updates with nightly 03:30 catch-up, plus TMDB episode titles and thumbnails.
Realtime fsnotify handles add/remove; optional interval scans default off; Stremio series meta now enriches episodes from TMDB (name, still, air date).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 04:21:35 +02:00
Jos Vooges | STH
f24b3f1409 Fix Stremio catalog pagination and reduce duplicate movie/series rows.
Catalogs now support skip so Stremio can load more than 100 titles; matching prefers TMDB and can merge orphans; admin can dedupe and see available vs scanned counts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 03:55:27 +02:00
Jos Vooges | STH
b5236188c6 Add admin control to list/disable/delete addons and permanently remove nodes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 03:33:49 +02:00
Jos Vooges | STH
cc7b7c8505 Fetch TMDB metadata in Dutch and improve Stremio stream labels.
Show quality (1080p/4K) as the stream badge with codec and filename details underneath.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 03:25:38 +02:00
Jos Vooges | STH
196e78d1f0 Stop HELLO from overwriting node publicStreamUrl.
Admin can fix URL typos without recreating the Unraid container env.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 03:04:29 +02:00
Jos Vooges | STH
dcc10fc7d3 Allow editing node publicStreamUrl in admin.
Helps fix typos like node01 vs node1 without re-enrolling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 03:02:16 +02:00
Jos Vooges | STH
974b3124d0 Fail closed on missing playback ACK; log node /play hits for diagnosis.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:47:41 +02:00
Jos Vooges | STH
2aac72cd71 Revert stream proxy: Stremio plays directly from the media node.
Master only creates the playback session and returns the node URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:45:16 +02:00
Jos Vooges | STH
97de6439b5 Proxy Stremio playback through Master to avoid node hairpin NAT.
Clients only talk to master.vonas.nl; Master fetches the node stream server-side and pipes Range responses.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:44:30 +02:00
Jos Vooges | STH
6f78f13af5 Serve direct node stream URLs; ACK library sync without blocking WS.
Stremio was hanging on Master 307 redirects. Sessions are created in stream.json with the node play URL. Full sync ACKs immediately so playback stays responsive.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:40:50 +02:00
Jos Vooges | STH
181ab0b7f6 Fix Fastify 5 redirect signature for playback.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:36:24 +02:00
Jos Vooges | STH
0608020556 Stop Stremio binge prefetch creating phantom next-episode streams.
Remove bingeGroup, skip session creation on HEAD probes, and hide stale sessions in admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:35:29 +02:00
Jos Vooges | STH
b1d008e8aa Fix playback hang: raise stream connection limit and freshen sessions.
Stremio opens many Range requests behind NPM; max 8 per IP caused stalls. Use lazy play URLs, hex tokens, CORS, and validate files before session ACK.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:34:09 +02:00
Jos Vooges | STH
eb8ae1e85a Fix Stremio playback, folder-aware scan, and remove STH branding.
Parse Plex-style Title (Year) and Show/Season folders; restore notWebReady with direct node stream URLs; hide unavailable titles by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 02:16:46 +02:00
Jos Vooges | STH
93dbf44fb8 Fix LibraryEventType switch cases for TypeScript build.
Use FILE_ADDED/FILE_UPDATED/FILE_REMOVED to match shared-types.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:59:28 +02:00
Jos Vooges | STH
7519c9228f Batch full library sync over WebSocket to avoid connection resets.
Large libraries (~30k files) overflowed a single WS message; sync now runs in ACK'd batches with event buffering on the node.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:58:31 +02:00
Jos Vooges | STH
7741500e73 Fix Stremio playback: lazy sessions, remove notWebReady, node ACK.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:47:54 +02:00
Jos Vooges | STH
3a7151e3ae Add one-command Unraid media-node install via Master.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:16:47 +02:00
Jos Vooges | STH
72a323e451 Do not force Secure cookies in production when site is served over HTTP.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:04:47 +02:00
Jos Vooges | STH
9b557cee54 Fix dashboard BigInt crash when storage fields are missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:03:04 +02:00
Jos Vooges | STH
39ecf1af56 Fix admin session cookie by setting it on the admin domain after login.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 01:00:16 +02:00
Jos Vooges | STH
29595dd98f Fix Fastify Stremio routes: wildcard must be last path segment.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:55:20 +02:00
Jos Vooges | STH
4e232e8ef6 Fix master-api Docker runtime: flat deps, explicit env, longer health start period.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:48:41 +02:00
Jos Vooges | STH
96a0bbface Use generic Aanmelden title on login page.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:46:10 +02:00
Jos Vooges | STH
0a007aae83 Fix admin→master connectivity via host fallback; use generic login branding.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:45:53 +02:00
Jos Vooges | STH
89916d2c0b Fix admin login: runtime API proxy to master-api instead of broken build-time rewrite.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:43:22 +02:00
Jos Vooges | STH
4e21eb76ae Fix admin-ui Docker image: build as single app so server.js is at /app/server.js.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:40:46 +02:00
Jos Vooges | STH
a5c6fd5fe4 Initial commit: Distributed Stremio Media Cluster V1
Master API, Admin UI, Go media-node, Docker/Dokploy deploy configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 00:17:04 +02:00