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

  • tkinter

  • threading

  • subprocess

  • os

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.)