P.S. Статья для тех у кого есть домашний сервер / ненужный ноутбук и т.д.

Как это работает?

VM с raspotify держит постоянное подключение по bluetooth с Яндекс Станцией, а вы можете в любой момент переключится на станцию в spotify connect.

Мой стенд

Домашний сервер с PROXMOX на котором я создал VM и прокинул bluetooth адаптер.

Характеристики VM:

Система

Ubuntu server 24.04.4 LTS (amd64) minimal

Ресурсы

1vCPU / 1Gb RAM / 10Gb ROM

Адаптер BT

Какой-то китаец на CSR8510 A10

Установка и настройка

Вы всегда можете перейти на страницу проекта и использовать оффициальную инструкцию вместо этой.

Копируем и вставляем в терминал VM:

sudo apt update -y && sudo apt install bluez bluez-alsa-utils curl nano && curl -sL https://dtcooper.github.io/raspotify/install.sh | sh

Теперь нужно найти нашу станцию и подключить её. Для этого используем команды:

bluetoothctl
scanon - включает сканирование устройств (в этот момент говорим "Алиса, включи bluetooth")
scanoff - выключает сканирование (вводим после того, как увидели станцию и её MAC)
trust MAC - добавляет устройство по MAC в доверенные
connect MAC - подключает устройство по MAC ("Connection successful" - вы сделали всё правильно)
quit - закрывает bluetoothctl

Везде где есть MAC - меняем на MAC станции.

Далее проверяем, что alsa видит наше устройство:

bluealsa-aplay -L

Ответ должен быть следующим:

bluealsa:DEV=MAC,PROFILE=a2dp,SRV=org.bluealsa
    Яндекс Станция Макс, trusted audio-card, playback
    A2DP (SBC): S16_LE 2 channels 48000 Hz

Теперь осталось прописать MAC в конфигах:

nano /etc/asound.conf
pcm.!default {
    type plug
    slave.pcm {
        type bluealsa
        device "MAC"
        profile "a2dp"
    }
}

ctl.!default {
    type bluealsa
}

Чтобы VM автоматически подключалась к колонке в случае перезапуска:

nano /etc/systemd/system/bt-autoconnect.service
[Unit]
Description=Bluetooth Auto-Connect
After=bluetooth.service bluealsa.service
Requires=bluetooth.service bluealsa.service

[Service]
Type=oneshot
ExecStart=/usr/bin/bluetoothctl connect MAC
Restart=on-failure
RestartSec=5s
StartLimitIntervalSec=0

[Install]
WantedBy=multi-user.target

Пробуем!

sudo systemctl daemon-reload && sudo systemctl enable --now bt-autoconnect.service && sudo systemctl restart raspotify

Вы также можете изменить название устройства в spotify connect. Для этого открываем конфиг:

nano /etc/raspotify/conf

В файле конфигурации ищем строку #LIBRESPOT_NAME и изменяем её на следующее (пример): LIBRESPOT_NAME="Яндекс Станция Макс (KVM)"

После этого перезагружаем сервис:

sudo systemctl restart raspotify