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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
Load channel lists without EPG first, cache categories, and prefetch neighbors so left/right navigation feels snappy while EPG fills in on the background.
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>
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>
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>
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>
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>