diff --git a/README.md b/README.md index 214ffa6..5717d12 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,20 @@ [![](https://img.shields.io/gitea/issues/open/fofanov/genaudiobookinfo?gitea_url=https://github.dfv24.com)](https://github.dfv24.com/fofanov/genaudiobookinfo/issues "Open Issues") [![](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT "License: MIT") -Консольная утилита на Go для сканирования каталогов с аудиокнигами и извлечения метаданных (название, автор, жанр, описание, обложка и т.д.) из аудиофайлов. +Go-утилита для обработки аудиокниг: сканирует папки, извлекает/нормализует теги, ищет данные через TorrAPI, (опционально) валидирует через OpenRouter, генерирует metadata.json (AudioBookShelf) и раскладывает по структуре. + +**Что делает программа:** + +1. **Сканирует** каталог и находит папки с аудиофайлами (MP3, M4B, FLAC и др.) +2. **Извлекает метаданные** из тегов первого аудиофайла (автор, название, жанр, год) +3. **Исправляет кодировку** — автоматически устраняет mojibake в тегах (UTF-8 → Latin-1) +4. **Валидирует метаданные** через LLM (OpenRouter) — нормализует формат автора, убирает мусор из названия +5. **Ищет аудиокнигу** на торрент-трекерах через TorrAPI (RuTracker, Kinozal, NoNameClub, RuTor) — получает описание, постер, жанр +6. **Скачивает обложку** (`cover.jpg`) из найденной раздачи +7. **Формирует `metadata.json`** в формате [AudioBookShelf](https://www.audiobookshelf.org/) с главами, нарраторами, серией +8. **Организует файлы** в структурированную иерархию: `result/<Буква>/<Автор>/<Автор - Название [Год]>/` + +Обработка ведётся **параллельно** (настраиваемый пул воркеров) с отображением прогресс-бара и поддержкой graceful shutdown. ## Архитектура