Своя музыкальная библиотека вместо стриминга
Идея была простая: собрать в одном месте музыку, которую я действительно слушаю, и получить к ней доступ с телефона так же удобно, как из любого стримингового приложения, но без чужого алгоритма между мной и плейлистом.
Сервер — самая скучная часть
Сам по себе сервер библиотеки поднимается быстро: контейнер, путь к папке с музыкой, готовый веб-интерфейс и мобильные клиенты по открытому протоколу. Это заняло меньше времени, чем я закладывал в план на вечер. Настоящая работа началась потом.
Настоящая проблема — теги
Библиотека, накопленная за годы из разных источников, оказалась
катастрофой с точки зрения метаданных. Один и тот же альбом мог
быть подписан по-разному в имени папки, в теге ALBUM и
в обложке, которую когда-то руками положили рядом. Автосопоставление
обложек и информации об альбомах работает ровно настолько хорошо,
насколько аккуратны теги — и стало понятно, что без прогона всей
библиотеки через нормализацию тегов пользоваться этим будет
неприятно.
Самостоятельный хостинг музыки — это на 20% про сервер и на 80% про наведение порядка в собственном архиве, который годами собирался без всякой системы.
Что в итоге получилось удобным
- Плейлисты не привязаны ни к какому аккаунту, кроме своего.
- Редкие записи и рипы, которых нет ни в одном каталоге стриминга, наконец слушаются с телефона, а не только с ноутбука.
- Офлайн-кеширование в мобильном клиенте работает предсказуемо — ровно так, как настроено, без сюрпризов от чужого приложения.
Из нерешённого пока осталась небольшая задержка перед стартом воспроизведения — не критично, но заметно, и когда-нибудь стоит разобраться, на какой стороне она возникает.