{"id":31206514,"url":"https://github.com/iwizard7/mp3_to_audiobook","last_synced_at":"2025-09-20T19:57:10.485Z","repository":{"id":312017224,"uuid":"1037888735","full_name":"iwizard7/mp3_to_audiobook","owner":"iwizard7","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-28T09:08:34.000Z","size":43373,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-28T09:39:31.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iwizard7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-14T09:24:36.000Z","updated_at":"2025-08-28T09:06:03.000Z","dependencies_parsed_at":"2025-08-28T09:39:33.910Z","dependency_job_id":"ac2bc42b-bb38-45d9-ae8d-934a6da49140","html_url":"https://github.com/iwizard7/mp3_to_audiobook","commit_stats":null,"previous_names":["iwizard7/mp3_to_audiobook"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/iwizard7/mp3_to_audiobook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Fmp3_to_audiobook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Fmp3_to_audiobook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Fmp3_to_audiobook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Fmp3_to_audiobook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iwizard7","download_url":"https://codeload.github.com/iwizard7/mp3_to_audiobook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Fmp3_to_audiobook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276150825,"owners_count":25593841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-20T19:57:07.568Z","updated_at":"2025-09-20T19:57:10.480Z","avatar_url":"https://github.com/iwizard7.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and Release MP3ToAudiobook](https://github.com/iwizard7/mp3_to_audiobook/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/iwizard7/mp3_to_audiobook/actions/workflows/build-and-release.yml)\n# MP3 в M4B Конвертер\n\nПриложение для конвертации MP3 файлов в формат M4B аудиокниг Apple с метаданными.\n\n**Текущая версия:** v2025.08.28.1.080629\n\n## Функции\n\n### Основные возможности\n- ✅ Конвертация нескольких аудиофайлов в один M4B файл\n- ✅ Поддержка форматов: MP3, AAC, M4A, WAV, AIFF\n- ✅ Расширенные метаданные (автор, название, жанр, описание, серия, номер в серии)\n- ✅ Автоматическое заполнение метаданных из названия папки\n- ✅ Drag \u0026 Drop поддержка файлов и папок\n- ✅ Превью обложек с полноразмерным просмотром\n\n### Консольная версия\n- ✅ Гибкие аргументы командной строки\n- ✅ Batch-обработка папок с рекурсивным поиском\n- ✅ Настройки качества экспорта (high, medium, low)\n- ✅ Полноценное разделение на главы с настраиваемой длительностью\n- ✅ Подробная справка и валидация параметров\n\n### Графический интерфейс\n- ✅ Современный интерфейс SwiftUI\n- ✅ Опциональные логи с возможностью копирования\n- ✅ Прогресс-бар и статусные сообщения\n- ✅ Drag \u0026 Drop зона для удобного добавления файлов\n- ✅ Расширенные настройки качества экспорта (high/medium/low)\n- ✅ Настройка разделения на главы с ползунком\n- ✅ Полные метаданные: жанр, описание, серия, номер в серии\n\n### Качество и производительность\n- ✅ Выбор качества экспорта\n- ✅ Оптимизировано для macOS и процессоров M2\n- ✅ Улучшенная обработка ошибок и валидация\n- ✅ Базовая система тестирования\n- ✅ Динамическая система версий с автоматическим обновлением\n\n### Автоматизация\n- ✅ Автоматическая сборка и выпуск релизов через GitHub Actions\n- ✅ Переключение между GUI и консольной версиями\n- ✅ Скрипты для сборки и запуска\n\n## 📋 Последние изменения (Changelog)\n\n### v2025.08.28.1.080629\n- 🔧 **Исправления ошибок сборки:**\n  - Удалены недостижимые блоки catch в AudioConverter.swift\n  - Исправлен deprecated метод exportPresets API\n  - Добавлены отсутствующие параметры в AudioConverterTests.swift\n  - Исправлена ошибка области видимости в ConsoleApp.swift\n- 📦 **Улучшения системы версий:**\n  - Добавлена динамическая система версий с timestamp\n  - Версия теперь автоматически обновляется в интерфейсе\n  - Улучшена структура управления версиями\n\n### Ранние версии\n- ✨ Полноценная поддержка глав с настраиваемой длительностью\n- 🎨 Современный SwiftUI интерфейс с Drag \u0026 Drop\n- 📊 Прогресс-бар и расширенные логи\n- 🔄 Консольная версия с гибкими аргументами\n- 📱 Поддержка расширенных метаданных (автор, жанр, серия, обложка)\n\n## Сборка и запуск\n\n### 🚀 Быстрый старт:\n\n**Консольная версия (с аргументами командной строки):**\n```bash\nswift run *.mp3 --author \"Автор\" --title \"Название книги\" --genre \"Жанр\"\n```\n\n**GUI версия (для использования):**\n```bash\n./switch_to_gui.sh\n./build_and_run.sh\n```\n\n### 🔄 Переключение между версиями:\n\n**Переключиться на GUI версию:**\n```bash\n./switch_to_gui.sh\n```\n\n**Переключиться на консольную версию:**\n```bash\n./switch_to_console.sh\n```\n\n### 📋 Все варианты запуска:\n\n1. **Сборка и запуск GUI версии:**\n    ```bash\n    ./build_and_run.sh\n    ```\n\n2. **Быстрый запуск GUI версии (если уже собрано):**\n    ```bash\n    ./run_only.sh\n    ```\n\n3. **Запуск консольной версии с файлами:**\n    ```bash\n    swift run *.mp3 --author \"Лев Толстой\" --title \"Война и мир\" --genre \"Классика\"\n    ```\n\n4. **Запуск консольной версии с папкой:**\n    ```bash\n    swift run /path/to/audio/folder --auto-detect --cover cover.jpg\n    ```\n\n5. **Ручная сборка:**\n    ```bash\n    swift build\n    swift run\n    ```\n\n### 🛑 Остановка приложения:\n```bash\npkill -f MP3ToAudiobook\n```\n\n## 🚀 Автоматическая сборка и релиз\n\nПроект использует GitHub Actions для автоматической сборки и создания релизов:\n\n- **Автоматический запуск:** При пуше в ветки `main` или `master`\n- **Сборка:** На macOS с последней стабильной версией Xcode\n- **Артефакты:** Создается `.dmg` файл для установки\n- **Релиз:** Автоматически создается GitHub release с собранным приложением\n- **Статус:** ✅ Настроено и готово к работе\n\n### Скачать готовое приложение:\n1. Перейдите в раздел [Releases](https://github.com/iwizard7/mp3_to_audiobook/releases)\n2. Скачайте файл `MP3ToAudiobook.dmg`\n3. Откройте DMG и перетащите приложение в папку Applications\n\n## Использование\n\n### GUI версия\n\n1. Запустите приложение\n2. **Выберите файлы одним из способов:**\n    - Нажмите \"Выбрать аудиофайлы\" и выберите файлы\n    - Перетащите файлы или папки в специальную зону Drag \u0026 Drop\n3. **Заполните метаданные:**\n    - Автор и название книги (обязательно)\n    - Жанр, описание, серия, номер в серии (опционально)\n4. **Настройте параметры экспорта:**\n    - Выберите качество: Высокое/Среднее/Низкое\n    - Установите разделение на главы (0 = без разделения)\n5. Выберите обложку книги (опционально) - кликните для превью\n6. Нажмите \"Конвертировать в M4B\"\n7. Выберите место сохранения файла\n\n**Новые возможности интерфейса:**\n- **Drag \u0026 Drop:** Перетаскивайте файлы и папки прямо в приложение\n- **Превью обложек:** Кликайте на миниатюру обложки для полноразмерного просмотра\n- **Расширенные метаданные:** Поддержка жанра, описания, серии и номера в серии\n- **Настройки качества:** Выбор между высоким, средним и низким качеством экспорта\n- **Разделение на главы:** Настраиваемый интервал разделения с визуальным ползунком\n- **Улучшенная обработка ошибок:** Более понятные сообщения об ошибках\n\n### Консольная версия\n\nКонсольная версия поддерживает гибкую работу с файлами и метаданными:\n\n```bash\n# Базовое использование\nswift run chapter1.mp3 chapter2.mp3 chapter3.mp3 --author \"Автор\" --title \"Название\"\n\n# С папкой (автоматическое нахождение аудиофайлов)\nswift run /path/to/book/folder --auto-detect\n\n# С дополнительными метаданными\nswift run *.mp3 --author \"Лев Толстой\" --title \"Война и мир\" --genre \"Классика\" --description \"Эпическая история\" --series \"Русская литература\" --series-number \"1\" --cover cover.jpg --output \"Война и мир.m4b\"\n\n# С настройками качества и глав\nswift run *.mp3 --author \"Автор\" --title \"Книга\" --quality high --chapters 30\n\n# Рекурсивный поиск в папках\nswift run /path/to/library --recursive --auto-detect --quality medium\n\n# Получить справку\nswift run --help\n```\n\n**Поддерживаемые форматы:** MP3, AAC, M4A, WAV, AIFF\n**Автоопределение метаданных:** анализирует название папки в формате \"Автор - Название\"\n\n## Структура проекта\n\n```\nMP3ToAudiobook/\n├── Package.swift\n├── Sources/MP3ToAudiobook/\n│   ├── App.swift                 # Точка входа GUI приложения\n│   ├── ContentView.swift         # Основной интерфейс SwiftUI\n│   ├── AudioConverter.swift      # Основная логика конвертации\n│   ├── ConsoleApp.swift          # Консольная версия приложения\n│   ├── AudioConverterTests.swift # Базовые тесты\n│   └── Version.swift             # Управление версиями приложения\n├── build_and_run.sh\n├── run_only.sh\n├── switch_to_gui.sh\n├── switch_to_console.sh\n├── .gitignore\n└── README.md\n```\n\n## Системные требования\n\n- macOS 13.0+\n- Swift 5.9+\n- Xcode 14+ (для разработки)\n\n## Технические детали\n\n- Использует AVFoundation для обработки аудио\n- SwiftUI для пользовательского интерфейса\n- Swift Package Manager для управления зависимостями\n- Поддержка метаданных в формате iTunes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwizard7%2Fmp3_to_audiobook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiwizard7%2Fmp3_to_audiobook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwizard7%2Fmp3_to_audiobook/lists"}