https://github.com/iwizard7/mp3_to_audiobook
https://github.com/iwizard7/mp3_to_audiobook
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/iwizard7/mp3_to_audiobook
- Owner: iwizard7
- Created: 2025-08-14T09:24:36.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-28T09:08:34.000Z (10 months ago)
- Last Synced: 2025-08-28T09:39:31.166Z (10 months ago)
- Language: Swift
- Size: 41.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://github.com/iwizard7/mp3_to_audiobook/actions/workflows/build-and-release.yml)
# MP3 в M4B Конвертер
Приложение для конвертации MP3 файлов в формат M4B аудиокниг Apple с метаданными.
**Текущая версия:** v2025.08.28.1.080629
## Функции
### Основные возможности
- ✅ Конвертация нескольких аудиофайлов в один M4B файл
- ✅ Поддержка форматов: MP3, AAC, M4A, WAV, AIFF
- ✅ Расширенные метаданные (автор, название, жанр, описание, серия, номер в серии)
- ✅ Автоматическое заполнение метаданных из названия папки
- ✅ Drag & Drop поддержка файлов и папок
- ✅ Превью обложек с полноразмерным просмотром
### Консольная версия
- ✅ Гибкие аргументы командной строки
- ✅ Batch-обработка папок с рекурсивным поиском
- ✅ Настройки качества экспорта (high, medium, low)
- ✅ Полноценное разделение на главы с настраиваемой длительностью
- ✅ Подробная справка и валидация параметров
### Графический интерфейс
- ✅ Современный интерфейс SwiftUI
- ✅ Опциональные логи с возможностью копирования
- ✅ Прогресс-бар и статусные сообщения
- ✅ Drag & Drop зона для удобного добавления файлов
- ✅ Расширенные настройки качества экспорта (high/medium/low)
- ✅ Настройка разделения на главы с ползунком
- ✅ Полные метаданные: жанр, описание, серия, номер в серии
### Качество и производительность
- ✅ Выбор качества экспорта
- ✅ Оптимизировано для macOS и процессоров M2
- ✅ Улучшенная обработка ошибок и валидация
- ✅ Базовая система тестирования
- ✅ Динамическая система версий с автоматическим обновлением
### Автоматизация
- ✅ Автоматическая сборка и выпуск релизов через GitHub Actions
- ✅ Переключение между GUI и консольной версиями
- ✅ Скрипты для сборки и запуска
## 📋 Последние изменения (Changelog)
### v2025.08.28.1.080629
- 🔧 **Исправления ошибок сборки:**
- Удалены недостижимые блоки catch в AudioConverter.swift
- Исправлен deprecated метод exportPresets API
- Добавлены отсутствующие параметры в AudioConverterTests.swift
- Исправлена ошибка области видимости в ConsoleApp.swift
- 📦 **Улучшения системы версий:**
- Добавлена динамическая система версий с timestamp
- Версия теперь автоматически обновляется в интерфейсе
- Улучшена структура управления версиями
### Ранние версии
- ✨ Полноценная поддержка глав с настраиваемой длительностью
- 🎨 Современный SwiftUI интерфейс с Drag & Drop
- 📊 Прогресс-бар и расширенные логи
- 🔄 Консольная версия с гибкими аргументами
- 📱 Поддержка расширенных метаданных (автор, жанр, серия, обложка)
## Сборка и запуск
### 🚀 Быстрый старт:
**Консольная версия (с аргументами командной строки):**
```bash
swift run *.mp3 --author "Автор" --title "Название книги" --genre "Жанр"
```
**GUI версия (для использования):**
```bash
./switch_to_gui.sh
./build_and_run.sh
```
### 🔄 Переключение между версиями:
**Переключиться на GUI версию:**
```bash
./switch_to_gui.sh
```
**Переключиться на консольную версию:**
```bash
./switch_to_console.sh
```
### 📋 Все варианты запуска:
1. **Сборка и запуск GUI версии:**
```bash
./build_and_run.sh
```
2. **Быстрый запуск GUI версии (если уже собрано):**
```bash
./run_only.sh
```
3. **Запуск консольной версии с файлами:**
```bash
swift run *.mp3 --author "Лев Толстой" --title "Война и мир" --genre "Классика"
```
4. **Запуск консольной версии с папкой:**
```bash
swift run /path/to/audio/folder --auto-detect --cover cover.jpg
```
5. **Ручная сборка:**
```bash
swift build
swift run
```
### 🛑 Остановка приложения:
```bash
pkill -f MP3ToAudiobook
```
## 🚀 Автоматическая сборка и релиз
Проект использует GitHub Actions для автоматической сборки и создания релизов:
- **Автоматический запуск:** При пуше в ветки `main` или `master`
- **Сборка:** На macOS с последней стабильной версией Xcode
- **Артефакты:** Создается `.dmg` файл для установки
- **Релиз:** Автоматически создается GitHub release с собранным приложением
- **Статус:** ✅ Настроено и готово к работе
### Скачать готовое приложение:
1. Перейдите в раздел [Releases](https://github.com/iwizard7/mp3_to_audiobook/releases)
2. Скачайте файл `MP3ToAudiobook.dmg`
3. Откройте DMG и перетащите приложение в папку Applications
## Использование
### GUI версия
1. Запустите приложение
2. **Выберите файлы одним из способов:**
- Нажмите "Выбрать аудиофайлы" и выберите файлы
- Перетащите файлы или папки в специальную зону Drag & Drop
3. **Заполните метаданные:**
- Автор и название книги (обязательно)
- Жанр, описание, серия, номер в серии (опционально)
4. **Настройте параметры экспорта:**
- Выберите качество: Высокое/Среднее/Низкое
- Установите разделение на главы (0 = без разделения)
5. Выберите обложку книги (опционально) - кликните для превью
6. Нажмите "Конвертировать в M4B"
7. Выберите место сохранения файла
**Новые возможности интерфейса:**
- **Drag & Drop:** Перетаскивайте файлы и папки прямо в приложение
- **Превью обложек:** Кликайте на миниатюру обложки для полноразмерного просмотра
- **Расширенные метаданные:** Поддержка жанра, описания, серии и номера в серии
- **Настройки качества:** Выбор между высоким, средним и низким качеством экспорта
- **Разделение на главы:** Настраиваемый интервал разделения с визуальным ползунком
- **Улучшенная обработка ошибок:** Более понятные сообщения об ошибках
### Консольная версия
Консольная версия поддерживает гибкую работу с файлами и метаданными:
```bash
# Базовое использование
swift run chapter1.mp3 chapter2.mp3 chapter3.mp3 --author "Автор" --title "Название"
# С папкой (автоматическое нахождение аудиофайлов)
swift run /path/to/book/folder --auto-detect
# С дополнительными метаданными
swift run *.mp3 --author "Лев Толстой" --title "Война и мир" --genre "Классика" --description "Эпическая история" --series "Русская литература" --series-number "1" --cover cover.jpg --output "Война и мир.m4b"
# С настройками качества и глав
swift run *.mp3 --author "Автор" --title "Книга" --quality high --chapters 30
# Рекурсивный поиск в папках
swift run /path/to/library --recursive --auto-detect --quality medium
# Получить справку
swift run --help
```
**Поддерживаемые форматы:** MP3, AAC, M4A, WAV, AIFF
**Автоопределение метаданных:** анализирует название папки в формате "Автор - Название"
## Структура проекта
```
MP3ToAudiobook/
├── Package.swift
├── Sources/MP3ToAudiobook/
│ ├── App.swift # Точка входа GUI приложения
│ ├── ContentView.swift # Основной интерфейс SwiftUI
│ ├── AudioConverter.swift # Основная логика конвертации
│ ├── ConsoleApp.swift # Консольная версия приложения
│ ├── AudioConverterTests.swift # Базовые тесты
│ └── Version.swift # Управление версиями приложения
├── build_and_run.sh
├── run_only.sh
├── switch_to_gui.sh
├── switch_to_console.sh
├── .gitignore
└── README.md
```
## Системные требования
- macOS 13.0+
- Swift 5.9+
- Xcode 14+ (для разработки)
## Технические детали
- Использует AVFoundation для обработки аудио
- SwiftUI для пользовательского интерфейса
- Swift Package Manager для управления зависимостями
- Поддержка метаданных в формате iTunes