981просмотров
84.1%от подписчиков
2 марта 2026 г.
📷 ФотоScore: 1.1K
Вот уже месяц я живу #selfhosted стримингом музыки. Дело было вечером субботы: я зашёл в свой плейлист на Spotify и увидел прекрасное — почти весь экран треков был помечен как недоступный по легальным причинам. За почти десяток евро в месяц я всё‑таки ожидаю, что смогу слушать набранную музыку вне зависимости от того, забыл провайдер переподписать контракт со стримингом или нет. С недавних пор я начал восстанавливать свой флот серверов — поэтому решил немного поизвращаться с доморощенным вариантом. Вместо простого советского «что там сейчас люди поднимают для self‑hosted музыки» я схватился за golang.org/x/net/webdav, написал read‑only адаптер к os.Root и получил простенький файловый сервер. Оказалось, foobar2000 живёт и здравствует на iOS, умеет и понимает WebDAV — так что от задумки до результата у меня прошло где‑то минут сорок. После этого — пара дней на поиск, скачивание и выгрузку музыки на мой сервер. Итоговый сетап: WebDAV‑сервер сидит внутри контейнера, к которому примонтирована в RO‑режиме директория с музыкой, и раздаёт файлы внутри Tailscale‑сетки. Я немножко психанул, поэтому музыка бэкапится, как и всё остальное, по схеме 3‑2‑1. Опыт использования с технической стороны: - интернета на Кипре хватает, чтобы стримить FLAC даже в горах на 1600 метров; - foobar2000, на удивление, неплох — вполне приличный интерфейс, надёжно работает; - Opus хуже всего для стриминга — там нужен бинарный поиск по файлу для seek по времени, так что плеер делает пять–шесть HTTP‑запросов на каждое начало воспроизведения файла, если файл больше размера одного чанка скачивания; - M4A + AAC очень хорош для стриминга, если поставить moov в начало — иначе foobar2000 не может вытащить часть метаданных длинных треков; - WireGuard VPN, включённый 24/7, тратит мало ресурсов и не греет iPhone 16 Pro. Опыт с точки зрения музыкального опыта: я стал более осознанно слушать музыку. Если раньше я включал на Spotify динамический плейлист и слушал алгоритмическую смесь моих и новых треков, то сейчас я выбираю альбом или собранный мной плейлист и слушаю от начала до конца, потом выбираю следующий. Отсутствие рекомендаций тоже пока не мешает — достаточно раз в неделю позалипать в Википедии на странице жанра или группы, послушать пару сэмплов на YouTube — и я получаю представление, нравится мне альбом или нет. Чего не хватает и прочие неудобства: - foobar2000 не умеет кэшировать файлы автоматически — для прослушивания офлайн музыку надо скачивать в отдельном, очень кривом окне; - метаданными треков надо заниматься отдельно — спасибо MusicBrainz Picard, это довольно просто; - не хватает UI. Можно было бы раздавать webdav‑js как статическую страничку — но, кажется, вложение не стоит усилий. Итогами перехода я скорее доволен. Скорее всего, в течение ближайшего месяца я подниму Navidrome — я обнаружил под него гораздо более широкий выбор плееров, чем есть на iOS с поддержкой WebDAV и Samba.