webOS IPTV Player v1.4.0
✨ Features
- Live DVR — timeshift within a live stream's seekable window (distinct from catch-up): press OK to pause, Rewind/Fast-Forward to scrub, and Go-to-Live to jump back to the edge, with a dedicated DVR OSD bar and Magic-Remote pointer controls.
- Xtream Codes account support — add a portal by URL, username, and password from a new Xtream Account section in Settings; a Check button verifies the credentials, and the account loads as its own channel tab through the existing M3U/EPG pipeline.
- Stream info in the Channel Info OSD — a colour-coded resolution badge (4K/1080p/720p/SD), HDR/HLG and frame-rate pills, video/audio codec names (including Dolby Vision, TrueHD, and Atmos), plus the active audio track and subtitle, updated live as ABR switches resolution.
- Closed-caption toggle — a native Closed Captions entry appears in the subtitle picker for streams that declare in-band CEA-608/708, drawn by the TV's compositor and remembered per channel.
- WebVTT cue positioning — self-rendered subtitles now honour their authored line/position/size/alignment instead of being pinned bottom-centre.
- Ranked channel search — search results are ordered by relevance (exact › prefix › word-start › mid-word) in both the channel list and the player sidebar.
🚀 Performance & UX
- Native stall watchdog — a frozen live stream that never fires an
errornow reloads in place and escalates to the next channel after repeated failures, so a dead feed no longer hangs on a black screen.
🐛 Bug Fixes
- Fixed self-rendered subtitles turning themselves on by default — they now stay off unless a rendition is
FORCED=YESor you've picked one. - Fixed the "Reconnecting…" OSD message staying frozen on screen after a stalled stream had already recovered.
- Fixed OSD channel-title jitter caused by a failed-to-load programme icon.
- Fixed opening Settings via the gear auto-adding a blank playlist card.
🧰 Internal & Docs
- Documented live DVR and Xtream Codes in the README, added subtitle and DVR-timeshift preview screenshots, and reorganised the HLS-subtitles write-up around the three in-manifest caption types.
- Added a
tv.shdevice helper (ssh/scp, headless DevTools logs, and live JS eval over CDP) andAGENTS.md/CLAUDE.mdagent-onboarding docs. - Regrouped the e2e tests by feature with shared helpers.
Full Changelog: v1.3.0...v1.4.0