A fast DVD decryption and ripping tool written in Rust. Parses DVD IFO structures, decrypts VOB files using libdvdcss, and optionally encodes to modern formats with hardware acceleration support.
Built as a project for CSC 853 (Network Security) at San Francisco State University.
- IFO Parsing - Read DVD metadata from VIDEO_TS.IFO and VTS_*.IFO files
- CSS Decryption - Decrypt protected DVDs using libdvdcss
- Auto-Mount - Automatically mount and unmount DVD devices
- Hardware Encoding - Support for VAAPI, NVENC, and QSV acceleration
- Interactive Selection - Choose titles interactively or via command-line arguments
- Format Conversion - Output to VOB, MP4, or AVI formats
A Nix flake is provided for both development and installation:
# Run directly
nix run github:drawpitech/sfsu-csc-853-final-project
# Build the package
nix build
# Enter development shell
nix developcargo build --releaseThe binary will be available at target/release/ripper.
- Rust toolchain (edition 2024)
- ffmpeg and ffprobe
- libdvdcss (bundled and built automatically)
List available titles on a DVD:
ripper --listRip a DVD with interactive title selection:
ripperRip a specific title to MP4 with hardware acceleration:
ripper --vts 1 --out movie.mp4 --hwaccel vaapiUse a pre-mounted DVD:
ripper --path /mnt/dvd/VIDEO_TSOptions:
-d, --device <DEVICE> Path to DVD device [default: /dev/sr0]
-p, --path <PATH> Path to pre-mounted VIDEO_TS directory
-v, --vts <VTS> VTS number to extract (e.g., 2 for VTS_02)
-o, --out <OUT> Output path (extension determines format)
--hwaccel <HWACCEL> Hardware acceleration [default: auto]
[possible values: auto, vaapi, nvenc, qsv, none]
--list List all available titles and exit
--dry-run Parse DVD structure without decrypting
ripper/- Main CLI applicationdvdcss/- Rust bindings to libdvdcssffmpeg/- FFmpeg wrapper for video conversion
- Requires permissions to access DVD devices (may need
sudoorcdromgroup membership) - Hardware acceleration support depends on your system and drivers
- Decryption functionality requires a working libdvdcss installation
Contributions are welcome! Feel free to open issues or submit pull requests for:
- Bug fixes and improvements
- Additional hardware encoder support
- Documentation enhancements
- Platform compatibility fixes
This project is licensed under the MIT License and was created for educational purposes as part of CSC 853 at SFSU.