webOS IPTV Player v1.6.0
✨ Features
- Online subtitle search for VOD — when no bundled or sidecar subtitle fits a movie or episode, search online providers (SubDL, OpenSubtitles, Assrt) from the player and load a pick on the fly. Results are ranked by preferred language, then download count, then provider order, and each pick is cached per item so replay is instant. Settings gains per-provider API keys/credentials and a preferred-language dropdown, and a Search online… entry joins the subtitle menu once a provider is configured.
- Manual subtitle query — a query box in the online-subtitle search lets you refine the lookup by hand when the auto-detected IMDb/TMDB/title keys miss (a mislabeled or non-English title), with inline empty/error states so it can be retried without the overlay closing.
- Subtitle sync (per-stream offset) — nudge subtitle timing when captions run early or late, applied live and remembered per channel / VOD item (0.25 s steps, ±60 s). A Subtitle Sync row in the Subtitles menu opens a modal adjuster.
- Catch-up resume — time-shift EPG playback now checkpoints your position per programme; the guide shows Resume/Watched badges with a progress bar and offers Resume / Start Over / Cancel when you reopen a past program.
🐛 Bug Fixes
- Movies/Series tabs no longer appear when no playlist or Xtream account is configured — the no-playlists path now resets to the lite section set and clears stale account avatars, so first run (and removing the last playlist) shows only Live / Settings / Search.
- Pointer OK now activates controls from a trusted
click(matching LG's Magic Remote guide) instead ofmouseuphit-testing, so player, channel-list, search, settings, and tab-bar controls no longer double-fire or swallow a selection; adata-self-activateopt-out replaces the hardcoded class denylist.
🧰 Internal & Docs
- Added a build-time Chromium-68 API compat gate that AST-scans the bundled build for post-68 APIs pulled in by dependencies (which the source lint never sees). It caught two real webOS-5 crashes in bundled
assjs— unguardedflatMapandObject.fromEntries— both fixed with guarded polyfills. SubtitleSearchServicenow takes its providers via constructor injection instead of an internal test seam; the production singleton is unchanged.- Added e2e coverage for the VOD online subtitle search (menu → results → pick/apply, manual-query retry, and dismissal on view change).
- Added webOS 26 (Chromium 132) to the supported-versions table, refreshed the preview screenshots (catch-up resume + subtitle search), and moved
serve.mjsunderscripts/.
Full Changelog: v1.5.1...v1.6.0