ИИ-сортировка и переименование MP3-файлов
Инструмент анализирует MP3, придумывает уникальные названия, записывает ID3-теги и пропускает уже обработанные файлы по хешу.
- слушать и называть вручную → анализ, название и тегиОбработка трека
- разрозненные файлы → единый формат метаданныхМедиатека
- обрабатывать заново → готовые файлы пропускаютсяПовторный запуск
Задача
Радиостанция и музыкальные студии накапливают сотни инструментальных MP3-треков — часто без нормальных названий, с потерянными метаданными. Ручная обработка каждого трека: прослушивание, придумывание коммерческого английского названия, вписывание ID3-тегов (исполнитель, издатель, год, авторские права) — это часы монотонной работы, которые отвлекают от творчества.
Решение
Аудиоанализ (librosa)
На каждом треке — анализ первых 30 секунд:
- BPM и tempo — классификация на 6 уровней: very slow, slow, moderate, fast, very fast, extreme
- Spectral centroid — спектральный центр (яркий/тёплый звук)
- Zero Crossing Rate — высокая/низкая энергия
- RMS loudness — громкость трека (плотный/разреженный звук)
- Spectral rolloff — широкий спектр / узкий, сфокусированный
- Spectral contrast — многослойная текстура / гладкий минимализм
- Тональность (chroma) — определение основной ноты из 12 полутонов
- Mood inference — алгоритм на основе 4 параметров (яркость, энергия, динамика, тональность) выводит: melancholic, ambient, ethereal, energetic, driving, cinematic и др.
LLM-обогащение описания
Отдельный API-вызов анализирует аудиофичи и определяет жанр (synthwave, orchestral, darkwave, chillhop…) и вероятный набор инструментов (piano, strings, synth, electric guitar, bass…). Это добавляется в контекст перед генерацией названия.
Генерация уникальных названий
- Детальный system prompt с примерами по 5 mood-категориям: dark/cinematic, bright/energetic, ambient, driving/urban, warm/calm
- До 10 попыток генерации с проверкой на уникальность в SQLite-базе
- Фильтр запрещённых слов: demo, untitled, track, song, mix и т.д.
- Контекст последних 20–30 использованных названий передаётся в prompt для максимальной вариативности
- Резервное название
Meridian + UUIDесли все попытки исчерпаны
ID3-теггинг (mutagen)
После генерации названия программа:
- Очищает старые ID3v2 теги из исходника
- Записывает новые:
TIT2(title),TPE1(artist),TPUB(publisher),TCOP(copyright),TDRC(year),COMM(comment),UFID+TXXX:CustomTrackID(UUID)
SQLite-база и дедупликация
Три таблицы:
tracks— полная история (18 полей: оригинальное имя, новое имя, все параметры, хеши, статус, timestamp)used_titles— реестр всех использованных названий (не повторяются между запусками)errors— журнал ошибок с привязкой к треку
SHA-256 дедупликация: хеш каждого входящего файла сохраняется. Повторный запуск с теми же файлами — моментальный пропуск без лишних API-вызовов.
CLI и автозапуск
Командная строка:
--preview— предпросмотр без записи файлов--stats— статистика БД--export csv|json|titles— экспорт истории--block "Title 1" "Title 2"— ручная блокировка названий--input папка1 папка2 ...— мульти-папочный ввод--no-artist,--no-publisherи т.д. — отключение отдельных тегов
start.bat — zero-friction:
- Проверяет Python в PATH
- Создаёт виртуальное окружение
.venv - Запускает
pip installс требованиями - Валидирует
.envи предупреждает если ключ не заменён - Создаёт папки
input/иoutput/ - Запускает скрипт — всё одним двойным кликом
Логирование и документация
- Двойной вывод: консоль +
processing.log - Русскоязычные уровни логирования (ИНФО, ВНИМАНИЕ, ОШИБКА)
- Подробная инструкция на русском: установка, первый запуск, продвинутые параметры, решение типичных проблем
Результат
| Показатель | До | После |
|---|---|---|
| Переименование | Вручную (часы) | Автоматически (секунды) |
| ID3-теги | Потеряны или частичные | Полные: TIT2, TPE1, TPUB, TCOP, TDRC, COMM, UUID |
| Повторные запуски | Заново обрабатываются | Пропускаются по SHA-256 (моментально) |
| Проверка уникальности | Нет | Реестр + контекст прошлых названий |
| Анализ аудио | Слушание на ухо | 7 параметров + mood classification |
Нужен ИИ-инструмент для автоматизации музыки, видео или текста? Напишите — обсудим задачу.
Вместо ручной обработки каждого трека остается готовая папка с названиями, тегами и журналом повторных запусков.