ScriptPlayer+ 0.5.0
ScriptPlayer+ 0.5.0
ScriptPlayer+ 0.5.0 improves large-library reliability and adds guided recovery when Handy takes too long to upload or load a script.
Library catalog and thumbnails
- Added a persistent library catalog so a previously scanned local or NAS folder can be shown immediately while a fresh scan runs in the background.
- Preserved the saved catalog when the library root is offline or only part of a folder tree can be read, with separate complete, partial, and offline states.
- Added refresh and full-index rebuild actions. A rebuild is published only after a complete scan and successful atomic save; otherwise the previous catalog remains available.
- A successful full rebuild removes stale scan-derived metadata and automatic thumbnails, then probes them again. User ratings and custom thumbnail files are preserved.
- Added persistent custom thumbnails from an image or the current playback frame, automatic thumbnail regeneration, and scored frame selection to avoid unusually dark or bright preview frames.
- Prevented older thumbnail jobs from restoring stale memory or disk cache entries after a rebuild.
Handy timeout recovery
- Distinguished a Handy device-side HSSP setup timeout from a script-server upload timeout.
- Added a one-click compatibility-mode retry when Handy takes too long to load a script. Compatibility mode uses a longer action-count-aware timeout and up to three setup attempts.
- Added a separate upload retry when sending the script to the Handy script server times out.
- Added the recovery actions to both the normal device overlay and the fullscreen device panel.
- Prevented cancelled or older requests from overwriting the status and URL of a newer retry.
External player synchronization
- Internal audio is now muted only while a synchronized mpv or VLC session is actually running. A failed launch or closed external player immediately returns audio to ScriptPlayer+ without changing the user's saved mute setting.
- JavPlayer, JavPlayerEZ, PotPlayer, and custom external players remain manual launch targets and no longer force the internal player to stay muted merely because external viewing is enabled.
- Added launch-time and live playback-rate synchronization for mpv and VLC, including rate reapplication before seek/play synchronization.
- Prevented late pause, seek, rate, exit, and overlapping launch events from controlling or reviving a replaced external-player session.
Embedded media tracks and compatibility playback
- Added embedded audio-track selection for media containers inspected through an external FFmpeg installation, with the selected track remembered per media file.
- Added extraction and playback of embedded text subtitle tracks such as SRT, ASS/SSA, WebVTT, and mov_text. Bitmap subtitle formats such as PGS and DVD subtitles are identified but remain unavailable for rendering.
- Improved FFmpeg compatibility-playback resume and seek handling, and kept playback diagnostics useful while redacting local file paths.
Script variant naming
- Added XTP-style script variant names such as Video - Slow.funscript, including grouped multi-axis files such as Video - Slow.L0.funscript and Video - Slow.R0.funscript.
- Preserved existing default and bracket-style variant names while preferring the longest exact media filename, so similarly named videos do not inherit each other's scripts.
- Kept library indexing, script selection, and reverse media lookup on the same matching rules for local and configured script folders.
FunOSR and SR device safety
- Added a separate playback-start transition setting so a directly connected FunOSR or SR device can move toward the first script position before normal streaming begins.
- Improved home transitions and large-seek catch-up with drain-aware serial writes and bounded software ramps, while avoiding an unnecessary transition for small hold/resume movements.
- Applied TCode interval terms to every commanded axis and required explicit device-specific verification before using timed commands when the current position is unknown.
- Bound timed-command verification to the connected device and profile, and invalidated stale serial work when the port, axis layout, or connection changes.
Packaging
- ScriptPlayer+ packages still contain no external
ffmpeg.exe,ffprobe.exe, orffplay.exe. FFmpeg-dependent thumbnail fallback and compatibility features use a separately installed or explicitly selected FFmpeg executable. - Added an explicit user-triggered FFmpeg installer that uses winget on Windows, Homebrew on macOS, or a detected apt/dnf/yum/pacman/zypper/apk package manager on Linux. ScriptPlayer+ runs only fixed package-manager commands and still does not bundle FFmpeg.