Skip to content

Latest commit

ย 

History

19 Commits

Folders and files

Repository files navigation

Disc Ripper Pro

Disc Ripper Pro Logo

A modern, high-performance optical disc extraction & conversion suite for Windows
Effortlessly extract, convert, and preserve video tracks and movies from VCD and DVD-Video discs โ€” featuring a sleek adaptive UI, chapter-level precision, multi-audio selection, and zero-fuss automation.

Version Platform License Python Engine


๐ŸŒŸ Highlights

  • VCD & DVD Dual Pipeline: Unified, intelligent disc scanner that detects optical media automatically.
  • HandBrakeCLI + FFmpeg Hybrid DVD Engine: Ultra-fast, progressive DVD title and chapter transcoding powered by HandBrakeCLI, with automatic fallback to FFmpeg IFO stream parsing.
  • Chapter-Level Ripping & Timeline Generation: Rip entire DVD titles or select individual chapters directly from collapsible cards. Automatically generate microsecond-accurate .txt chapter timeline files via bundled FFprobe.
  • Comprehensive Audio Track Selection: Discover all audio streams (AC-3, DTS, LPCM, MPEG Audio, 5.1 multichannel) with language metadata and per-title selection persistence across both video and audio-only extraction modes.
  • Deep Software Optimizations: Background subprocess execution with zero command-prompt window popups, instantaneous dark/light theme switching, 100%/125%/150% UI scaling with rock-solid window maximize/restore layout stability, and configurable process CPU priority.

โœจ Features Breakdown

๐Ÿ“€ DVD Pipeline Features

Feature Description
๐Ÿš€ Hybrid Dual Engine High-performance title discovery and progressive ripping via HandBrakeCLI, seamlessly backed by FFmpeg / IFO parsing fallback if HandBrakeCLI is unavailable.
๐Ÿ“‘ Hierarchical Title & Chapter Ripping All chapters are expanded by default in interactive cards. Rip the complete title (_FULL), select specific chapters, or extract individual chapters without cumbersome mode switching.
โฑ Chapter Timeline File (.txt) Optional automatic timeline export (Generate Chapter Timeline File (.txt)) creating a companion text file (e.g., Title_01_FULL_Chapter_Timeline.txt) with exact timestamps and formatted FFprobe command.
๐ŸŽง Full Audio Track Selection Complete discovery of all audio tracks per title (track number, language, codec, channel layout such as Stereo or 5.1 Surround). Supports explicit stream mapping across MP4, MOV, MPG, WAV, MP3, and dual Video+Audio modes.
๐Ÿ“ DVD Title Output Subfolders Optional Create folder with DVD title automatically organizes ripped titles and chapters into neat disc-title subfolders.
๐Ÿ”„ Hierarchical Selection Logic One-click ALL selects all titles and all chapters simultaneously; None deselects all. Individual checkboxes update parent counts reactively.
๐Ÿ›  MPEG Timestamp & Sync Hardening Robust handling of MPEG-2 PCR/PTS timeline discontinuities, dropped frames, and audio-video drift prevention for old or scratched discs.

๐Ÿ’ฟ VCD Pipeline Features

Feature Description
โšก Direct Raw DAT Copy Extract raw .dat MPEG-1 video tracks directly from VCD discs without re-encoding โ€” transfers at maximum optical drive read speed.
๐ŸŽž Video Conversion Convert DAT tracks to modern MP4 (H.264 + AAC), MOV, or standard MPG containers.
๐Ÿ“ 1080p Resolution Upscale High-quality Lanczos upscaling to 1080p (1440ร—1080 for 4:3 aspect ratio, 1920ร—1080 for 16:9).

๐ŸŽต Export Modes & Audio Formats

Feature Description
๐ŸŽฌ Video Mode Export video with audio in MP4, MOV, MPG, or DAT formats.
๐ŸŽง Audio Only Mode Extract pristine soundtrack audio directly into WAV (lossless PCM) or MP3 (high-bitrate).
๐Ÿ”€ Video and Audio Dual Mode Simultaneously produce both the video file and a standalone audio track in a single extraction pass.
๐ŸŽจ Smart Greyout Layout Resolution and video-specific options gracefully transition to a greyed-out disabled state when Audio Only is active, preventing distracting UI reflows.

โšก Software Optimizations & UX Enhancements

Feature Description
๐ŸชŸ Zero Console Window Flashes All background operations (FFmpeg, FFprobe, HandBrakeCLI, PowerShell eject) utilize Win32 CREATE_NO_WINDOW, eliminating command prompt popups on Windows.
๐ŸŒ“ Adaptive Theme System Seamlessly toggle between System (follows Windows Dark/Light mode), Light Mode, and Dark Mode. Color palettes, headers, cards, and modal dialogs refresh cleanly with high contrast.
๐Ÿ” Multi-DPI Interface Scaling Presets for 100%, 125%, and 150% UI scaling. Engineered with strict sidebar docking and dynamic canvas reflow to ensure zero dead margins when maximizing or restoring the window.
๐ŸŽ Ripping Process Priority Configurable CPU scheduling in Settings: Low, Medium, or High (default). Keeps heavy ripping jobs fast while leaving system multitasking responsive.
๐ŸŽž Ripping FPS Mode Choose between Passthrough (default, preserves original frame rate) and CFR (constant frame rate) for maximum device compatibility.
โœ Individual & Batch Renaming Direct โœ rename buttons on every Title and Chapter card. Includes a sequential Batch Rename tool supporting custom prefix, start index, and suffixes.
๐Ÿ“Š Real-Time Progress & Taskbar Sync Unified, smooth progress tracking displaying current track/chapter progress alongside total job percentage, mirrored directly on the Windows taskbar icon.
๐Ÿ–ฑ Global MouseWheel Scrolling Hover over any scrollable view (source options, track list, right sidebar, console log) to scroll immediately without clicking to focus.
๐Ÿ”’ Single-Instance Mutex Windows system-level mutex prevents duplicate instances from launching; re-launching brings the active window to the foreground.
โ Optical Drive Ejection Multi-strategy safe disc ejection utilizing Win32 DeviceIoControl (IOCTL_STORAGE_EJECT_MEDIA) and PowerShell fallback.
๐ŸŒ Bilingual Localization Instant, runtime language switching between English and ็ฎ€ไฝ“ไธญๆ–‡ (Simplified Chinese).

๐Ÿ–ฅ System Requirements

Requirement Minimum Recommended
Operating System Windows 7 SP1 (64-bit) Windows 10 / 11 (64-bit)
Processor Dual-core x86-64 CPU Quad-core Intel Core i5 / AMD Ryzen or better
Memory (RAM) 512 MB 2 GB or more
Disk Space ~200 MB for app & tools 10+ GB free space for ripped video files
Optical Drive DVD-ROM / CD-ROM drive High-speed internal or USB 3.0 external drive
Python (source only) Python 3.9+ Python 3.11+ (bundled in portable build)

๐Ÿš€ Getting Started

Option A: Portable Release (Recommended โ€” No Installation Required)

  1. Download Disc_Ripper_Pro_Portable_v2.0.0.zip from the Releases directory.
  2. Extract the archive to any folder on your computer.
  3. Double-click Disc Ripper Pro.exe to run.
  4. Note: Keep the bundled _internal\ and ffmpeg\ folders alongside Disc Ripper Pro.exe.

Option B: Run from Source

1. Clone or Download the Repository

git clone https://github.com/jjsiew2014-art/vcd-ripper-pro.git
cd vcd-ripper-pro

2. Install Dependencies

pip install -r requirements.txt

(Dependencies: Pillow for high-resolution graphics and UI icons)

3. Setup FFmpeg

If FFmpeg is not installed on your system PATH, download it automatically:

python setup_ffmpeg.py

Or place ffmpeg.exe and ffprobe.exe into a local ffmpeg/bin/ folder.

4. Launch Application

python vcd_ripper.py

Or double-click launch.bat.


๐Ÿ“– Usage Guide

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ [๐Ÿ’ฟ Logo] Disc Ripper Pro v2.0.0               [โ Eject] [โœ Rename] [โš™ Settings] [Log] โ”‚  <- Header
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ SOURCE & SEL      โ”‚ VIDEO FILES LIST                               โ”‚ EXPORT CONTROLS   โ”‚
โ”‚                   โ”‚                                                โ”‚                   โ”‚
โ”‚ ๐Ÿ’ฟ Disc Auto-Detectโ”‚ ๐Ÿ“ผ Title 01 (DVD-Video, 01:45:12, 720ร—480) โœ  โ”‚ Output Format:    โ”‚
โ”‚    [Scan Disc]    โ”‚    โ”œโ”€ โ˜‘ Chapter 01 (00:00 โ†’ 05:20) โœ           โ”‚ (โ€ข) Video         โ”‚
โ”‚                   โ”‚    โ”œโ”€ โ˜‘ Chapter 02 (05:20 โ†’ 12:45) โœ           โ”‚ ( ) Audio Only    โ”‚
โ”‚ Selection:        โ”‚    โ””โ”€ โ˜‘ Chapter 03 (12:45 โ†’ 24:10) โœ           โ”‚ ( ) Video + Audio โ”‚
โ”‚    [โ˜‘ ALL] [โ˜ NONE]โ”‚                                                โ”‚                   โ”‚
โ”‚                   โ”‚ ๐Ÿ“ผ Title 02 (DVD-Video, 00:25:00) โœ            โ”‚ Format: MP4 / MOV โ”‚
โ”‚                   โ”‚    โ””โ”€ โ˜‘ Chapter 01 ...                         โ”‚ [โšก Start Ripping] โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  1. Insert Disc & Detect:
    • Insert a VCD or DVD into your optical drive. Disc Ripper Pro automatically identifies the disc format and triggers a scan.
    • Alternatively, click Browse Folder to target a local folder containing a VCD structure or a DVD VIDEO_TS directory.
  2. Review Titles & Chapters:
    • For DVDs, titles are listed with duration, resolution, audio streams, and chapters.
    • Expand or collapse chapters as desired. Check or uncheck individual chapters to extract only specific segments.
    • Click the โœ button on any title or chapter to assign a custom output filename, or use Batch Rename in the header.
  3. Configure Export Settings:
    • In the right sidebar, choose your output format (MP4, MOV, MPG, or raw DAT for VCD).
    • If ripping audio, select Audio Only (WAV or MP3), or choose Video and Audio to rip both simultaneously.
    • For DVDs with multiple languages, select the desired Audio Track from the dropdown.
    • (Optional) Check Create folder with DVD title to organize files automatically.
    • (Optional) Check Generate Chapter Timeline File (.txt) for companion timestamp files.
  4. Start Ripping:
    • Click โšก Start Ripping. Progress is shown on-screen and on the Windows taskbar.
    • You can stop an ongoing rip at any time by clicking โน Stop Ripping.

โš™ Application Settings & Customization

Click the โš™ Setting button in the top-right header to configure:

  • Appearance: Toggle between System (syncs with Windows), Light Mode, and Dark Mode.
  • Interface Scaling: Choose 100%, 125%, or 150% scaling for optimal readability across 1080p, 2K, and 4K displays.
  • Ripping Process Priority: Adjust CPU scheduling priority (Low, Medium, High) to balance transcoding speed with system multitasking.
  • Ripping FPS Mode: Select Passthrough (recommended for native frame timing) or CFR (constant frame rate).
  • Language: Switch instantly between English (EN) and ็ฎ€ไฝ“ไธญๆ–‡ (ไธญ).

๐Ÿ—‚ Project Structure

Disc Ripper Pro/
โ”œโ”€โ”€ vcd_ripper.py          # Main GUI application, pipeline orchestration & state management
โ”œโ”€โ”€ dvd_engine.py          # DVD parsing, HandBrakeCLI & FFmpeg/IFO transcoding engine
โ”œโ”€โ”€ disc_detector.py       # Optical drive media type detection & drive inspection
โ”œโ”€โ”€ CompactDisc.png        # Application logo
โ”œโ”€โ”€ CompactDisc.ico        # Multi-resolution Windows application icon
โ”œโ”€โ”€ en.json                # English translation catalog
โ”œโ”€โ”€ zh-CN.json             # Simplified Chinese translation catalog
โ”œโ”€โ”€ config.json            # User preferences persistence (theme, scale, priority, fps)
โ”œโ”€โ”€ launch.bat             # Quick launcher script
โ”œโ”€โ”€ build.bat              # PyInstaller automated packaging script
โ”œโ”€โ”€ setup_ffmpeg.py        # FFmpeg automatic download utility
โ”œโ”€โ”€ requirements.txt       # Python package dependencies
โ”œโ”€โ”€ Disc Ripper Pro.spec   # PyInstaller build specification
โ”œโ”€โ”€ tests/                 # Automated test suite (152+ unit and regression tests)
โ”‚   โ””โ”€โ”€ test_disc_ripper.py
โ””โ”€โ”€ ffmpeg/
    โ””โ”€โ”€ bin/
        โ”œโ”€โ”€ ffmpeg.exe     # Multimedia encoding/decoding engine
        โ””โ”€โ”€ ffprobe.exe    # Stream analysis & chapter inspection tool

๐Ÿ”ง Building from Source

To create the standalone portable release:

# 1. Install build requirements
pip install pyinstaller pillow

# 2. Compile executable using spec
pyinstaller --noconfirm "Disc Ripper Pro.spec"

# 3. Or run the automated build script
build.bat

The resulting standalone executable will be located in dist/Disc Ripper Pro/, and packaged into Release/Disc_Ripper_Pro_Portable_v2.0.0.zip.


๐Ÿงช Testing & Reliability

Disc Ripper Pro includes a comprehensive automated test suite with 152+ tests covering:

  • DVD and VCD auto-detection and fallback routing
  • HandBrakeCLI & FFmpeg title discovery and chapter timestamp extraction
  • Multi-audio stream mapping and 5.1 channel retention
  • Chapter timeline .txt file generation and FFprobe parameter formatting
  • Zero-console-window subprocess creation flag guarantees
  • Dynamic layout stability across 100%, 125%, and 150% DPI scaling under maximize and restore operations
  • Theme and language runtime switching integrity

Run the test suite with:

python -m unittest discover -s tests

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

Developed with passion by jjsiew2014-art. Free to use, modify, and distribute.

Releases

Packages

Contributors

Languages