Обновлено описание утилиты в README.md для более точного отражения функциональности и процесса обработки аудиокниг

This commit is contained in:
Dmitriy Fofanov
2026-02-20 00:48:41 +03:00
parent 5e3cb26287
commit 107f57d2cc
+14 -1
View File
@@ -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.
## Архитектура