Vapourkit 0.16.1
Vapourkit now has a website along with extensive documentation!!
This release is a small follow-up to 0.16.0 — this release also bundles everything from 0.16.0 below, since the two ship back-to-back.
Bug fixes (new in 0.16.1)
- Fixed "Cannot read properties of null (reading 'execute')" crash on upscale — when something canceled or restarted an upscale while it was probing the video for frame count (manually cancelling, starting a new run from the queue, etc.), the executor reference would get nulled mid-flight and the next step would crash. The handler now captures a local reference and bails cleanly if a cancel happened during the probe. Same fix applied to the preview-segment path.
- Fixed silent stall during "Getting frame count" — on a cold BestSource cache, the frame-count probe could sit silently for a minute or more while indexing, looking like a hang. Indexing progress now streams through the same progress bar used on first video load, and gets logged to the queue item log too. No more guessing whether it's stuck.
Vapourkit 0.16.0
Important note:
No more manual plugin reinstall this release! Setup now installs plugins automatically as its final step, so the "reinstall your plugins from the top-left menu" dance from 0.15.0 is gone. If you're upgrading and setup detects missing plugins, it will install them on first launch — just sit through the progress bar.
33 commits since 0.15.0.
New features
- Privacy mode — new lock icon in the header that hides previews, input/output filenames, queue thumbnails and item names, and the editing-queue banner behind clickable veils. Notification toasts also become generic ("Error", "Notification", "Details hidden by privacy mode") so filenames don't leak to screen. Resolution / fps / duration stay visible. State is persisted across launches.
- Descriptive output filenames — output names now reflect your workflow instead of
_processed. Example:EpisodeName-colorimetry_denoise_4x_resize2160.mkv. Includes applied filters, AI model scale, and output resolution. Auto-truncates at 32 chars. Manually choosing an output path disables auto-generation for that file. Toggle lives in Settings → Processing. Thanks @fs10102020! - No-filters safety — a persistent banner now sits above the Upscale button when no filters are enabled, describing exactly what encoding will do, and a confirm dialog fires if you try to upscale anyway. The old "default-upscale" silent fallback (which would secretly run whichever AI model happened to be selected first) has been removed.
- Video indexing progress bar — BestSource indexing progress now streams to the UI as a progress bar under the video drop zone, so you can see what's happening on long initial loads instead of staring at a frozen panel.
Setup & installation reliability
- Auto-install plugins at end of setup — plugins are installed as the last step of first-run setup, with auto-retry-once on transient failures and explicit Retry / Continue-without-plugins recovery if it hard-fails. The PluginsModal stays for ongoing management from the menu.
- Fixed "Failed to initialize VSScript" on fresh installs — pinned
vapoursynth==72andvsjetpack==1.1.0to prevent pip from silently upgrading the bundled Python binding to a newer ABI-incompatible version. Recent vsjetpack releases requirevapoursynth>=73, which was clashing with the bundled R72 runtime DLL. - Fixed vsview launch error — switched from
python -m vsviewto thevsview.exeScripts wrapper (the vsview package has no__main__.py).
Filters
- Temporal Fix filter renames —
Temporal Fix V2is nowTemporalFix (AI), and the classic version is nowTemporalFix (Classic). Filter definitions revised.
UI & UX
- Descriptive-naming regen now respects your configured default output folder (was previously clobbering it with the input video's directory on first render).
- No-filters confirm dialog replaced with a persistent banner — fewer dialog interruptions, clearer wording about what encoding will actually do.
Under the hood
- New BestSource stderr progress parser with tests covering
lastIndexreset and negative-percentage edge cases. - New
video-index-progressIPC channel; stdout/stderr handlers split in the frame-count probe to preserve descriptive error messages. pluginInstallerprogress is routed throughsetup-progresswhile in setup mode, with a newretry-setup-pluginsIPC andinstallingSetupProgress variant.- New
installDependenciesForSetupwith auto-retry-once; "All Dependencies complete" emission moved out ofdependencyManager. - Content-length header narrowed to string before
parseInt(fixes type error under newer@types/axios).
To help fund development, I have chosen to host the binaries for free on my Ko-fi page here:
Download Vapourkit
Vapourkit is 100% free, and there are build instructions included in the GitHub repository if you'd rather build it yourself!
Consider joining the Discord server! Alternatively, we now have a Fermi/Spacebar guild.