Some hosts prepend a fake image header (a real 1x1 PNG) to every HLS
segment; ffmpeg probes the segment as a picture and mpv drops back to
idle with no window while the browser claims the episode is playing.
- Route bridge-served m3u8 streams through a local strip proxy that
scans each segment for the first genuine MPEG-TS packet run and drops
the junk in front of it; playlists get absolute origins rewritten so
segment requests come back through the proxy. Non-TS bodies pass
through untouched.
- Only report ok from playEpisode once mpv configures a video output;
an end-file with reason error surfaces mpv's own message (e.g. "no
audio or video data played") in the browser status bar instead of
"Playing". New end-file event plumbed through the mpv IPC client.