A powerful cross-platform desktop application designed for MP3 file chapter management. Built with modern technology stack, providing intuitive user interface and powerful audio processing capabilities.
- Auto Extraction - Intelligently identify existing chapter information in MP3 files
- Manual Addition - Flexibly add custom chapters with precise time settings
- Batch Editing - Quickly edit multiple chapters' titles, times, and descriptions
- Image Support - Add cover images for each chapter, supporting multiple formats
- Modern Interface - Beautiful, responsive design based on Tailwind CSS
- Real-time Preview - Instantly display chapter information and file duration
- Drag & Drop - Intuitive file selection and operation workflow
- Status Feedback - Clear processing progress and status indicators
- Cross-platform - Support for Windows, macOS, Linux
- High Performance - Native application performance based on Electron
- Type Safety - Complete TypeScript support
- Modular - Clear code structure and componentized design
| Technology | Version | Purpose |
|---|---|---|
| Electron | ^38.0.0 | Cross-platform desktop app framework |
| React | ^19.1.1 | Modern user interface library |
| TypeScript | ^5.0.0 | Type-safe JavaScript |
| Tailwind CSS | ^3.4.17 | Utility-first CSS framework |
| node-id3 | ^0.2.9 | ID3 tag processing library |
| Webpack | ^5.101.3 | Module bundler and dev server |
- Node.js 16.0+
- FFmpeg (for getting audio duration information)
- Operating System Windows 10+, macOS 10.14+, or Linux
git clone <repository-url>
cd probenpm install# Start development server and Electron app
npm run dev# Build production version
npm run build
# Start application
npm start# Build all platforms
npm run dist
# Build specific platform
npm run dist:win # Windows
npm run dist:mac # macOS
npm run dist:linux # Linuxprobe/
βββ src/
β βββ main.ts # Electron main process
β βββ preload.ts # Preload script
β βββ id3-service.ts # ID3 tag processing service
β βββ renderer/ # React renderer process
β βββ components/
β β βββ FileSelector.tsx # File selection component
β β βββ ChapterManager.tsx # Chapter management component
β βββ hooks/
β β βββ useElectronAPI.ts # Electron API Hook
β βββ types/
β β βββ index.ts # TypeScript type definitions
β βββ App.tsx # Main application component
β βββ index.tsx # Entry file
β βββ index.html # HTML template
β βββ index.css # Style file
βββ dist/ # Build output directory
βββ test/ # Test files
βββ webpack.config.js # Webpack configuration
βββ tailwind.config.js # Tailwind configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Project configuration
- MP3 File Selection - Support for standard MP3 format files
- Metadata Reading - Automatically get file duration, size and other information
- Format Validation - Ensure file format compatibility
- Extract Existing Chapters - Read existing chapter information from MP3 files
- Add New Chapters - Manually create chapters with precise time settings
- Edit Chapters - Modify chapter titles, times, descriptions and images
- Delete Chapters - Remove unwanted chapters
- Multi-format Support - JPG, PNG, GIF, BMP, WebP
- Base64 Encoding - Automatically convert images to Base64 format for storage
- Preview Function - Real-time preview of chapter images
- Type Identification - Distinguish between auto-extracted and manually selected images
- Chapter Saving - Save chapter data as JSON files
- Data Loading - Load chapter data from JSON files
- Backup Mechanism - Automatically backup original files before processing
| Command | Description |
|---|---|
npm run build |
Build main process and renderer process |
npm run build:main |
Build main process only |
npm run build:preload |
Build preload script only |
npm run build:renderer |
Build renderer process only |
npm run build:watch |
Watch mode build |
npm run clean |
Clean build files |
- TypeScript - Provides complete type checking and intelligent suggestions
- Webpack - Module bundling and hot reload support
- Tailwind CSS - Fast style development and responsive design
- ESLint - Code quality checking (recommended configuration)
- Main Process (
main.ts) - Handles file system operations and IPC communication - Preload Script (
preload.ts) - Safely exposes APIs to renderer process - ID3 Service (
id3-service.ts) - Handles MP3 tags and chapter data - React Components - Modular UI components, easy to maintain and extend
- Start Application - Run
npm run devornpm start - Select File - Click "Select File" button to choose MP3 file
- Manage Chapters - Auto-extract or manually add chapter information
- Add Images - Select cover images for chapters (optional)
- Save File - Choose output location and add chapters to MP3 file
- Batch Operations - Edit multiple chapters simultaneously
- Time Format - Support
HH:MM:SS.sssformat time input - Image Optimization - Automatically handle image format and size
- Error Handling - Detailed error information and handling suggestions
- Ensure FFmpeg is installed and accessible from command line
- Large file processing may take a long time, please be patient
- It's recommended to backup original files before processing
- Supports standard MP3 format files
- Chapter information follows ID3v2 standard
- Image formats support common formats (JPG, PNG, GIF, etc.)
- Close other applications when processing large files
- Regularly clean temporary files to free up disk space
- Using SSD storage can significantly improve processing speed
Contributions, bug reports, and suggestions are welcome!
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Zealot-Rush - GitHub
- Electron - Cross-platform desktop app framework
- React - User interface library
- node-id3 - ID3 tag processing library
- Tailwind CSS - CSS framework
If you have any questions or suggestions, please submit an Issue or Pull Request!