This project is a Python-based tool for converting FLAC audio files to formats compatible with Apple Music, such as MP3. It provides both a command-line interface and a graphical user interface for ease of use.
- Convert FLAC files to MP3
- Batch conversion of entire directories
- Graphical user interface for easy file and format selection
- Preserve metadata and album artwork during conversion
- Multi-threaded processing for faster conversions
- Comprehensive logging for both audit and diagnostic purposes
- Robust error handling and reporting
- Clone this repository
- Install the required dependencies:
pip install -r requirements.txt
- Python 3.7+
- FFmpeg
This project requires FFmpeg to be installed on your system. You can install it using the following methods:
- On macOS:
brew install ffmpeg
- On Ubuntu or Debian:
sudo apt-get install ffmpeg
- On Windows: Download from https://ffmpeg.org/download.html
Make sure FFmpeg is in your system PATH after installation.
If you encounter an error about ffprobe not being found, ensure that FFmpeg is correctly installed and in your system
PATH. You can verify the installation by running ffmpeg -version
in your terminal.
Run the application with the graphical user interface:
make run
or
python main.py
This will launch the graphical user interface. Select your input directory containing FLAC files, choose an output directory, select the desired output format, and click "Convert" to begin the conversion process.
To run the tests for this project, you can use the Makefile provided. Ensure you have make
installed on your system.
Then, execute the following command in the root directory of the project:
make test
This command will discover and run all the tests in the tests directory using the unittest
framework.
src/
: Contains the main source codecore/
: Core functionality for audio conversion and file handlingutils/
: Utility modules for logging and custom exceptionsgui/
: Graphical user interface implementation
tests/
: Unit tests for core functionalitymain.py
: Entry point of the application
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.