Beets — консольный менеджер музыкальной библиотеки на Python. Он читает теги, сверяет их с MusicBrainz, переименовывает файлы по шаблону, скачивает обложки и убирает дубликаты. В отличие от плеера, beets не проигрывает музыку: его задача — привести каталог к предсказуемому виду, чтобы любой плеер видел одинаковых исполнителей, альбомы и номера треков. Ниже — установка, конфигурация, импорт и типовые операции.

Установка и первый запуск

В Debian и Ubuntu пакет есть в репозитории, но версия может отставать. Если нужны свежие плагины, ставьте через pipx в отдельное окружение — так beets не смешается с системными пакетами Python.

sudo apt install beets ffmpeg
beet version
beet config -p
beet fields

Команда beet fields показывает доступные поля тегов, beet config -p — путь к файлу настроек. По умолчанию это ~/.config/beets/config.yaml. Каталог библиотеки и база задаются там же.

Конфигурация

Минимальный конфиг описывает, где лежит музыка, где хранится база и как строить пути. Шаблон пути — главный инструмент порядка: он определяет структуру каталогов после импорта.

directory: ~/Music/library
library: ~/Music/library.db
import:
  write: yes
  copy: yes
  move: no
  timid: no
  autotag: yes
paths:
  default: $albumartist/$album%aunique{}/$track $title
  singleton: Non-Album/$artist/$title
  comp: Compilations/$album%aunique{}/$track $title

write: yes записывает найденные теги в файлы, copy: yes копирует музыку в библиотеку, оставляя исходники. Для первого прогона лучше именно копирование: ошибку можно отменить, не потеряв файлы. %aunique{} добавляет уточнение, если в библиотеке уже есть альбом с таким именем.

Импорт

Импорт — интерактивный процесс. Beets показывает кандидатов из MusicBrainz и ждёт решения. В приглашении есть выбор: применить, оставить как есть, пропустить, посмотреть другие варианты, собрать альбом вручную или ввести идентификатор записи. Для большой коллекции удобно сначала прогнать тихий режим и посмотреть отчёт.

beet import ~/Music/incoming
beet import -q ~/Music/incoming
beet import -A ~/Music/incoming
beet ls -f '$artist - $album - $title' | head -20

Флаг -q включает тихий режим и пропускает спорные альбомы, -A отключает автотегирование и полезен для уже размеченных файлов. После импорта проверьте выборку: если исполнители дублируются с разным написанием, значит часть альбомов не сопоставилась.

Плагины

Плагины включаются списком в конфиге. Начните с обложек, текстов, жанров и поиска проблем. Каждый плагин приносит свои команды и поля.

plugins: fetchart embedart lyrics lastgenre duplicates missing
fetchart:
  auto: yes
  minwidth: 500
embedart:
  auto: yes
  remove_art_file: yes
lastgenre:
  auto: yes
  source: album

fetchart ищет обложки, embedart встраивает их в теги, lyrics подтягивает текст, lastgenre уточняет жанр по данным Last.fm, duplicates и missing дают команды поиска проблем. Для сопоставления по отпечатку нужны пакет pyacoustid, утилита fpcalc и ключ AcoustID; без них beets работает по тегам. Для большой библиотеки включайте плагины постепенно и сверяйте время импорта.

Порядок в библиотеке

Основные операции выполняются одной командой. Сначала посмотрите статистику и список проблем, затем правьте точечно.

beet stats
beet duplicates -f '$artist - $title'
beet missing
beet update

beet update перечитывает каталог и добавляет файлы, появившиеся в обход импорта. beet missing показывает треки, которых не хватает в альбомах библиотеки. Найденные дубликаты удаляйте вручную после прослушивания: автоматическое удаление по названию часто убирает разные версии записи.

Массовую правку удобно делать через beet modify с запросом. Например, жанр для всех альбомов исполнителя меняется одной строкой, а -y подтверждает изменения без вопросов. Перед массовой операцией сделайте копию базы: отменить пакетную правку одной командой не получится.

beet modify -y -a albumartist:Кино genres=rock
beet modify -y -a album:'Группа крови' year=1988
beet write

Конвертация для плеера

Плагин convert готовит копии в другом формате для телефона или автомагнитолы. Исходники остаются в библиотеке, а результат складывается в отдельный каталог.

convert:
  auto: no
  ffmpeg: /usr/bin/ffmpeg
  formats:
    mp3:
      command: ffmpeg -i $source -y -vn -acodec libmp3lame -q:a 2 $dest
      extension: mp3

Запуск beet convert -d /media/player -f mp3 query создаст копии только для выбранных треков. Проверьте, что у вас установлен libmp3lame; в некоторых сборках ffmpeg его нет, и команда завершится ошибкой.

Плейлисты и выборки

Beets умеет формировать списки воспроизведения по запросу. Простейший способ — вывести пути и сохранить их в M3U, который понимает большинство плееров.

beet ls -f '$path' genres:rock year:1980..1989 > rock80.m3u
beet ls -f '$path' albumartist:'Various Artists' > various.m3u
beet ls -f '$albumartist|$album|$title' year:1990..1999

Формат вывода задаётся строкой с полями в $. Разделитель | удобен для таблицы, а $path даёт абсолютный путь к файлу. Запросы поддерживают диапазоны, отрицания и регулярные выражения.

Диагностика

Если beets не находит альбом, проверьте подключение к MusicBrainz и корректность тегов. Частая причина — сборник с пустым полем исполнителя альбома. Для разбора используйте подробный вывод.

beet -v import ~/Music/incoming/album
beet config
beet ls -f '$id $path' artist:''
sqlite3 ~/Music/library.db '.tables'

Ошибки вида «no matching release» означают, что кандидатов нет: проверьте название, год и количество треков. Ошибка записи тегов обычно связана с правами на файл или неподдерживаемым контейнером. Логика простая: сначала теги, потом структура, и только затем обложки.

Чек-лист

  • Библиотека и база лежат в отдельном каталоге, исходники сохранены.
  • Шаблон путей проверен на десяти альбомах до массового импорта.
  • Включены fetchart и embedart, размер обложки не меньше 500 пикселей.
  • Дубликаты проверяются перед удалением, база скопирована.
  • Для телефона настроен convert с отдельным каталогом назначения.
  • Есть регулярная копия library.db и каталога библиотеки.

Итог

Beets наводит порядок там, где обычный плеер только показывает список файлов. Импорт с автотегами, понятный шаблон путей и несколько плагинов дают библиотеку, которую не стыдно открыть на любом устройстве. Начните с копии коллекции, проверьте шаблон на небольшой пачке альбомов и только потом запускайте массовый импорт. Дальше останется лишь изредка проверять дубликаты и обложки.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте