Skip to content

drawpitech/sfsu-csc-853-final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DVD Ripper

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.

Features

  • 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

Installation

Using Nix

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 develop

Build from source

cargo build --release

The binary will be available at target/release/ripper.

Dependencies

  • Rust toolchain (edition 2024)
  • ffmpeg and ffprobe
  • libdvdcss (bundled and built automatically)

Quick Start

List available titles on a DVD:

ripper --list

Rip a DVD with interactive title selection:

ripper

Rip a specific title to MP4 with hardware acceleration:

ripper --vts 1 --out movie.mp4 --hwaccel vaapi

Use a pre-mounted DVD:

ripper --path /mnt/dvd/VIDEO_TS

Usage

Options:
  -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

Project Structure

  • ripper/ - Main CLI application
  • dvdcss/ - Rust bindings to libdvdcss
  • ffmpeg/ - FFmpeg wrapper for video conversion

Notes

  • Requires permissions to access DVD devices (may need sudo or cdrom group membership)
  • Hardware acceleration support depends on your system and drivers
  • Decryption functionality requires a working libdvdcss installation

Contributing

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

License

This project is licensed under the MIT License and was created for educational purposes as part of CSC 853 at SFSU.

About

DVD Ripper Decryption CLI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published