Как стримить музыку c домашнего сервера

Говорят, хочешь сделать хорошо — сделай это сам. Здесь я предлагаю вариант того, как это можно реализовать.

Plex Web
Plex Web

Зачем это всё

Привет VC! Юзая различные музыкальные сервисы, будь то Apple Music, Spotify или Яндекс.Музыку в триальном режиме, каждый раз наблюдал одну и ту же ситуацию:

  • Нет всех нужных исполнителей / песен
  • Нет последних версий альбомов, будь то ремастеры или переиздания
  • Попадались довольно хреновые сканы обложек в низком разрешении
  • Попадались неправильные теги песен, с ошибками

Да, видимо, я один из тех динозавров, кто предпочитает слушать музыку альбомами, а не отдельными треками, аналогично тому, как это делают с винилом.

В любом случае, после начала "СВО" дела со стримингом совсем пошли по... наклонной, и это трудно не заметить. То сервис оплалить невозможно, то правообладатель забрал и до этого немногочисленный контент. С этим нужно было что-то делать.

Что делать

Для себя нашёл почти идеальный вариант, не без минусов, но всё же. Домашний сервер + Plex Media Server + ZeroTier + Собственная фонотека. Обязательным условием поставил возможность прослушивания с мобилки.

Домашним сервером может быть практически любой пк на любой ос, либо NAS устройство, либо даже смарт тв. В моём случае, это старый Apple TV с накатанным поверх Debian 11 и ещё парой плюшек на питоне для скачивания фонотеки/медиаархива. Подробнее здесь.

Спасибо Стив, до сих пор пашет
Спасибо Стив, до сих пор пашет

Plex Media Server собсно и рулит всем процессом. По сути, это просто красивая веб-оболочка, наподобии Osmc. Конечно, чисто технически можно и через smb заходить и слушать, но кому это надо? Еще о Plex.

Красuво. Удо6но.
Красuво. Удо6но.

ZeroTier бомбический сервис, твой личный внутренний vpn. Он будет нужен для доступа к веб-версии по статичному ip откуда угодно, даже в случае падения основного сервера plex.tv. Из аналогов вспоминается Hamachi. Как построить сеть.

Интерфейс <b>ZeroTier</b> в macOS
Интерфейс ZeroTier в macOS

Сборка фонотеки займет кучу времени. Нужно вручную, конечно же, покупать лицензионные диски и делать рипы, либо купить у с тех же стримингов, либо из дРуГиХ источников. Можно сразу рипать/скачивать во flac и кидать на сервер. Но, лично мне, удобнее конвертировать в mp3, ибо винт всего в 500 гигов.

Чаще всего теги уже прописаны, но стандартов нет. Где-то, например, всё капсом пишут (привет RAMMSTEIN). Поправить это и залить правильные хэдэ обложки можно через mp3tag. Кстати Plex тоже может подтянуть теги и добавить описание группы.

mp3tag
mp3tag

Как делать

Ввиду огромнейшего разнообразия оборудования, да и просто, чтобы не запутаться, я опишу установку всех приблуд только на сервер с Ubuntu или Debian. Версии Plex Media Server для остальных платформ можно взять отсюда.

Заходим через ssh подключение. Копируем в терминал сервера:

sudo apt install apt-transport-https curl wget -y && echo deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list && sudo wget -O- https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex.gpg && sudo apt install plexmediaserver -y

Нужно убедиться, что сервер работает. Вводим:

sudo systemctl status plexmediaserver
Должен быть зелёный статус — <b>Active</b>
Должен быть зелёный статус — Active

Идем в браузер по пути http://"локальный ip сервера":32400/web и регаемся любым удобным способом.

Сигн ин, товаристч
Сигн ин, товаристч

Теперь идём в настройки аккаунта и добавляем свою библиотеку с музыкой, фото или видео.

Ничего сложного
Ничего сложного

Атлична! Теперь настроим адекватное сканирование контента. Ставим галочки напротив пунктов:

  • Сканировать библиотеку автоматически
  • Запустить выборочное сканирование при обнаружении изменений
  • Включить музыкальные библиотеки в автоматическое обновление
  • Автоматически очищать корзину после каждого сканирования
  • Запуск задач сканера с более низким приоритетом
И жмем кнопочку "Сохранить изменения"
И жмем кнопочку "Сохранить изменения"

Нужно будет подождать, пока Plex всё отсканирует. Чтобы время зря не терять, установим ZeroTier через snap:

sudo apt install snapd && sudo snap install core && sudo snap install zerotier

Теперь идём на официальный сайт, делаем аккаунт, логинимся и жмём "Create network". Копируем Network ID.

В моем случае это 12ac4a1e71e24ce5
В моем случае это 12ac4a1e71e24ce5

Возвращаемся в консоль сервера и пишем код снизу. ID ставим свой. По итогу появится сообщение "200 join OK":

zerotier-cli join 12ac4a1e71e24ce5

Также необходимо установить ZeroTier на все машины и телефоны, с которых Вам нужен доступ к серверу, залогиниться и присоединиться к сети с вашим ID. После идём обратно в браузер и кликаем на Network ID. В открывшемся окне можно изменить имя сети и приватность подключения.

Иногда выпадают потешные имена
Иногда выпадают потешные имена

Далее нужно прокрутить чуть ниже до графы Advanced. В разделе IPv4 Auto-Assign ставим галочку, жмем Easy и выбираем любой приятный глазу пул ip адресов.

Благо выбор большой
Благо выбор большой

Идем ещё ниже, до графы Members. Видим здесь все наши устройства, включая сервер. Всё, что осталось — поставить галочки в колонке Auth и запомнить/записать ip сервера в колонке Managed IPs. По желанию можно прописать имя и описание для удобства.

В моем случае это 10.147.17.5
В моем случае это 10.147.17.5

Всё! Теперь сервер и Plex вместе с ним всегда будет доступен по адресу http://10.147.17.5:32400/web

Осталось решить вопрос с мобильной версией, ибо в вебе нет адаптива. Разработчик решил запилить для этого отдельное приложение для Android и iOS.

Лично мне, нравится, но есть нюанс. В iOS версии имеется ограничение стриминга в 1 минуту, неважно видео это или аудио. По началу каеф обламывает. Фулл обойдется в $5.99, единоразовым платежом. Конечно, там имеется и подписка. В данном случае смысла не вижу в ней. Возможно на Android есть альтернативные народные сборки, но вопрос этот не уточнял.

Итог

Конечно, здесь не панацея, и у схемы есть слабые места. Но могу сказать, что всё работает. С именно той музыкой, что нужна.

Всем добра и позитива)

P.S. Знаете как сделать лучше? Пишите в комменты, подумаем вместе)

P.P.S. Plex — здоровенный медиакомбайн, и в рамках темы я не касался остального функционала. Возможно сделаю это позже)

Каким стримингом пользуетесь?
Яндекс.Музыка
Spotify
Apple Music
Google Play Музыка
Deezer
Свой вариант в комментах)
Запилил(а) себе сам(а)
44
Начать дискуссию