CD Ripper to FLAC
Feature Status Notes
Disc Detection✅ WorkingPolls /dev/sr0 or /dev/cdrom every 3 seconds using udevadm.
Rip Process✅ WorkingUses abcde -N -o <format> to rip audio CDs; live log shown in GUI.
Output Format Selector✅ WorkingDropdown allows FLAC, MP3, or OGG.
Output Folder Picker✅ WorkingOpens system folder dialog; default = ~/Music.
Custom App Icon✅ Working.desktop entry + PhotoImage() icon; dock and app launcher icons in sync.
Output Viewer✅ Working“Open Output Folder” opens system file browser to rip directory.
Thread Safety✅ WorkingBackground threads prevent GUI freezing.
GUI Framework✅ WorkingPure tkinter (standard on Linux + macOS).
⚙️ Dependencies
Linux (Debian / Ubuntu / Mint / Fedora)
You’ll need:
sudo apt install abcde cdparanoia lame flac vorbis-tools eject udev
Python modules (all built-in):
tkinterthreadingsubprocessos
macOS
You’ll need Homebrew:
brew install abcde cdparanoia flac lame vorbis-tools
Tkinter is already bundled with macOS Python, but if not:
brew install python-tk💻 File Structure (Recommended)
~/Applications/CDRipper/
│
├── cdripper_gui.py
├── cdripper_icon.png
├── cdripper.desktop (Linux only)
└── README.md🚀 Launch Options
Linux (.desktop launcher)
Works already via your .desktop file:
[Desktop Entry]
Version=1.0
Type=Application
Name=CD Ripper
Comment=Rip audio CDs to FLAC
Exec=/home/<user>/Applications/cdripper_gui.py
Icon=/home/<user>/Applications/cdripper_icon.png
Terminal=false
Categories=AudioVideo;Audio;GTK;
StartupNotify=true
Make it executable:
chmod +x ~/Applications/cdripper_gui.py
chmod +x ~/.local/share/applications/cdripper.desktop
macOS
You can create an app bundle using:
pip install py2app
python setup.py py2app
That’ll package it into a .app with your icon. (We’ll handle this step next if you want.)
