MP3 Auto-Renamer: ИИ-теггинг 1000+ треков без ручной работы
Python-инструмент для радиостанций: librosa анализирует аудио, ИИ придумывает уникальные английские названия, mutagen вшивает ID3-теги — всё автоматически.
- вручную → ИИ + тегиПереименование треков
- 7 audio-параметров: BPM, mood, тональность, спектр
- SHA-256 дедупликация — повтор не пройдёт
Задача
Радиостанция и музыкальные студии накапливают сотни инструментальных 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 (моментально) |
| Гарантия уникальности | Нет | 100% (проверка в реестре + контекст 20+ названий в prompt) |
| Анализ аудио | Слушание на ухо | 7 параметров + mood classification |
Нужен ИИ-инструмент для автоматизации музыки, видео или текста? Напишите — обсудим задачу.
Batch-обработка: аудиоанализ → ИИ-название → ID3-теги → без повторов между запусками.