белешке

Своя музыкальная библиотека вместо стриминга

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

Сервер — самая скучная часть

Сам по себе сервер библиотеки поднимается быстро: контейнер, путь к папке с музыкой, готовый веб-интерфейс и мобильные клиенты по открытому протоколу. Это заняло меньше времени, чем я закладывал в план на вечер. Настоящая работа началась потом.

Настоящая проблема — теги

Библиотека, накопленная за годы из разных источников, оказалась катастрофой с точки зрения метаданных. Один и тот же альбом мог быть подписан по-разному в имени папки, в теге ALBUM и в обложке, которую когда-то руками положили рядом. Автосопоставление обложек и информации об альбомах работает ровно настолько хорошо, насколько аккуратны теги — и стало понятно, что без прогона всей библиотеки через нормализацию тегов пользоваться этим будет неприятно.

Самостоятельный хостинг музыки — это на 20% про сервер и на 80% про наведение порядка в собственном архиве, который годами собирался без всякой системы.

Что в итоге получилось удобным

  • Плейлисты не привязаны ни к какому аккаунту, кроме своего.
  • Редкие записи и рипы, которых нет ни в одном каталоге стриминга, наконец слушаются с телефона, а не только с ноутбука.
  • Офлайн-кеширование в мобильном клиенте работает предсказуемо — ровно так, как настроено, без сюрпризов от чужого приложения.

Из нерешённого пока осталась небольшая задержка перед стартом воспроизведения — не критично, но заметно, и когда-нибудь стоит разобраться, на какой стороне она возникает.