A modern, automated DVD/Blu-ray ripping solution built with .NET 6
AutoRip2MKV is a complete rewrite of the original AutoIt-based AutoRip2MKV, now modernized with C# and .NET 6. This headless ripping application automates your entire disc library conversion process using MakeMKV for ripping and HandBrake for encoding.
- Zero-touch operation - Set as your default DVD/Blu-ray handler for fully automated ripping
- Auto-eject and wait - Automatically ejects discs and waits for the next one
- Batch processing - Handle multiple discs without intervention
- Full quality MKV ripping with chapters, forced subtitles, and Dolby 5.1
- Optional MP4 conversion using customizable HandBrake presets
- Smart cleanup - Option to delete intermediate MKV files after conversion
- Configurable title filtering - Skip extras and trailers automatically
- Dependency Injection - Clean, testable architecture with IoC container
- Async/Await patterns - Non-blocking operations throughout
- Comprehensive logging - Structured logging with configurable levels
- Progress tracking - Real-time operation monitoring
- Configuration validation - Robust settings validation and error handling
- Secure credential management - Windows Credential Manager integration
- Error handling - Comprehensive exception handling with custom error types
- Unit testing - Full test coverage for core functionality
- CI/CD pipeline - Automated builds, tests, and releases
- Headless operation - Auto-closing dialogs for CI/CD environments
- Windows 10/11 (required for Windows Forms and credential management)
- MakeMKV - Free for DVD, license required for Blu-ray
- HandBrake CLI - For MP4 conversion (optional)
- .NET 6.0 Runtime (if using framework-dependent build)
-
Download the latest release:
# Download self-contained executable (recommended) curl -L -o AutoRip2MKV.exe https://github.com/gmoyle/AutoRip2MKV_3/releases/latest/download/AutoRip2MKV.exe -
Or build from source:
git clone https://github.com/gmoyle/AutoRip2MKV_3.git cd AutoRip2MKV_3 dotnet build --configuration Release
- Configure your settings through the application interface
- Set as default handler for DVD/Blu-ray auto-play (optional)
- Insert a disc and let AutoRip2MKV handle the rest!
- Temp Directory: Fast storage for intermediate files (SSD recommended)
- Final Directory: Long-term storage location for completed files
- Both must be subfolders, not root drives
Customize the HandbrakeCMDLine setting to match your target hardware. Include only the preset settings from the file extension onward:
Examples:
- Universal:
-e x264 -q 20 -B 160 - High Quality:
-e x264 -q 18 -B 320 - Mobile Optimized:
-e x264 -q 22 -B 128 -X 720
For more presets, see HandBrake's Built-in Presets
Recommended MakeMKV selection profile for English content:
-sel:all,+sel:subtitle,-100:(eng),-99:(forced*(eng)),-90:(eng),-89:(forced*(eng)),+sel:audio,-sel:special,-100:(audio*(eng)),-90:(audio*(eng))
The MinimumTitleLength setting (default: ~20 minutes) filters out extras and trailers. Adjust for:
- TV Episodes: Lower value (e.g., 15 minutes)
- Movies Only: Higher value (e.g., 45 minutes)
AutoRip2MKV includes built-in support for headless operation in CI/CD environments:
- Auto-detection - Automatically detects CI/CD environments (GitHub Actions, Jenkins, etc.)
- Smart defaults - Returns sensible default responses for all dialog boxes
- 30-second timeout - Interactive dialogs auto-close after 30 seconds if no user interaction
- No hanging - Prevents CI/CD pipelines from hanging on user input prompts
The headless mode automatically activates when any of these environment variables are detected:
CI,CONTINUOUS_INTEGRATION,BUILD_NUMBERGITHUB_ACTIONS,TRAVIS,CIRCLECI,APPVEYORGITLAB_CI,JENKINS_URL,TF_BUILDAZURE_HTTP_USER_AGENT
- Safe deletion - File and directory operations work without UI prompts in headless mode
- Fallback handling - Gracefully handles recycle bin operations when not available
- Comprehensive logging - All operations are logged for debugging
# Restore dependencies
dotnet restore
# Build solution
dotnet build --configuration Release
# Run tests
dotnet test
# Create self-contained executable
dotnet publish -c Release -r win-x64 --self-contained true --single-file# Run all tests
dotnet test
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"
# Run specific test category
dotnet test --filter Category=UnitThe project includes comprehensive GitHub Actions workflows:
- Build & Test: Validates all PRs and commits
- Release: Creates artifacts for releases
- Code Quality: SonarCloud integration (optional)
- Security: Vulnerability scanning
- OS: Windows 10/11
- Framework: .NET 6.0
- RAM: 2GB minimum, 4GB recommended
- Storage: Fast temp drive (SSD) recommended for performance
- MakeMKV: Core ripping functionality
- HandBrake CLI: MP4 conversion (optional)
- Windows Credential Manager: Secure credential storage
Contributions are welcome! Please read our contributing guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Install Visual Studio 2022 or VS Code with C# extension
- Install .NET 6.0 SDK
- Clone the repository and restore packages
This project is licensed under the MIT License - see the LICENSE file for details.
User assumes all risks and liabilities for use of this application. This software is provided "as is" without warranty of any kind. Please ensure you have the legal right to rip any discs you process.
- MakeMKV team for the excellent ripping engine
- HandBrake team for the powerful encoding tools
- Original AutoIt version contributors
- The .NET community for excellent tooling and libraries
- Warp 2.0 team for creating an amazing Agentic Development Environment that revolutionized development workflow
Made with β€οΈ for disc preservation enthusiasts
Report Bug β’ Request Feature β’ Discussions