Commit graph

340 commits

Author SHA1 Message Date
Jos Vooges | STH
5a990ae346 Enrich Ziggo/ESPN live-event art in master-api from official EPG/Watch APIs.
Replace FAAB live-channel thumbs with Gracenote (Ziggo GO) and ESPN artwork so all clients get correct Racing/ESPN images without app changes.
2026-09-21 02:07:17 +02:00
Jos Vooges | STH
bfeb270459 Polish iOS Events like Android TV and fix ClearKey/PiP playback.
Sport shelves and neon Events UI; HLS ClearKey proxy; safer drawable/PiP teardown for stable video and subtitles.
2026-09-20 02:02:38 +02:00
Jos Vooges | STH
1efdc3bef0 Fix VLCKit 4 sharedLibrary rename for Release archive. 2026-09-19 15:56:25 +02:00
Jos Vooges | STH
4064406d20 Move ResumeOnce out of closure for Swift compile. 2026-09-19 15:51:12 +02:00
Jos Vooges | STH
77ddc8b6a3 Fix ClearKey live/events on VLCKit 4 (adaptive demux, async proxy, no PiP vout). 2026-09-19 15:50:44 +02:00
Jos Vooges | STH
878aa86121 Fix VLCKit 4 parse API rename for iOS Release build.
EOF
2026-09-19 15:31:52 +02:00
Jos Vooges | STH
a38824db27 Add iOS Picture in Picture via VLCKit 4 upgrade. 2026-09-19 15:26:27 +02:00
Jos Vooges | STH
796edf36db Add Events sport chips and shelves with sportBucket (TV 0.14.65).
Normalize FAAB events into stable sport buckets on master-api, group the TV Events tab by sport (with client fallback), and bump Android TV to 128/0.14.65.
2026-09-19 14:26:43 +02:00
Jos Vooges | STH
d1b627752c Fix iOS ClearKey live-list DASH proxy immediate stop (0.5.2).
Preserve BaseURL/Location, warm up MPD, clear sinf for VLC, and retry early stops so custom live DRM plays instead of Gestopt.
2026-09-19 06:53:13 +02:00
Jos Vooges | STH
fac38d905e Enable iOS ClearKey DASH playback via local CENC decrypt proxy.
MobileVLCKit cannot decrypt ClearKey; the app now decrypts segments in-process and feeds plain DASH to VLC, removing the coming-soon DRM dead-end (0.5.1/13).
2026-09-19 06:37:11 +02:00
Jos Vooges | STH
3e2549c33a Fix iOS Live TV streamId String decode and add Events + ClearKey path.
Restore channel list decoding for string/custom IDs, URL-encode play paths, parse DRM/heartbeat, and ship Events tab (0.5.0/12) with best-effort VLC ClearKey.
2026-09-19 03:59:51 +02:00
Jos Vooges | STH
9b6f8155d0 Add Live Events tab to mobile app 2026-09-19 03:40:16 +02:00
Jos Vooges | STH
340480e14f fix Events provider chip focus crash on filter change 2026-09-19 02:47:07 +02:00
Jos Vooges | STH
ccb42db2a1 fix Events chips focus, default Back on upcoming detail, restore Nu live rail 2026-09-19 02:38:14 +02:00
Jos Vooges | STH
55710da15b remove Events tab hero for simpler browsing 2026-09-19 02:14:28 +02:00
Jos Vooges | STH
7ace6ab214 fix Prime/Amazon event art: BOXART cover, HERO backdrop, real logos.
Add imageBackdrop and retune scoring so card rails use BOXART-16X9, detail/hero prefer HERO-16X9, and channels-logo PNGs no longer win as cover or logo. TV 0.14.61.
2026-09-19 01:51:29 +02:00
Jos Vooges | STH
d549609dbe fix Events focus oscillating between hero and card on back 2026-09-19 01:34:20 +02:00
Jos Vooges | STH
0099f9079c restore Events focus to opened card without jumping to hero 2026-09-19 01:28:10 +02:00
Jos Vooges | STH
929a2b1137 polish Events detail and stop hero jump on provider chips 2026-09-19 01:19:56 +02:00
Jos Vooges | STH
5115682427 fix Events hero overlay/focus chain and skip imageless heroes 2026-09-19 01:08:53 +02:00
Jos Vooges | STH
79f15719a3 admin streams presence for events/live-lists with client heartbeat. 2026-09-19 01:04:04 +02:00
Jos Vooges | STH
3c356001b2 Fix Android TV Events focus hang after tab switch and detail back.
Simplify Events focus to the Home hero pattern: no dual-bound FocusRequester, hero outside LazyColumn, and stable CTA restore so D-pad stays usable.
2026-09-19 00:51:43 +02:00
Jos Vooges | STH
cbacf1af41 Polish TV Live Events focus/playback and add per-viewer provider access in admin/API.
Improves Android TV Events navigation and player UX, and gates schedule streams by viewer Live Events ACL plus prisma migration.
2026-09-19 00:39:03 +02:00
Jos Vooges | STH
ac951617cb Add Live Events across API/admin/Android TV, mobile ClearKey/DASH fixes, and tvOS app.
Wire FAAB schedule-events into master-api and admin IPTV settings, add Android TV Events UI, fix mobile ClearKey/stream playback (DASH + bump 1.0.23), and scaffold the Apple TV (VMCTV) client with docs/scripts.
2026-09-18 23:34:42 +02:00
Jos Vooges | STH
a7e3d03496 Bump Android TV to 0.14.51 (114) for Play Console release. 2026-09-18 20:27:02 +02:00
Jos Vooges | STH
bdefebbcc7 Use truncated MPD URL in live-lists table rows. 2026-09-18 20:11:26 +02:00
Jos Vooges | STH
b49a9144b2 Truncate MPD URLs in live-lists channel overview. 2026-09-18 20:08:42 +02:00
Jos Vooges | STH
94bf98ded7 Include custom live lists in admin TV category order.
Lists appear alongside XUI categories and respect the saved order in apps.
2026-09-18 20:08:00 +02:00
Jos Vooges | STH
c97374c9cb Add Dutch TV logo picker from tv-logo/tv-logos for live channels.
Admin can search NL logos like EPG and store the jsDelivr CDN URL.
2026-09-18 20:00:20 +02:00
Jos Vooges | STH
f6c48ff488 Inject ClearKey PSSH when MPD lacks default_KID for Odido-style DASH.
Also improve live player DRM error logging for easier diagnosis.
2026-09-18 19:53:49 +02:00
Jos Vooges | STH
2a734cbcd1 Fix ClearKey live playback by using LocalMediaDrmCallback.
OkHttp cannot fetch data: license URIs, which caused SOURCE_ERROR on DRM channels.
2026-09-18 19:37:27 +02:00
Jos Vooges | STH
0700c79878 Add Media3 DASH module for ClearKey and clear MPD live playback.
Without media3-exoplayer-dash ExoPlayer could not construct DashMediaSource.
2026-09-18 19:20:46 +02:00
Jos Vooges | STH
d8f018bd07 Allow live channels without ClearKey KID/KEY.
Clear DASH streams can be saved with name + MPD only; DRM remains optional.
2026-09-18 19:13:44 +02:00
Jos Vooges | STH
df9782c8f5 Add admin-managed ClearKey/DASH live channel lists for Android TV.
Custom lists merge into IPTV categories per viewer, with encrypted keys and ExoPlayer ClearKey playback.
2026-09-18 18:53:04 +02:00
Jos Vooges | STH
21efba1af1 Serve compact TMDB image sizes on home so posters and heroes download faster. 2026-09-17 04:36:05 +02:00
Jos Vooges | STH
da7b5df51f Speed up client home API with lean queries, batch continue-watching, and short cache. 2026-09-17 04:29:40 +02:00
Jos Vooges | STH
3c12fbc869 Bump media-node target version to 1.3.12 so admin offers the sync-fix release. 2026-09-17 03:14:45 +02:00
Jos Vooges | STH
34130ab412 Cut full-sync Postgres load: skip no-op updates, batch lookup, one post-startup sync.
Also cap startup IMDb backfill and bump media-node to 1.3.12 so upgrades no longer match the library twice.
2026-09-17 03:07:29 +02:00
Jos Vooges | STH
7e2dd68da9 Prevent HELLO sync before startup scan finishes and reparse paths on master.
Bump media-node to 1.3.11 so Season 10 Plex-style files are indexed and synced reliably after upgrade.
2026-09-17 02:24:52 +02:00
Jos Vooges | STH
af1f471b29 Fix dropped library sync after startup scan and bump media-node to 1.3.10.
Queue a second full sync when one is already running so newly indexed seasons are not lost after upgrade/restart.
2026-09-17 02:07:52 +02:00
Jos Vooges | STH
075153da8f Bump media-node target version to 1.3.9 for the Plex-style parser fix.
Admin Nodes shows an update when connected nodes are still on 1.3.8.
2026-09-17 01:43:34 +02:00
Jos Vooges | STH
84e09bdf36 Fix Plex-style episode parsing and add OMDb scan matching plus TV audio passthrough.
Recognize S10E01 Title.mkv under Season folders, fall back to OMDb when TMDB misses, and let Android TV choose PCM vs HDMI passthrough per device.
2026-09-17 01:39:25 +02:00
Jos Vooges | STH
db8e3e572f Add OMDb admin settings and poster API for IMDb metadata.
Store the key encrypted in the DB (not git) and proxy OMDb posters so clients never see the API key.
2026-09-16 23:33:01 +02:00
Jos Vooges | STH
e8d1c4bfee Improve admin metadata linking with full TMDB search and ID support.
Merge NL/EN TMDB hits and accept TMDB ids/URLs so titles missing on IMDb can still be linked.
2026-09-16 22:41:55 +02:00
Jos Vooges | STH
23c81f2b83 Make admin movies/series search-first instead of loading the full library.
Avoids heavy mount queries so lookup stays fast and server load stays low.
2026-09-16 21:45:16 +02:00
Jos Vooges | STH
14556c82f3 Prefer NL then English TMDB posters over original-language art.
Avoids German (and similar) posters when no Dutch artwork exists but English does.
2026-09-16 21:31:55 +02:00
Jos Vooges | STH
40a5ecd435 Fall back to English TMDB titles when Dutch is missing.
Prevents German (and other) originals from being stored as the display title when no nl-NL translation exists.
2026-09-16 20:40:43 +02:00
Jos Vooges | STH
93d96d7bb1 Fix TV controls nav after scrub; bump Play release to TV 0.14.49 and mobile 1.0.22. 2026-09-16 01:10:37 +02:00
Jos Vooges | STH
d9785975e0 Fix Android TV scrub: left/right always seek like Netflix, polish player controls. 2026-09-16 00:57:54 +02:00
Jos Vooges | STH
276467f09b Add Google Cast and VMC phone-to-TV remote, plus TV guide focus fixes. 2026-09-16 00:52:56 +02:00
Jos Vooges | STH
b566454f8a Add Android TV guide tab with bulk EPG grid and live play actions.
Expose a cached multi-channel guide API and a TV Gids screen with timeline, programme details, favorites, and watch-when-live.
2026-09-15 21:09:48 +02:00
Jos Vooges | STH
bbb57baf81 Fix EPG showing literal null between title and category on Android TV.
Treat org.json optString JSON-null as missing when parsing programme fields.
2026-09-15 20:55:24 +02:00
Jos Vooges | STH
940470a97d Add admin button to force-refresh IPTV EPG caches.
Clears global XMLTV and derived caches, re-fetches XUI plus configured feeds, so XUI mapping changes show up without waiting for SWR TTL.
2026-09-15 20:49:37 +02:00
Jos Vooges | STH
a7038f04fa Cache IPTV XMLTV globally so Live TV EPG serves from memory.
Share XUI and admin EPG feeds across requests with SWR refresh, and recompute now/next from the schedule so titles stay current without re-downloading.
2026-09-15 18:55:13 +02:00
Jos Vooges | STH
0c15d61291 Add admin TV settings for EPG URLs, category order, and Alle zenders.
Store cluster-wide IPTV UI prefs in IntegrationSetting and apply them to client category lists and multi-feed XMLTV merge.
2026-09-15 18:33:50 +02:00
Jos Vooges | STH
18bcf43c14 Add rich IPTV EPG with programme art and 24h guide on Android TV.
Parse Odido/XUI XMLTV for images, descriptions and schedule, and surface them in the Live TV detail panel and player overlay.
2026-09-15 18:18:33 +02:00
Jos Vooges | STH
1cc6fedd95 Harden OpenSubtitles.org IMDb search and surface subtitle search warnings. 2026-09-13 17:36:11 +02:00
Jos Vooges | STH
55695aa47c Add admin viewers SSE so device and lock changes appear live without polling. 2026-09-13 17:36:10 +02:00
Jos Vooges | STH
f6d484aa56 Allow admin email edits and cap the viewer list to 12 rows without a scrollbar. 2026-09-13 16:36:10 +02:00
Jos Vooges | STH
9efcfff484 Fix profile avatar emoji fallback and bump TV/mobile app versions. 2026-09-13 16:29:49 +02:00
Jos Vooges | STH
91e7502d3b Restore admin login unlock and password reset, plus desktop episode Sub actions. 2026-09-13 16:29:40 +02:00
Jos Vooges | STH
5ec899c9cb Fix OpenSubtitles.org search by zero-padding IMDb IDs.
Unpadded IDs triggered a broken redirect and silent empty subtitle results.
2026-09-13 13:49:26 +02:00
Jos Vooges | STH
82742a1ea3 Fix profile PIN verification and restore TV tab underline style.
verifyPassword args were swapped after the avatar rewrite, causing argon2 to throw on PIN select.
2026-09-13 03:12:32 +02:00
Jos Vooges | STH
e4aba1950b Add ends-at times, compact red topnav, and custom profile avatars.
Show end times on detail/player, tighten TV chrome, and let profiles toggle or upload a cropped photo via API and mobile/iOS.
2026-09-13 03:04:47 +02:00
Jos Vooges | STH
94c04e0381 Fix TV tab selection sticking, scroll restore, and browse header clip.
Keep a single top-nav host so Films/Series stay selected, hoist list/grid state above the detail routes, and add focus padding under browse titles.
2026-09-13 00:52:44 +02:00
Jos Vooges | STH
056078d6bc Improve profiles, watched episodes, and continue-watching across apps.
Subprofiles can edit their own profile and cannot switch server/account; series detail shows watched/progress; skip-to-next marks the prior episode done and keeps one continue-watching tile per series.
2026-09-13 00:44:09 +02:00
Jos Vooges | STH
07901c1d0c Add watchlist, next-episode playback, and fix TV shelf reorder.
Probe-driven continue-watching advances to the next episode; Android TV gets next controls, red focus rings, and a Watchlist tab between Home and Films.
2026-09-12 23:50:07 +02:00
Jos Vooges | STH
6de2c767bf Show real subtitle languages by probing MKV track tags on the node.
Pass embedded track language/title through play ACK into clients so Android/iOS can label tracks instead of generic Ondertitel N when ExoPlayer/VLC miss tags.
2026-09-12 20:58:24 +02:00
Jos Vooges | STH
4c15a37783 Sort 4K shelf by newest 4K file discovery, not title first-seen. 2026-09-12 02:37:03 +02:00
Jos Vooges | STH
06a022089b Fix recently-added using cluster first-seen and add new-releases shelf. 2026-09-12 02:21:16 +02:00
Jos Vooges | STH
0dbf2c3d7a Redesign admin users as master-detail layout for clearer management.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 02:39:09 +02:00
Jos Vooges | STH
95a5c17a6c Allow admins to link a viewer device by entering its pairing code.
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 02:30:19 +02:00
Jos Vooges | STH
7869cd6661 Speed up client home by loading shelves in parallel.
Shelf item queries no longer run one-by-one; favorites load alongside them. Response shape and shelf order stay the same.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 22:31:54 +02:00
Jos Vooges | STH
6ffeb50733 Add in-app device approve/QR pairing and polish iOS browse.
Owners can list/revoke devices and approve TV codes in the iOS app; TV shows a vmc:// QR, and Films/Series get visible chips, titles, and a non-overlapping A–Z index.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 03:18:38 +02:00
Jos Vooges | STH
0b1a2daa20 Add public self-host install one-pager with admin on/off toggle.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 01:36:37 +02:00
Jos Vooges | STH
303383ea4e Add server URL choice, email login, and login lock controls.
Clients can use VMC or a custom server with email/password or device code; API locks after 3 failed logins with admin unlock.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 01:32:35 +02:00
Jos Vooges | STH
00fa9cd9c7 Add TV catalog A–Z sort/jump and fix exit/continue focus.
Browse films/series alphabetically with sort chips and letter scrubber; trap dialog focus and fix long-press remove from continue watching (0.14.13).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 19:40:58 +02:00
Jos Vooges | STH
308160aa56 Add per-node library reset that purges DB content and rescans.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 02:34:28 +02:00
Jos Vooges | STH
3b9b95469b Queue unmatched series folders for manual linking instead of auto-creating.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 02:30:41 +02:00
Jos Vooges | STH
ce278bbb70 Allow converting a movie folder to the correct series in admin.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 02:18:09 +02:00
Jos Vooges | STH
2532ddf93b Fix Synology Admin upgrade without docker.sock via binary rename.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 01:59:34 +02:00
Jos Vooges | STH
fba94b656c Add bulk relink of a series folder to the correct TMDB/IMDb show.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 01:50:42 +02:00
Jos Vooges | STH
a6b0ec15f2 Show series folders per node and allow path search/rematch.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 01:40:01 +02:00
Jos Vooges | STH
705a01f034 Filter admin series list by node and show per-node file badges.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 01:27:39 +02:00
Jos Vooges | STH
a7a7c9dec4 Show IPTV/Live TV under admin active streams without app changes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 13:52:48 +02:00
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