Releases: Poisonite/MakeMKV-Auto-Rip
Releases · Poisonite/MakeMKV-Auto-Rip
MakeMKV Auto Rip v1.0.0
[1.0.0] - 2025-08-12
Added
- Modern Web UI - Complete graphical interface with real-time updates and responsive design
- Interface accessible at
http://localhost:3000 - Real-time status updates via WebSocket connections
- Live activity logs with auto-scrolling
- Responsive design that works on desktop, tablet, and mobile
- Interface accessible at
- Interactive Operation Control - Stop running operations from web UI
- Dynamic button states that change from "Start" to "Stop" during operations
- Graceful process termination with SIGTERM → SIGKILL fallback
- Real-time status tracking with
canStopproperty - Visual feedback with color-coded buttons on web UI
- CLI Integration for Web UI - Web UI uses actual CLI commands for reliability
- All operations execute real CLI commands (
npm run start,npm run load,npm run eject) - Future-proof: web UI automatically benefits from CLI updates
- Real program output streaming to web interface
- All operations execute real CLI commands (
- Advanced CLI Flags - New command line options for automation
--no-confirmflag to bypass "Rip or Dip?" prompt for automated ripping--quietflag to reduce verbose startup messages for cleaner output- Perfect for web UI context, automated scripts, docker or headless deployments, etc
- MakeMKV version checking and validation - The application now automatically checks MakeMKV version compatibility and provides user-friendly error messages when the installed version is too old MakeMKV to allow ripping. It also reports the installed version and warns about available updates.
- System Date Management - Temporarily change system date for MakeMKV operations (restored to network time after program finishes)
- Configure via web UI with intuitive date/time picker interface
- Support for date-only (
2024-01-15) or date-time (2024-01-15 14:30:00) formats - Cross-platform support: Windows, macOS, and Linux with native system commands
- Automatic date restoration after ripping operations complete
- Administrative privileges required for reliable system date modification
- One-click "Clear Date" button for easy reset to real system date when using the web config editor
- Automatic MakeMKV path detection - The application now automatically detects the MakeMKV installation path across Windows, macOS, and Linux, greatly simplifying setup for users.
- Refactored configuration loading and validation - Configuration loading and validation now handles missing or invalid custom MakeMKV paths gracefully, falling back to automatic detection when necessary (an install path for MakeMKV is no longer required).
- Documentation updates - Documentation has been updated to reflect changes to configuration, including troubleshooting steps related to MakeMKV installation.
- Complete project refactor with proper Node.js project structure
- Modular architecture with clear separation of concerns into services, utilities, and CLI modules
- Docker support - Full Docker containerization with multi-platform compatibility
- Dockerfile builds MakeMKV from source (v1.18.1) on Debian bookworm
- Includes required Linux tools for optical drives (
udisks2,eject,udev) - Runs Web UI by default, exposes port 3000, uses a non-root user (added to the cdrom group)
- Volumes for media/logs, health checks, and proper permissions
- Docker Compose with bind-mounted
config.yamland device mappings - Default compose service now uses the pre-built Docker Hub image; local build available via
buildprofile
- NPM package publishing - Ready for npm registry distribution
- Binary executable support (
makemkv-auto-ripcommand) - Added Web UI binary (
makemkv-auto-rip-web) for local installs - Proper package.json configuration for global installation
- Development files excluded from published package
- Optional dependencies for cross-platform compatibility
- Binary executable support (
- Cross-platform compatibility
- Docker environment detection
- Comprehensive test coverage for Docker functionality and cross-platform behavior
- Linux-compatible MakeMKV executable paths
- Advanced drive management - Separate configuration options for loading and ejecting drives
- Flexible ripping modes - Choose between async (parallel) or sync (sequential) ripping for optimal SSD or HDD performance
- Enhanced logging - Configurable 12hr/24hr time format options for console timestamps (defaults to 12hr)
- Standalone drive commands -
npm run loadandnpm run ejectfor drive operations without ripping - Docker management commands - Complete docker-compose workflow commands including
npm run docker:build,docker:run,docker:stop,docker:logs,docker:clean, anddocker:rebuildfor clean-slate development - CI/CD automation
- GitHub Actions edge pipeline builds multi-arch Docker image on pushes to
masterand tags as:edge - Release pipeline on tags publishes npm (stable →
latest, pre-release →next), Docker (stable →latest, pre-release →next), and creates GitHub Releases - Release notes are sourced from the matching section in
CHANGELOG.md - Docker Hub repository README is kept in sync from this project's
README.md - New dedicated Tests workflow runs unit tests in CI/CD and uploads coverage to Codecov
- Node.js matrix covers
20.x,22.x, and24.x - Coverage artifacts are uploaded and a summary is shown in the job output
- Codecov integration provides a hosted coverage dashboard and PR annotations
- Node.js matrix covers
- Badges added to
README.mdto showcase project status:- Build status, Tests status, Coverage (Codecov)
- License, NPM version/downloads
- Docker image version/pulls/size
- GitHub release/version/date, last commit, commit activity
- Open issues/PRs, contributors
- Supported OS platforms, Docker architectures, Node.js version, Module type (ESM), Testing framework (Vitest)
- GitHub Actions edge pipeline builds multi-arch Docker image on pushes to
- Parallel disc processing - Multiple discs now rip simultaneously instead of sequentially (originally completed by @Adam8234 and @ThreeHats --- Thank you!!!)
- Enhanced error handling - Comprehensive error handling throughout the application
- Improved logging - Structured logging with consistent formatting and colors
- Configuration validation - Automatic validation of required configuration settings
- Configurable drive loading delay - Users can now set custom delay times for drive loading operations, with the ability to disable delays entirely. The wait is disabled by default (only needed if you're ripping with certain USB or laptop/slimline drives that lack a retract mechanism).
- Cross-platform drive operations - New optical drive utility supports Windows, macOS, and Linux for loading and ejecting optical drives without external dependencies
- Hybrid Windows drive implementation - PowerShell WMI for accurate drive detection, native C++ addon using DeviceIoControl API for eject/load operations
- Mount detection and waiting - Configurable wait and re-polling mechanism to prevent drives from being skipped due to slow OS media detection.
- Windows uses 64 bit - Windows OS now uses the 64 bit version of makemkvcon (makemkvcon64.exe). Other OSes don't have seperate 32 vs 64 bit versions.
- Configurable repeat mode - Users can now enable/disable repeat mode through configuration, allowing the application to exit after ripping instead of prompting again
Changed
- Documentation - Main
README.mdhighlights Docker as the recommended path;README-DOCKER.mdcontains expanded details - Documentation -
README.mdupdated with comprehensive status badges (build/tests/coverage, ecosystem, and technical specs) - Packaging -
package.jsonupdated to include web assets and scripts in published package - Configuration format - Migrated from JSON (
config/Default.json) to YAML (config.yaml) for improved readability and easier editing - Configuration structure - Reorganized into logical sections:
paths,drives,ripping, etc for better organization - Path handling - Cross-platform path normalization with support for forward slashes on all platforms (no more escaped backslashes!)
- Configuration validation - Enhanced validation with clearer error messages referencing
config.yaml - Configuration drive options - Split
ejectDVDsinto separateloadDrivesandejectDrivesoptions for granular control - Ripping behavior options - Added
rippingModeoption to choose between async/sync processing (defaults to async) - Logging system options - Restructured the config options to a
loggingsection withtimeFormatoption for 12hr/24hr console timestamps (defaults to 12hr) - Cross-platform executable paths - MakeMKV executable path now adapts to Windows vs Linux vs macOS environments
- All dependencies updated - All project dependencies have been updated to their latest versions
- Removed
momentandcolors- Replaced withdate-fnsfor date/time andchalkfor colored output - Remove
config- Replaced withyamlto fit the new configuration style - Project now supports the latest Node.js LTS version - Minimum required Node.js version raised to v20 (older versions may work, but are not officially supported by us or Node.JS as of this release date)
- CI Tests matrix expanded - Continuous Integration now validates against Node.js
20.x,22.x, and24.x - Eliminated all batch files - Replaced with comprehensive npm commands
- Project structure - Code organized into logical modules under
src/directory - Entry point - Now uses
index.jsas main entry point instead ofAutoRip.js - Import system - Updated to ES6 modules throughout
- Configuration management - Centralized YAML configuration handling with validation
- User interface - Improved CLI with better prompts and messaging
Removed
- All
.batfiles (AutoRip.bat, DriveLoader.bat, Install-Nod...