Commit Graph

51 Commits

Author SHA1 Message Date
67d9869364 feat: add Settings live stream analysis button and diagnose Laya batch failure (#14)
Add a Settings action to manually rerun Live TV stream analysis:
it triggers an admin-guarded projection rebuild endpoint that
groups streams into logical channels (covering channels present
before the projection existed) and reruns language/Laya detection,
with progress presented via liveAnalysisPresentation. Harden the
Laya batch path that failed with 'Local AI language matching
failed' by surfacing the underlying cause and falling back to
standard matching cleanly. Guard admin-only rebuild through a new
authz helper and cover routes, service and presentation with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 16:09:13 +02:00
4d662369c9 fix: clear persistent Laya warning and apply language selection immediately (#12)
Two fixes: the ChannelList local-AI warning kept showing after the
runtime became available because status changes were not re-evaluated
on refresh; and selecting a language in the player did not switch the
stream variant immediately. Refresh warning visibility from the
latest laya status and apply the chosen variant/language on
selection, with tests for both behaviors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 15:15:06 +02:00
d253642dec fix: make Laya status consistent between Settings and ChannelList (#12)
The model was reported as ready while the AI runtime was actually
unreachable, and the Download action stayed visible afterwards.
Distinguish model-downloaded from runtime-available in
layaStatusPresentation, derive the Download action from the real
combined state, and align Settings and ChannelList rendering on that
single source of truth. Cover the combined status cases with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 13:31:35 +02:00
d276d3b4c3 fix: show Laya model download progress and surface errors in Settings (#12)
Track download progress in layaService (bytes/total, phase, error
state) and expose it through the laya status route. Render a progress
bar during model download in Settings via a layaStatusPresentation
service, and display download/status errors inline instead of failing
silently. Cover progress tracking and status presentation with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 11:49:36 +02:00
ce11ecc757 feat: add optional Laya engine mode for grouping and language detection (#12)
Add a languageDetectionMode setting (algo | laya | laya+algo) exposed
in Settings with three engine choices. When Laya is enabled, a laya
service (Dockerfile.laya, optional compose profile, models stored
outside the repo under ./data/models/laya) can be started, with model
download and deletion from the UI via /laya routes to manage disk
space. Add a channelLanguageFusion service combining Laya results
with the existing algorithm, and wire detection mode through
grouping, channel list and player. Cover engine selection, fusion
and laya service behavior with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 11:13:34 +02:00
e06f4ec2c3 feat: add settings option to hide Live TV categories (#11)
Add a liveChannelListMode setting (default 'grouped') with a Settings
toggle to display the Live TV channel list flat, without category
group sections. When enabled, logical channels are listed directly
with their stream variants still grouped as in #9/#10. Cover the
setting default and flat-list behavior with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 09:57:20 +02:00
a7a83a6faa feat: group variants of the same IPTV channel into a logical channel (#9)
Add a channelVariantGrouping service that normalizes channel names
(strips region prefixes and quality tokens) to fingerprint duplicate
stream entries and cluster them under a single logical channel with
quality/source variants. Wire it into the Live TV channel list and
player variant selection, reducing duplicates without destructively
merging streams.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 08:25:42 +02:00
d018ac078c feat: add Plex-style adaptive transcoding with bitrate limits and hardware fallback 2026-09-29 23:31:05 +02:00
80d2c4bfb3 fix: copy stream url bug (#69) 2026-01-31 11:09:39 -08:00
c8ca09011f fix: adjust timing for up next panel 2026-01-22 20:15:46 -08:00
c042ff37b1 fix: next episode modal not displaying after resume from homepage. 2026-01-22 18:55:06 -08:00
ac6c82e3fc fix: resume from homepage not correctly handling source_id 2026-01-22 18:23:48 -08:00
e83b173755 fix: safari specific fixes for video player and watch page 2026-01-22 13:35:19 -08:00
89dbb96c92 fix: race condition in playNextEpisode() 2026-01-22 00:14:42 -08:00
ea4a0a4577 fix: implemented safari webkit support for fullscreen and PiP 2026-01-21 20:36:34 -08:00
237d11cf00 feat: implement hardware and software upscaling 2026-01-19 01:34:45 -08:00
100a26fe4e chore: update screenshots in readme and sso icon 2026-01-18 19:49:22 -08:00
f9fefa3947 fix: filter homepage recent sections by hidden status 2026-01-18 17:06:26 -08:00
b890d30253 feat: add home page with favorites, resume playback, recently added VOD 2026-01-18 14:04:40 -08:00
bf111e1fca feat: add home page with resume functionality and recently added VOD 2026-01-18 03:08:08 -08:00
052178e395 feat: add now playing header indicator and enable background playback for watchpage 2026-01-18 01:17:51 -08:00
d6eda66360 fix: favorites arrow navigation stays in same group, add cross-player stop on new playback 2026-01-18 00:58:57 -08:00
d54428472c feat: add user management modal with SSO/Local badges and fix OIDC session serialization 2026-01-17 23:36:34 -08:00
95591a0c84 fix: settings race condition and URL deep linking 2026-01-17 18:32:19 -08:00
c1f8077438 feat: add smart audio copy and audio mix presets for configurable 5.1 downmixing 2026-01-17 13:31:13 -08:00
2c34359b2c feat: Implement hardware-accelerated HLS transcoding with granular controls, smart stereo downmixing, and robust support for MKV and 10-bit HEVC playback. 2026-01-17 03:07:16 -08:00
77eb7bff5f feat: add dedicated transcoding settings tab 2026-01-17 01:27:27 -08:00
2a03cad213 feat: add -seekable 0 to fix 405 errors and configurable User-Agent presets for stream requests 2026-01-17 00:45:55 -08:00
b467471590 feat: add copy stream URL menu and desktop sidebar collapse (closes #43, closes #45) 2026-01-16 18:04:24 -08:00
60010cc734 fix: race condition where race condition where loadMovies/loadSeries was called before
hiddenCategoryIds was populated
2026-01-14 15:25:04 -08:00
346a0519e9 feat: added smart auto-transcoding with probe-based routing and MKV/remux support 2026-01-10 00:35:42 -08:00
53a54c760c Added picture-in-picture button to video player and search filter for manage content page 2026-01-09 15:38:37 -08:00
28f16980e8 Updated subtitle detection logic, added closed caption button 2026-01-06 20:58:57 -08:00
955d68e899 Update live tv player styling to match VOD player 2026-01-06 20:43:03 -08:00
f525a6ee67 Added streaming service style watch page for movies and series playback 2026-01-06 20:01:43 -08:00
a00082b0ef Implemented virutal scrolling for epg, optimized database batching, moved sync timer to server 2026-01-04 00:46:51 -08:00
8d37f22f53 Fixed typo in stream type that was preventing VOD playback 2026-01-03 22:47:08 -08:00
c48f2e070e Refactored EPG refresh logic 2026-01-02 15:00:11 -08:00
e1a197f2be implement authentication and authorization 2026-01-01 15:36:38 -05:00
d1bfd1b9e7 Added server-side saving for settings 2025-12-31 15:35:37 -08:00
c037ef6862 Added experimental force remux setting to remux raw ts streams to mp4 container 2025-12-30 15:27:19 -08:00
3b0d311756 Update UI elements for consistency 2025-12-29 23:41:40 -08:00
32e0434785 feat: Add FFmpeg audio transcoding for Dolby/AC3/EAC3 compatibility
- Add /api/transcode endpoint for audio-only transcoding
- Video passthrough (no re-encoding) for fast performance
- Audio transcode to AAC for browser compatibility
- Add 'Force Audio Transcode' setting toggle in UI
- Add ffmpeg-static as optional dependency
- Handle Electron asar.unpacked path for packaged apps
2025-12-29 16:52:01 -08:00
29a7996ecd Implemented SVG icons 2025-12-28 21:27:21 -08:00
44365c4dad Implemented focus for active channel in channel list 2025-12-28 20:15:26 -08:00
b504faf909 Implemented cache clearing in channel list 2025-12-28 19:35:10 -08:00
15098ad6ed Fixed hidden groups consuming batch slots 2025-12-28 17:52:40 -08:00
5da26c8045 Add Force Proxy setting, fix redirect URL handling (PR #7) 2025-12-28 11:43:01 -08:00
1f81323f16 Fixed placeholder.png fetch error 2025-12-28 04:01:43 -08:00
bb5dc89311 Updated cacheing to use persistent json cache 2025-12-27 21:16:17 -08:00