Skip to content

ScriptPlayer+ 0.5.0

Choose a tag to compare

@sioaeko sioaeko released this 12 Aug 09:03
· 5 commits to master since this release

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, or ffplay.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.