Track01.mp3, Track02.mp3… Навожу порядок в музыке
У каждого, кто слушает музыку дольше десяти лет, есть такая папка. Гигабайты файлов с именами Track01.mp3, рипы с винила, сборники с «Неизвестным исполнителем», которые Plex честно показывает как Unknown Artist. Вручную такое не разобрать никогда.
Поэтому я написал music-recognition-tool. Это консольная утилита на Python: прогоняет папку через Shazam, сама пишет теги, переименовывает файлы в «Исполнитель — Название» и раскладывает их по папкам Artist/Album. Бесплатно, open source, ставится одной командой:
pip install music-recognition-tool music-recognize ~/Music/свалка --rename --dry-run
--dry-run только показывает, что будет сделано, и ничего не трогает. Начинай с него.
Честно о том, что было. На днях я сел за нормальное ревью своего же кода и нашёл неприятное. Инструмент для наведения порядка при обычном запуске переименовывал каждый файл в name (1).mp3, а FLAC'и молча перекодировал в MP3 и удалял оригиналы. Вместо жанра в теги писалось «Open in Apple Music». Ирония уровня «сапожник без сапог».
Всё это починил и закрыл тестами. Что вышло:
- 1.2.2 — ничего не удаляется и не перекодируется без явного флага, повторный запуск ничего не меняет;
- 1.3.0 — теги для FLAC, M4A, OGG и Opus, а не только для MP3. Плюс настоящая параллельность: папка обрабатывается примерно в 5 раз быстрее.
Что дальше:
- журнал изменений и команда undo, чтобы любой прогон можно было откатить;
- перепроверка совпадений: Shazam иногда ошибается, и такие ошибки не должны попадать в теги;
- нормальные альбомы и номера треков через MusicBrainz;
- треклисты для DJ-миксов: скормил часовой микс — получил список треков с таймкодами.
Всё это делаю по вечерам и выходным. Утилита останется бесплатной. Если она сэкономила тебе пару часов разбора фонотеки, донат здесь — лучший способ сказать «давай дальше». Пишите в комментариях, какую фичу ждёте больше всего, — с неё и начну.
python
open source
музыка
медиатека