Skip to content

Releases: dragosmiron/immich-video-optimizer

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:26

What's Changed in v0.3.0

Features

  • Advanced Settings & Custom FFmpeg Flags: Added an Advanced Settings tab in the TUI allowing users to define custom FFmpeg arguments.

Improvements

  • Automated Log Rotation: Automatically rotates and compresses historical logs into gzip archives to save disk space.
  • Config Auto-Healing: Automatically restores missing or corrupted configuration fields on startup without overwriting existing settings.
  • Hardware Fallback Indicators: Clear indicators in the UI and logs when hardware encoding automatically falls back to CPU.
  • Aspect Ratio Crash Protection: Ensures even video dimensions during scaling to prevent encoding failures.
  • Performance & Code Cleanup: Removed unused code and streamlined internal logging routines.
  • Various other improvements and optimizations.

Full Changelog: v0.2.6...v0.3.0

v0.2.6

Choose a tag to compare

@github-actions github-actions released this 18 Oct 13:49
  • Universal Apple & Safari Playback: Added -tag:v hvc1 for all HEVC encoders (libx265, hevc_nvenc, hevc_vaapi, hevc_videotoolbox), resolving playback failures in QuickTime, Safari, and Apple iOS/macOS clients.

  • Tag & Stack Preservation: Automatically preserves and transfers user tags and stack memberships to optimized replacements before original deletion, with full rollback protection if transfer fails.

  • Smart AAC Audio Passthrough: Automatically detects existing AAC audio streams and passes them through directly (-c:a copy) to preserve original audio fidelity and speed up transcoding.

  • Asset Description Preservation: Preserves original video descriptions on replacement assets in Immich alongside shooting dates and GPS coordinates.

  • Stack Primary Asset Integrity: Automatically updates the primary asset reference in Immich stacks before original video deletion.

  • Dry-Run Probe Enhancements: Deduplicated parallel probe workers and excluded unverified probes from candidate batches.

  • Modular Architecture & UI Overhaul: Split monolithic screens, workers, scanner models, and savings estimation for improved responsiveness and maintainability.

  • Various other improvements and optimizations.

v0.2.5

Choose a tag to compare

@github-actions github-actions released this 15 Oct 22:38
  • Date Range Filtering: Scan and optimize videos taken within a specific timeframe (e.g. a specific trip, year, or month) directly from the Filtering tab in Settings, with full day-boundary coverage in your local timezone.

  • Various other improvements and optimizations.

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:06

Bug Fixes

  • Vertical/Portrait Video Scaling: Fixed scale filter calculation so vertical phone videos (e.g. 1080×1920) preserve full resolution instead of downscaling to 608×1080.
  • Rollback Replacement on Failure: Automatically removes the replacement asset if transferring albums/favorites or deleting the original fails, preventing duplicate videos.
  • Graceful Asset Replacement on Cancel: Added a detached context timeout so pausing/cancelling mid-deletion completes cleanly instead of abandoning half-replaced assets.
  • Resilient Static FFmpeg Extraction: Added atomic file extraction and integrity checks to prevent incomplete/corrupted downloads from blocking transcoding.
  • Ignore Embedded Cover Art: Probe now ignores attached picture streams when detecting video codecs.

Improvements

  • Various other improvements and optimizations.

Full Changelog: v0.2.3...v0.2.4

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 14 Oct 22:31

What's Changed in v0.2.3

  • New Version Availability Check: The app now automatically checks for new releases on startup and displays an in-app banner with the download link when an update is available. You can also check the current version and update status via the new -v / --version CLI flags.

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 21:47

What's Changed in v0.2.2

🛡️ External Library Safety

  • Automatically detects and excludes read-only and external library assets (isReadOnly, isExternal, libraryId) from scans to protect mounted NAS shares and read-only storage paths from accidental replacement or deletion.

📑 Tabbed Settings Navigation

  • Cleanly organized settings into dedicated tabs (Encoding, Filtering, Pipeline & Network) with instant keyboard navigation using Tab, Shift+Tab, or number keys (1, 2, 3), and automatic cursor reset.

🏷️ Incremental Optimization (Tagging)

  • Automatically tags successfully replaced videos with immich-optimizer and provides a filter toggle to exclude previously optimized videos on future scans as your library grows (works silently in the background).

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 08:35

What's Changed in v0.2.1

🎨 Adaptive Light & Dark Terminal Themes

  • Added automatic terminal background detection powered by lipgloss.AdaptiveColor (a94b4a1)
    • Configuration values, section headers, subtext, and status badges now automatically adjust to high-contrast tones (deep slate on light backgrounds, bright white on dark backgrounds).
    • Dynamic real-time encoding pulse animation adapts cleanly to both light and dark terminal themes.

📁 Immich Album & Favorite Preservation

  • Preserved album memberships and favorite status on newly uploaded assets (9edfae5)
    • Replacement assets automatically inherit the original video's placement across all existing Immich albums.
    • Favorite status (isFavorite) is checked and transferred to new replacement assets.
    • Fail-safe deletion guard: If assigning the new asset to original albums or setting favorite status fails, the pipeline safely aborts deletion of the original video to guarantee zero data loss.

Full Changelog: 0.2...v0.2.1

v0.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 02:26