A comprehensive cross-platform disc image conversion and audio CD ripping utility with metadata support.
- Convert Multiple Disc Image Formats: DMG, BIN, NRG, CUE, MDS, IMG, ISO, ISZ, UDF, CDI, DAO, TAO, and more
- Burn to Optical Media: CD, DVD, and Blu-ray disc burning with verification
- Virtual Drive Management: Mount and unmount ISO images as virtual drives
- Audio CD Ripping: Full support for extracting audio CDs with automatic metadata lookup
- Audio Conversion: Convert between multiple audio formats (MP3, WAV, FLAC, AAC, OGG, M4A, WMA, OPUS, APE)
- Automatic Metadata Retrieval: Album info, artist names, and track titles from GnuDB
- High-Quality Audio Extraction: 320kbps MP3, lossless FLAC, and other format support
- Organized File Structure: Auto-creates Artist/Album folder hierarchy
- Multi-Format Audio Support: 9+ audio format conversions
- USB Drive Imaging: Create and manage USB drive images
- Bootable USB Creation: Create bootable USB drives with MBR/GPT support
- Disc Copying: Copy physical discs with verification
- Disc Image Creation: Create images from physical media
- Disc Verification: Verify disc integrity
- Audio Ripper: Extract audio tracks from CDs with metadata
- OS: Linux (Linux Mint, Ubuntu, Debian, Fedora, etc.) or Windows
- Python: 3.6 or higher
- RAM: 2GB minimum
- Storage: 100MB free space for application + storage for images/audio
# Fedora/RHEL
sudo dnf install cdparanoia ffmpeg
# Ubuntu/Debian/Linux Mint
sudo apt-get install cdparanoia ffmpeg
# Arch
sudo pacman -S cdparanoia ffmpeg- Download and install FFmpeg
- Download and install cdparanoia (optional, for CD audio extraction)
- Add both to system PATH
- Python 3.6+ (3.8+ recommended)
- tkinter (usually included with Python)
-
Clone or download the project
git clone https://github.com/david-spies/x-iso.git cd x-iso -
Install system dependencies
sudo apt-get update sudo apt-get install python3 python3-tk cdparanoia ffmpeg
-
Install Python dependencies (optional, for enhanced features)
pip3 install -r requirements.txt
-
Run the application
python3 X-ISO.py
-
Download the project files
-
Install Python 3.8+ from python.org
- Make sure to check "Add Python to PATH" during installation
-
Install FFmpeg
- Download from ffmpeg.org
- Extract and add to system PATH
-
Install Python dependencies (optional)
pip install -r requirements.txt
-
Run the application
python X-ISO.py
- Launch X-ISO and go to the "Convert" tab
- Click "Browse..." under "Source Image File"
- Select your image file (DMG, BIN, NRG, etc.)
- Set output filename with ".iso" extension
- Click "Convert to ISO"
- Wait for completion - progress bar shows status
- Success message appears when conversion is complete
- Insert an audio CD into your CD drive
- Go to Tools > Rip Audio CD
- Click "Read CD" to detect tracks
- Metadata automatically retrieves album, artist, and track names from GnuDB
- Select tracks to rip (default: all selected)
- Choose output format (MP3, FLAC, WAV, etc.)
- Select output folder
- Click "Start Ripping"
- Files are organized as:
Artist/Album/Track Number - Title.mp3
- Go to Tools > Audio Converter
- Click "Add Files..." to select audio files
- Choose output format (MP3, FLAC, WMA, etc.)
- Select quality/bitrate
- Choose output folder
- Click "Start Conversion"
- Go to Tools > Burn or click "Burn" tab
- Select image file to burn
- Choose target drive (CD-RW, DVD-RW, Blu-ray)
- Set burn options:
- Verify data after burning
- Finalize disc
- Write speed
- Click "Burn Disc"
- Go to Tools > Create Bootable USB
- Select ISO image file
- Choose target USB drive (
⚠️ Warning: data will be erased!) - Select partition scheme:
- MBR (BIOS/UEFI compatibility)
- GPT (UEFI only)
- Choose file system (FAT32, NTFS, exFAT)
- Click "Create Bootable USB"
- Go to Tools > Virtual Drive
- Click "Browse..." to select ISO image
- Click "Mount" to mount as virtual drive
- Select mounted drive and click "Unmount" to eject
- Apple: DMG
- Binary: BIN
- Nero: NRG
- CUE/BIN: CUE
- Media Descriptor: MDS
- Raw: IMG, DAO, TAO
- Universal: UDF
- DiscJuggler: CDI
- ISO: ISO, ISZ
- Others: VCD, TOAST, CIF, CCD, PCD
Input: CD Audio (CDDA) Output: MP3, WAV, FLAC, AAC, OGG, M4A, WMA, OPUS, APE
The application automatically retrieves metadata from GnuDB (replacement for FreeDB) when ripping CDs:
- Album title
- Artist name
- Release year
- Individual track titles
Metadata is embedded in ripped audio files with proper ID3 tags.
Solution: Install cdparanoia
# Linux
sudo apt-get install cdparanoia
# Windows: Use FFmpeg only (cdparanoia is optional)Solution: Install FFmpeg
# Linux
sudo apt-get install ffmpeg
# Windows: Download from ffmpeg.org- Check that CD drive is accessible
- Verify CD is inserted correctly
- Try different CD drive if available
- Check system permissions for CD drive access
- CD may not be in GnuDB database
- Check internet connection (required for GnuDB lookup)
- Metadata will still be available for standard CDs (track numbers and durations)
- Ensure source file is readable
- Check output folder has write permissions
- Verify sufficient disk space
- Check console output for detailed error messages
- Use higher bitrate settings (320kbps for MP3)
- Use lossless formats (FLAC, WAV) for archival
- Ensure source audio is high quality
When ripping CDs, files are automatically organized:
Output Folder/
└── Artist Name/
└── Album Title/
├── 01 - Track Title.mp3
├── 02 - Another Track.mp3
└── ...
All settings are saved in the application and persist between sessions:
- Recent file paths
- Preferred output formats
- Quality settings
- Output folders
- Use SSD for output: Faster writing for large images
- Close other applications: More system resources for conversion
- Use lossless formats: Better for archival (FLAC, WAV)
- High bitrate audio: 320kbps MP3 or FLAC for best quality
- Windows Media Player integration limited on Linux
- Some proprietary disc formats may not be supported
- Network-based CD drives have limited support
- Real-time audio streaming not supported
- Python 3.6+
- tkinter
- FFmpeg
- cdparanoia
- python-discid
- musicbrainzngs
MIT License - Feel free to use, modify, and distribute
Contributions are welcome! Please submit issues and pull requests.
For issues and feature requests, please visit the project repository or contact support.
Version: 1.8
Last Updated: June 5, 2026
Platform: Cross-Platform (Linux, Windows)
Python Version: 3.6+