mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 01:56:16 -08:00
Extends the engine-neutral PlayerController contract with capability-gated external subtitle loading, subtitle delay adjustment, and subtitle styling (size/color), rendered in the shared subtitle popover: - Contract: new externalSubtitles/subtitleDelay/subtitleStyle capabilities, subtitleDelaySeconds + subtitleStyle state, addExternalSubtitleFile/ setSubtitleDelay/setSubtitleStyle commands. subtitle-style.ts owns presets, clamping, and localStorage persistence of size/color (shared across engines, volume-key precedent); delay and the loaded file stay per-session. - HTML5 + ArtPlayer (shared-controls mode): renderer-side .srt/.vtt picker (no filesystem path enters the app), SRT/VTT cue parser, external files rendered as native TextTracks merged into the track list with exclusive selection, exact cue re-timing for delay (gated on a loaded file), and scoped ::cue styling. - Embedded MPV frame-copy: new sub-add/sub-delay/sub-scale/sub-color helper protocol commands, main-process subtitle file dialog (.srt/.ass/.ssa/.vtt/ .sub; mpv renders ASS natively), new IPC channels + preload + bridge API, renderer-side delay/style ownership with per-session reset and persisted style re-application. - Video.js shared mode, vendor-chrome paths, native-view, and the Linux out-of-process path advertise no capability and render no UI. Adds focused specs for the parser, external-subtitle session, style helper, web adapter, popover interactions, embedded settings, command-runner IPC, and frame-copy protocol lines; updates all 19 i18n files, the player-controls contract doc, CLAUDE.md, and a release note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>