v0.1.9.1 — Incremental metadata, resilient + continuous playback
A patch on v0.1.9.
Metadata fetch only touches what's new
A metadata fetch used to re-walk your entire library every time. It now processes only the newly added and never-matched titles, so a re-run is quick. Titles TMDb can't match are remembered so they aren't re-queried each run — but a transient network/API error is never cached that way, so an outage can't permanently mark a title unmatchable. Send {"full": true} to force a complete re-fetch; the per-item "match" action always re-tries.
Playback recovers instead of erroring out
Because segments are transcoded on demand, a fragment can briefly be unavailable right after a seek while FFmpeg catches up. Previously the player would exhaust its retries and stop with a "Playback error". It now recovers a few times (resetting on real progress) before giving up, with a more generous retry budget.
Continuous playback
Start a series or a playlist and it plays through to the end, auto-advancing item to item until it finishes or you leave (Back exits the player rather than stepping back through the queue). A ⏭ Next button lets you skip manually. Playlists that contain the same title twice advance from the copy you actually played.
Audited R1+R2 (PASS). 361 tests. Verified on the compiled build.
Version note: package metadata reads 0.1.9-1 (npm requires three-part semver); this is the v0.1.9.1 release.
SmartScreen warns on the unsigned installer — "More info → Run anyway". FFmpeg is not bundled (the installer offers a winget install).