DVD & Blu-ray Ripping with Open-Source Decryption
v2.0.0 - Automatic Movies / TV Shows routing into Plex libraries
π€ AI Development Experiment: This entire application was built using AI assistance (Warp 2.0 + Claude Code) by someone with zero Swift experience and an Art Degree. Read the full experiment documentation π¨βπ¨βπ»
A native macOS application for automatically ripping DVDs and Blu-rays to MKV format. DVDs rip with no setup using open-source libdvdcss; Blu-ray decryption is handled by MakeMKV (see Blu-ray support).
- Hands-free ripping - Insert a disc and walk away: auto-rip on insert, auto-eject when the read finishes, skip discs already ripped
- DVD CSS Decryption - Open-source libdvdcss for Content Scramble System decryption
- Blu-ray Support - Via MakeMKV (auto-detected once installed); the app helps you set it up on first run
- DVDs need nothing extra - No MakeMKV, key database, or other tools required for DVD ripping
- All tracks captured - Every audio and subtitle track, tagged with languages from the disc
- Auto-deinterlace - Interlaced (NTSC) sources are deinterlaced automatically
- Plex-ready -
Movie (Year)naming and defaults to your local Plex movie library - Bundled FFmpeg - No downloads or Homebrew needed
- Hardware Acceleration - Optional VideoToolbox acceleration
- Automatic Drive Detection - Smart optical drive detection and selection
- Native macOS interface built with Swift and AppKit; persistent settings
- Progress tracking and logging with real-time updates
- Automatic DVD/Blu-ray structure analysis and title detection
- Chapter preservation and metadata inclusion
- Multiple video/audio codec support (H.264, H.265, AV1, AAC, AC3, DTS, FLAC)
- Configurable quality settings
- π€ 100% AI-Generated: 13,715 lines of Swift code created entirely by AI
β¨ Just download and run - no building required!
- Download the latest release from GitHub Releases
- Open the DMG file and drag AutoRip2MKV to Applications
β οΈ First Launch: Right-click the app β "Open" to bypass macOS security- FFmpeg: Already bundled - no downloads needed!
- Start ripping! - Fully self-contained, works offline
π Need help with installation? See the detailed Installation Guide for step-by-step instructions to handle macOS security restrictions.
Requirements:
- macOS 13.0 or later
- Swift 5.8+ and Xcode Command Line Tools
Steps:
git clone https://github.com/gmoyle/AutoRip2MKV-Mac.git
cd AutoRip2MKV-Mac
swift build && swift runWhen you launch AutoRip2MKV for the first time, the application will:
- Verify FFmpeg - Automatically check that the bundled FFmpeg is available
- Hardware Detection - Test if your Mac supports VideoToolbox hardware acceleration
- Acceleration Dialog - If supported, offer to enable hardware acceleration for faster processing
- Save Preferences - Your choice is remembered for future sessions
With the default settings, ripping is hands-free β insert a disc and walk away:
- Launch AutoRip2MKV from Applications (leave it running).
- Insert a DVD/Blu-ray. The app detects it, identifies the movie, and starts ripping automatically.
- The disc ejects when the read finishes; encoding continues in the background.
- Insert the next disc. Repeat for as many as you like.
The main window shows the queue and live progress (disc-read size, then encode percentage). The app handles everything automatically:
- β FFmpeg bundled (no downloads or Homebrew needed)
- β Drive detection, disc identification (OMDb), and CSS/AACS decryption
- β Auto-deinterlace of interlaced (NTSC) sources
- β All audio and subtitle tracks captured, with language labels
- β
Conversion to MKV, with Plex-style
Movie (Year)naming - β Automatic Movies / TV Shows routing into separate Plex library folders
- β Auto-eject when the read completes; already-ripped discs are skipped
- β Optional hardware acceleration (VideoToolbox)
- β Cancel a rip in progress from the main window
Overrides: a disc already ripped with the current settings is skipped and ejected. Change any rip setting, hold β₯ Option while inserting, or click Start Ripping to force a re-rip. Auto-rip, auto-eject, and skip-already-ripped each have a checkbox in the main window; the output directory can be changed with Browse (it defaults to your Plex movie library if one is found).
Rips are named Movie (Year)/Movie (Year).mkv and default to your local Plex
movie library, so finished files appear in Plex automatically. Point AutoRip's
output at a local folder (not an iCloud-synced one like Desktop or Documents).
DVDs rip with no setup. Blu-ray discs use AACS/BD+ copy protection that AutoRip2MKV cannot legitimately decrypt on its own, so Blu-ray ripping is handled by MakeMKV (free during its beta), which manages decryption with its own keys. AutoRip2MKV ships no decryption keys.
- On first launch, the app offers to help you install MakeMKV. You can also install it any time from makemkv.com/download.
- Once MakeMKV is installed, AutoRip2MKV detects and uses it automatically β insert a Blu-ray and it rips just like a DVD, with the same Plex-style naming and output location.
- The "Use MakeMKV for Blu-ray" setting (Detailed Settings, on by default)
controls this. Advanced users can instead supply a libaacs key database at
~/.config/aacs/KEYDB.cfgto use the built-in libaacs path.
Note: MakeMKV's Homebrew cask is deprecated (fails macOS Gatekeeper) and is scheduled for removal on 2026-09-01. The download from makemkv.com is the recommended, durable install method.
The application expects a mounted DVD with the standard VIDEO_TS structure:
/Volumes/YOUR_DVD/
βββ VIDEO_TS/
βββ VIDEO_TS.IFO
βββ VTS_01_0.IFO
βββ VTS_01_1.VOB
βββ VTS_01_2.VOB
βββ ...
This project is built using Swift Package Manager and native macOS frameworks:
- Swift: Primary programming language
- AppKit: Native macOS UI framework
- Cocoa: macOS development framework
AutoRip2MKV-Mac/
βββ Sources/
β βββ AutoRip2MKV-Mac/
β βββ main.swift # Application entry point
β βββ AppDelegate.swift # App lifecycle management
β βββ MainViewController.swift # Main UI and user interaction
β βββ DVDDecryptor.swift # Native CSS decryption engine
β βββ DVDStructureParser.swift # DVD filesystem parser
β βββ DVDRipper.swift # Main ripping coordinator
βββ Tests/
β βββ AutoRip2MKV-MacTests/
β βββ AutoRip2MKV_MacTests.swift
βββ Package.swift
βββ README.md
Note: Most users should download the pre-built release instead of building from source.
# For development: Build, test, and run
swift build && swift test && swift run- Installation Guide - Detailed setup instructions for macOS
- User Guide - Comprehensive feature documentation
- Decryption Libraries - Integration details for libdvdcss and libaacs
- Changelog - Release history and version changes
- Roadmap - Project timeline and planned features
See our comprehensive Roadmap for planned features, enhancements, and long-term project goals including:
- Enhanced 4K Support: Ultra HD Blu-ray detection and processing
- Hands-free automation: auto-rip on insert, auto-eject, skip already-ripped discs
- Professional Features: Metadata management and enterprise tools
- Cross-Platform Expansion: Linux and Windows support evaluation
- AI Development Evolution: Next-generation code generation experiments
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This application uses open-source decryption libraries (libdvdcss and libaacs) from VideoLAN for production-ready DVD and Blu-ray decryption:
DVD Decryption (libdvdcss):
- CSS authentication and key management
- Automatic title key retrieval
- Sector-by-sector decryption during read operations
- Battle-tested implementation from VLC Media Player
Blu-ray Decryption (libaacs):
- AACS authentication and processing
- 6144-byte unit decryption
- KEYDB.cfg integration for key management
- Production-ready Blu-ray support
The application parses the DVD structure natively:
- VMGI (Video Manager Information) parsing
- VTS (Video Title Set) analysis
- Program Chain (PGC) information extraction
- Chapter and cell information parsing
- Duration and metadata extraction
After decryption, the application uses bundled FFmpeg for video conversion:
- FFmpeg v7.1.1-tessus bundled for immediate use
- Support for multiple codecs (H.264, H.265, AV1)
- Audio codec options (AAC, AC3, DTS, FLAC)
- Chapter preservation
- Metadata inclusion
- Quality settings (CRF-based)
- No external dependencies or downloads required
This software is intended for legitimate backup purposes of DVDs you legally own. Users are responsible for complying with all applicable laws regarding DVD copying and CSS circumvention in their jurisdiction.
This project represents a groundbreaking experiment in AI-powered software development:
- Developer: Art degree, zero Swift experience
- Code written by human: 0 lines β 100% AI-generated
- Development method: 100% AI-assisted (Warp 2.0, then Claude Code)
- Codebase: ~13,000 lines of Swift across the app and tests
- Latest release: v2.0.0 - Automatic Movies / TV Shows routing into Plex libraries (Jul 2026)
- Features: DVD/Blu-ray ripping, libdvdcss/libaacs decryption, hands-free auto-rip, all-track capture, Plex-ready output
π Read the full experiment documentation to see how AI democratizes software development.
"From art degree to Swift developer in one conversation" π¨βπ¨βπ»
- Warp 2.0 Agent Mode for making this experiment possible
- Susanne Moyle for recommending the nostalgic floppy disk design element
- The Swift and macOS development communities
- FFmpeg project for video conversion capabilities
- DVD Forum specifications for DVD structure documentation
|
Main Icon 512Γ512 Application Icon |
Simple Icon 128Γ128 Favicon & Small UI |
Horizontal Logo 400Γ120 Documentation & Web |
Professional macOS-style icon featuring a large DVD disc with bright orange floppy disk overlay,
representing the classic-to-digital conversion process. Floppy disk design recommended by
Susanne Moyle for nostalgic throwback appeal, with anatomically correct vertical access window.
