Skip to content

Releases: StippieDot/VideoCull

VideoCull v2.2.1

Choose a tag to compare

@github-actions github-actions released this 08 Sep 22:20

Changed

  • Standardized the current product, executable, installer, shortcut, publisher, repository, and documentation identity as VideoCull by StippieDot.
  • Renamed the Windows installer to VideoCull.Setup.2.2.1.exe and the installed executable to VideoCull.exe while preserving the existing application ID and upgrade location.
  • Moved the production Electron profile from %APPDATA%\video-cull to %APPDATA%\VideoCull with an atomic directory rename. If Windows cannot rename it, VideoCull keeps using the original profile and tries again on the next launch.
  • Added directory-level safety checks and safe handling when both old and new profile folders exist. VideoCull never merges, copies, overwrites, or deletes those profiles automatically.

Video Cull v2.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 22:58

Added

  • Added a persistent light theme with app-wide styling, a visible theme control, a configurable keyboard shortcut, and startup persistence.
  • Added an option to keep the playback timeline and controls visible while reviewing videos.
  • Added a sessions-and-folders guide and expanded the in-app and website documentation for grid, review, duplicate, cache, settings, and safety workflows.

Changed

  • Replaced the Video Cull logo and application icon throughout the app, Windows executable, installer, uninstaller, and generated shortcuts.
  • Reorganized Interface settings into clearer sections for grid defaults, Review mode, and report export.
  • Changed downloaded updates to require an explicit choice between updating now, installing on exit, or being asked later.
  • Updated Electron and related runtime packages.

Fixed

  • Review shortcuts continue working after interacting with the embedded video player.
  • Playback controls remain accessible during keyboard-driven review sessions.
  • Grid scrolling stays anchored when batch status changes remove videos from the current filter.
  • Search shortcuts no longer interfere with editable fields, and cached thumbnails appear more reliably.
  • MPEG-4 Part 2 videos now open in the external player instead of showing a black frame in the built-in player.

Video Cull v2.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 10:24

Added

  • Added an offline, searchable in-app documentation modal opened from the Help menu, app chrome, or F1.
  • Added a Mintlify documentation site covering the main grid, review, duplicate, cache, processing, settings, formats, troubleshooting, FAQ, installation, and development workflows.
  • Added dedicated guides for delete safety and cache/processing decisions.
  • Added live in-app shortcut tables that reflect the user's configured keybindings while the website continues to show defaults.

Changed

  • Made the selected Mintlify MDX pages the shared source for both web and in-app documentation, with an explicit in-app allowlist for user-facing pages.
  • Redesigned the documentation modal around compact grouped navigation, collapsible sections, responsive fixed-height sizing, a smaller search field, and direct links to relevant settings.
  • Expanded and consolidated the user guides to remove repeated sections and make guidance more task-first.
  • Improved duplicate matching so exact matching respects duration and keeper selection prefers bitrate within the same resolution tier.

Fixed

  • Natural filename sorting now orders numbered files as people expect, such as file 2 before file 10.
  • Review shortcuts continue working after interacting with the video player using the mouse.
  • Closing duplicate video playback no longer intermittently resets the list to the top.
  • Previously decided videos again show their Keep, Delete, or Skip color when reopened in review mode.

Video Cull v2.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 17:04

Video Cull 2.0.0 has smarter duplicate review, richer media decisions, safer cache handling, clearer destructive actions, better mounted-drive behavior, and a UI that holds up better on very large libraries and high-resolution screens.

Added

  • Duplicate review mode for finding likely duplicates across all loaded videos or the current filtered view, with pHash and visual-similarity matching, adjustable thresholds, sample counts, sampling windows, flipped comparison, and optional run-after-scan.
  • Suggested keepers for duplicate groups using resolution, bitrate, duration, FPS, and size, plus manual keeper overrides, protected Keep/Skip videos, ignored match pairs, group dismissal, and right-click duplicate actions.
  • Richer review decisions with ratings, favorites, bookmarks, playback speed, global mute, next-undecided navigation, scoped review summaries, pending/delete totals, and undo-aware review flows.
  • Media insight throughout the app: codec, container, resolution, FPS, metadata date, compatibility badges, metadata-based sort options, and clearer labels for resolution/FPS.
  • Built-in playback fallback behavior for unsupported files, including compatibility checks, external-player handoff, and decode-error overlays when Chromium cannot play the stream.
  • Grid search by filename or path, with Ctrl+F as the default shortcut and full keybinding customization.
  • Context menus for grid videos, folder headers, duplicate rows, and duplicate groups, including reveal/copy-path, status changes, thumbnail regeneration, keeper selection, exclusion, and dismissal.
  • Maintenance controls for stale-cache cleanup, missing-subfolder cache pruning, empty-folder cleanup after delete, and thumbnail-count rebuild warnings.
  • Safer cache storage management across centralised, per-drive, and distributed cache modes, including cache-location validation and explicit migrate/start-fresh choices.
  • Custom Windows installer artwork and shortcut choices while keeping current-user installation and install-location selection.
  • App diagnostics and performance instrumentation for scan, render, duplicate, cache, and idle-state troubleshooting.

Changed

  • Upgraded Electron and refreshed the runtime/development dependency stack.
  • Reworked the sidebar around large-library culling, with denser status/filter controls, clearer folder/session feedback, duplicate-mode controls, and better skipped/inaccessible folder reporting.
  • Reworked the grid for large sessions with faster filtering/sorting, folder grouping, aggregate computation, virtualized rendering, stable search controls, and lower render churn during metadata and thumbnail updates.
  • Reworked review mode so thumbnail preview and playback fit normal, maximized, and high-resolution displays while keeping the action controls stable.
  • Improved scanner traversal throughput, stat batching, progress reporting, cancellation behavior, stale/superseded scan handling, and behavior on slow mounted drives.
  • Improved metadata and thumbnail processing with clearer progress phases, better cancellation, short-video handling, safer reuse of existing thumbnail sets, and smaller renderer update batches.
  • Improved duplicate detection performance with worker-based fingerprinting, batched database access, lower memory use, stronger candidate grouping, and more stable group IDs.
  • Improved cache loading, saving, migration, recovery, pruning, and corruption quarantine behavior for existing libraries, including lower thumbnail-cache write churn and conservative concurrent folder-cache loading for very large libraries.
  • Made potentially destructive or expensive maintenance behavior opt-in instead of surprising: stale-cache cleanup defaults off, empty-folder cleanup defaults off, and thumbnail-count changes warn before causing rebuild work.
  • Updated development and CI workflows around Node 24, Vitest, Playwright, IPC contract checks, installer checks, native cache checks, and release packaging.

Fixed

  • Existing cache decisions, metadata, thumbnails, bookmarks, ratings, favorites, duplicate fingerprints, recent folders, and settings now survive rescans, relaunches, and upgrades more reliably.
  • Destructive delete flows now validate loaded paths more strictly, clean related cache artifacts, report permanent-delete fallbacks clearly, and only clean truly empty folders when the user enables that option.
  • Cache migration and cache-mode changes now avoid partial/clobber-prone moves and communicate migrate/start-fresh outcomes more clearly.
  • Missing/offline folders and transient stat failures no longer silently prune cache by default.
  • Open/reveal/play external operations and custom thumb:// / video:// serving now validate loaded paths more carefully.
  • Built-in playback compatibility now better matches real browser support while FFmpeg-supported files can still be scanned for thumbnails and metadata.
  • Thumbnail cancellation, short-video thumbnail reuse, failed thumbnail regeneration, and thumbnail-count changes behave more predictably.
  • Duplicate reruns, deleted duplicate videos, stale duplicate selections, visual fingerprint settings changes, and hidden duplicate review state now clean up more reliably.
  • Sort state, resolution labels, feature toggles, keybinding capture, focused input behavior, shortcut conflicts, and privacy/shortcut precedence are more predictable.
  • New-folder and pending-scan UI states are clearer, reducing ambiguity when old videos are still visible while a new scan is starting.

Tooling

  • Added npm run check:ipc, npm run check:installer, npm run test:renderer, npm run test:duplicates, npm run test:cache-native, and expanded npm run test:ci.
  • Added Playwright Electron regression flows for smoke, delete safety, relaunch persistence, and duplicate reruns.
  • Added cache-clutter cleanup tooling, installer validation, release/test GitHub Actions updates, and broader regression coverage for Electron, renderer, cache, scanner, duplicate, processor, and settings flows.

Video Cull v2.0.0-beta.2

Pre-release

Choose a tag to compare

@StippieDot StippieDot released this 11 Jun 17:25

This beta focuses on scaling duplicate review, reducing large-library slowdown, tightening media compatibility behavior, and raising the regression-testing baseline before the persistent-library work begins.

Added

  • Expanded duplicate-review tooling with richer group handling, better keeper controls, safer rerun flows, and stronger duplicate-session management.
  • Context-menu actions and idle/performance diagnostics for faster inspection and debugging during heavy review sessions.
  • Broader automated coverage across Electron, renderer integration, duplicate workflows, relaunch persistence, and delete-safety flows.
  • Dedicated CI test workflow and Playwright/Vitest infrastructure for repeatable regression checking.

Changed

  • Improved app responsiveness across the renderer, sidebar, grid, review mode, scanner traversal, cache startup, and duplicate startup paths for larger libraries.
  • Reduced duplicate-detection overhead with more selective fingerprint loading, cleaner worker flow, and lower main-process startup cost before comparisons begin.
  • Improved cache and metadata persistence behavior with stronger save paths, better migration coverage, and more predictable reload/relaunch behavior.
  • Refined compatibility handling so built-in playback rules better match real browser support, while additional FFmpeg-supported formats are recognized during scanning.
  • Updated development and CI plumbing, including Electron/Vite dev-port coordination and refreshed GitHub Actions usage.

Fixed

  • Duplicate cleanup and delete flows are safer and more consistent, including reruns, fallback behavior, and follow-up state cleanup after removals.
  • Sort state now persists more reliably, and resolution labels are normalized more consistently across the UI.
  • Feature-setting toggles and related input behavior now behave more predictably.
  • Cache, duplicate, and scan edge cases now fail more safely under heavy or unusual workloads instead of leaving stale state behind.

Tooling

  • Migrated and expanded the automated test stack around Vitest, renderer integration tests, and E2E release checks.
  • Added more helper utilities, diagnostics hooks, and performance instrumentation to support future release hardening.

Video Cull v2.0.0-beta.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 May 22:06

This beta is a major step toward Video Cull v2.0: richer review decisions, smarter library filtering, clearer media insight, safer cleanup, and more predictable playback for large video collections.

Added

  • Smarter review workflow with ratings, favorites, review summaries, delete totals, scoped review context, and next-undecided navigation.
  • Richer library browsing with Library status filters, rating/favorite/incompatible filters, file-size and duration ranges, and cleaner active-filter controls.
  • Deeper media insight with codec, container, resolution, FPS, compatibility badges, and new metadata-based sort options.
  • More predictable playback with Video Cull's own compatibility policy, external-player fallback for unsupported media, decode-error overlays, and global mute.
  • Better user feedback with in-app notifications for cache recovery, save delays, update state, and background maintenance.
  • Feature toggles for enabling or hiding the new review, metadata, compatibility, and playback helpers.
  • Thumbnail regeneration controls for stale, partial, or interrupted thumbnail sets.
  • About/settings links for project, release, and support pages.

Changed

  • Upgraded Electron to 41 and refreshed application dependencies.
  • Reworked the custom video protocol for Electron 41 compatibility and stricter file-serving rules.
  • Reworked the sidebar around faster decision-making, with Library status filters promoted to the top and secondary filters kept more compact.
  • Improved large-library navigation with updated grid virtualization, better scroll restoration, and folder headers that show filtered size next to total size.
  • Made review and grid playback behave more consistently across compatibility, mute, metadata, ratings, favorites, and external-player actions.
  • Improved thumbnail generation with clearer progress phases, ordered results, retries around difficult timestamps, and safer reuse of existing thumbnail sets.
  • Cache loading and merging were hardened across central, per-drive, and distributed cache layouts.
  • Improved export reports for multi-directory sessions.
  • Made settings, cache migration, and update flows communicate their state more clearly.

Fixed

  • Unsupported audio/video decode failures now show an in-app explanation instead of failing silently.
  • Corrupt cache databases are quarantined and rebuilt instead of blocking the app from loading.
  • Deleted videos now remove related cache database rows, metadata entries, and thumbnail folders.
  • Empty parent folders left after deletion are removed when safe; cloud drives without Recycle Bin support now fall back to permanent removal only for verified-empty folders.
  • Partial or interrupted thumbnail folders are regenerated instead of being reused as if complete.
  • Stale cache rows are refreshed when rescans find newer metadata.
  • Save-cache failures now retry and warn the user when decisions may not yet be persisted.
  • Global shortcuts now avoid interfering with focused controls, settings, and shortcut overlays.
  • Update status handling now reports errors and ready states more reliably.

Tooling

  • Added an IPC contract checker for exposed Electron APIs.
  • Added a cache-clutter cleanup script for old thumbnail/cache artifacts from earlier builds.

Video Cull v1.8.2

Choose a tag to compare

@github-actions github-actions released this 01 May 15:45

Changed

  • Thumbnail generation now limits actual active FFmpeg processes directly: frames are extracted sequentially within each video while overall parallelism is spread across videos.
  • Auto concurrency now accounts for the current thread-limit setting and allows higher single-thread process counts on capable systems while still capping by available memory.
  • Hardware-accelerated thumbnail generation now pauses briefly between large batches to reduce GPU/driver pressure during long scans.
  • Processing settings now use clearer wording around parallel FFmpeg processes and one-thread-per-process behavior, with expanded manual process limits up to 32.
  • Removed the Minimal/Extended mode selector, first-run mode notice, View menu toggle, and mode shortcut because Video Cull no longer uses app-wide modes.

Fixed

  • Auto concurrency in Settings now recalculates from the unsaved local settings, so toggling thread limiting immediately updates the displayed process count.
  • Cancelling thumbnail generation now also applies to fallback frame extraction.
  • ElectronAPI TypeScript declarations now include the distributed cache confirmation API.

Video Cull v1.8.1

Choose a tag to compare

@github-actions github-actions released this 26 Apr 23:25

Fixed

  • Playing videos after scanning a whole drive now works correctly. Drive-root selections such as D:\ are now handled by the loaded-folder security check instead of rejecting every child path.
  • Closing the app during large thumbnail-generation runs no longer triggers a main-process "Object has been destroyed" error from delayed progress batch sends.
  • Video fullscreen now hides the Electron menu bar and restores it when fullscreen exits.

Video Cull v1.8.0

Choose a tag to compare

@github-actions github-actions released this 26 Apr 13:40

Added

  • Auto concurrency now factors in available RAM — each ffmpeg instance uses ~400 MB, so the limit is capped to whichever is lower: half the CPU cores or (free RAM − 1 GB) / 400 MB. Prevents out-of-memory on lower-spec machines.
  • Settings panel now shows the resolved thread count when Auto concurrency is selected, making the setting self-documenting.

Changed

  • Cache writes now fan out to per-folder SQLite databases that mirror the actual directory hierarchy on disk. Existing flat-root cache DBs are automatically split on first scan.
  • Thumbnail output directory is resolved per-video when using folder-distributed cache, keeping thumbs co-located with their DB.
  • Sidebar layout reorganized with improved visual hierarchy and spacing.
  • defaultGroupByFolder now correctly defaults to true for existing installs that predate the setting.

Fixed

  • Grid thumbnail flicker eliminated: filteredVideos selector upgraded to shallow equality, preventing react-window from remounting all visible rows on every thumbnail batch update.
  • getItemSize now uses a stable ref instead of reading rows state, removing a secondary source of row remounts.
  • Thumbnails now fade in with a CSS opacity transition instead of snapping in abruptly.
  • ElectronAPI TypeScript interface updated with missing getAutoConcurrency declaration.

Video Cull v1.7.0

Choose a tag to compare

@github-actions github-actions released this 24 Apr 22:13

Added

  • Multi-directory sessions with true Add to Session behavior for dropped or selected folders.
  • Cache storage modes for centralised, per-drive, and distributed cache layouts.
  • Cache migration flow when switching storage modes, with migrate, start fresh, and cancel choices.
  • First-run Minimal/Extended mode notice, Settings mode selector, View menu toggle, and configurable mode shortcut.
  • Per-drive and central cache location validation with write tests before settings are saved.

Changed

  • Thumbnail files now resolve through cache-mode-aware roots instead of assuming one central cache folder.
  • Grid folder labels include the root folder prefix when multiple roots are loaded.
  • SQLite cache handles are kept per DB path so multi-directory operations do not close each other's connections.
  • Cache writes now preserve future metadata columns when values are present.

Fixed

  • Batch cache saves fall back to chunked persistence for very large selections to avoid blocking the main process.
  • Distributed cache index entries are pruned on startup when folders are no longer available.
  • Scanner ignores distributed .videocull cache folders during recursive scans.
  • Per-drive cache overrides must stay on the drive they configure.