LibreSpot – jak słuchać Spotify z terminala Linuksa

Oskar Gajzler
Przez
Oskar Gajzler
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak...
14 min czytania

LibreSpot to nieoficjalny, otwarto‑źródłowy klient Spotify Connect, który pozwala odtwarzać muzykę Spotify w tle – bez graficznej aplikacji, z poziomu terminala, na praktycznie dowolnym Linuksie.

W tym przewodniku znajdziesz wszystko: od tego, czym jest LibreSpot, przez instalację na popularnych dystrybucjach, po konfigurację jako usługę systemową i praktyczne scenariusze użycia.

1. Czym jest LibreSpot i po co go używać?

LibreSpot to program napisany w Rust, który implementuje protokół Spotify Connect.

Działa jak „głośnik Spotify”: widzisz go w oficjalnej aplikacji Spotify (na telefonie lub komputerze) jako urządzenie do odtwarzania i możesz na nie „przerzucić” dźwięk.

Najważniejsze cechy:

  • brak GUI – tylko terminal – uruchamiasz jako proces w tle lub usługę systemd;
  • Spotify Connect – sterujesz z oficjalnej aplikacji Spotify (Android, iOS, Windows, macOS, web);
  • lekkość i elastyczność – świetny na serwerach, Raspberry Pi, starych laptopach i maszynach headless;
  • backend audio ALSA – bezpośrednie wyjście na kartę dźwiękową przez ALSA (lub inne backendy, jeśli dostępne);
  • open source (MIT) – kod źródłowy jest publiczny na GitHubie.

Ważne: zgodnie z aktualnymi wymaganiami Spotify do korzystania z Connect potrzebne jest konto Premium. LibreSpot wykorzystuje mechanizmy, które w praktyce wymagają Premium (na koncie darmowym występują ograniczenia odtwarzania).

2. LibreSpot, ncspot, spotifyd – krótkie porównanie

Istnieje kilka sposobów „słuchania Spotify z terminala”:

Narzędzie Co robi w praktyce Sterowanie z terminala? Sterowanie z aplikacji Spotify? Zastosowanie główne
LibreSpot Udostępnia urządzenie Spotify Connect Nie (brak TUI) Tak „Głośnik”/endpoint Spotify na Linuksie
ncspot Pełny odtwarzacz CLI (TUI w ncurses) Tak Częściowo/przez Connect Odtwarzacz w terminalu
spotifyd Lekki daemon Spotify (też Connect) Konfiguracja z CLI, sterowanie apką Tak Alternatywa dla LibreSpot

Ten poradnik koncentruje się na LibreSpot, ale jeśli interesuje Cię pełen klient w terminalu z listami, wyszukiwarką i skrótami klawiszowymi, sprawdź ncspot (m.in. jako snap ncspot).

3. Instalacja LibreSpot na popularnych dystrybucjach

Sposób instalacji zależy od dystrybucji. LibreSpot jest dostępny w repozytoriach wielu systemów lub jako źródła Rust/Cargo.

3.1. Arch Linux i pochodne (Manjaro, EndeavourOS)

Na Archu LibreSpot znajdziesz w oficjalnym repozytorium extra jako pakiet librespot. Zainstaluj poleceniem:

sudo pacman -Syu librespot

Po instalacji binarka librespot będzie dostępna w /usr/bin/librespot.

3.2. Debian / Ubuntu / Linux Mint – instalacja przez Cargo (Rust)

W wielu wydaniach Debiana/Ubuntu LibreSpot nie jest dostępny w aktualnej wersji w oficjalnych repozytoriach, dlatego najpewniejsza jest kompilacja z Rust/Cargo. Wykonaj kroki:

  1. Zainstaluj narzędzia budowania i Rust:

sudo apt update
sudo apt install -y build-essential pkg-config libasound2-dev curl
# instalacja Rust (jeśli nie masz)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# po instalacji wyloguj się i zaloguj ponownie albo odśwież środowisko:
source "$HOME/.cargo/env"

  1. Sklonuj repozytorium LibreSpot:

git clone https://github.com/librespot-org/librespot.git
cd librespot

  1. Skompiluj i zainstaluj:

cargo build --release
sudo cp target/release/librespot /usr/local/bin/

Po tej operacji możesz uruchamiać librespot z dowolnego miejsca.

Jeśli wolisz, możesz używać LibreSpot bez instalacji systemowej, uruchamiając bezpośrednio target/release/librespot.

3.3. Fedora, openSUSE i inne

Na wielu dystrybucjach RPM sytuacja jest podobna jak na Debianie: albo LibreSpot jest w repozytoriach dystrybucji/third‑party, albo budujesz z Cargo. Przykład dla Fedory:

sudo dnf install -y gcc make pkg-config alsa-lib-devel curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/librespot-org/librespot.git
cd librespot
cargo build --release
sudo cp target/release/librespot /usr/local/bin/

3.4. Tiny Core / piCore / Raspberry Pi

Na lekkich dystrybucjach typu piCore (Tiny Core Linux na Raspberry Pi) często używa się gotowych pakietów tcz lub własnych buildów. Przykładowa konfiguracja (skrócona):

mkdir librespot
cd librespot
# pobranie portaudio jako zależności
wget http://www.gerrelt.nl/RaspberryPi/libportaudio2.tcz -P /mnt/mmcblk0p2/tce/optional
sudo echo "libportaudio2.tcz" >> /mnt/mmcblk0p2/tce/onboot.lst
# pobranie skompilowanego librespot (autor builda na forum)
wget http://www.gerrelt.nl/RaspberryPi/librespot -P /mnt/mmcblk0p2/tce
chmod u+x /mnt/mmcblk0p2/tce/librespot

Następnie zintegrować LibreSpot z mechanizmem startowym piCore (opis w sekcji o autostarcie).

4. Podstawowe uruchomienie z terminala

Załóżmy, że masz już zainstalowany librespot w systemie.

4.1. Sprawdzenie karty dźwiękowej ALSA

Aby dobrać właściwe urządzenie wyjściowe, sprawdź dostępne karty ALSA poleceniem:

aplay -l

Przykładowe wyjście:

card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog
...
card 1: USB [USB Audio], device 0: USB Audio

Interesuje Cię numer karty i urządzenia – np. hw:0,0 albo hw:1,0.

4.2. Minimalne uruchomienie LibreSpot

Najprostsza komenda wygląda tak:

librespot \
--name "Terminal-Spotify" \
--backend alsa \
--device hw:0,0

Opis najważniejszych parametrów:

  • –name – nazwa, pod którą urządzenie pokaże się w Spotify („Dostępne urządzenia”);
  • –backend – backend audio; dla desktopów i SBC najczęściej alsa;
  • –device – konkretne urządzenie ALSA, np. hw:0,0.

Po uruchomieniu:

  1. Otwórz aplikację Spotify na telefonie lub komputerze.
  2. Wejdź w listę urządzeń (ikona głośnika / „Dostępne urządzenia”).
  3. Powinieneś zobaczyć „Terminal-Spotify” na liście.
  4. Wybierz je i odtwarzaj muzykę – dźwięk popłynie na maszynę z LibreSpot.

Jeśli nic nie słychać: sprawdź, czy aplay działa na tym urządzeniu (np. aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Center.wav) oraz czy LibreSpot nie zgłasza błędów w terminalu (brak uprawnień do urządzenia, konflikt z PulseAudio itp.).

5. Przydatne opcje LibreSpot

Najważniejsze opcje, które warto znać w codziennym użyciu:

  • Jakość dźwięku – wybór bitrate dla strumienia (96/160/320 kbps);
  • Początkowa głośność – procent wyjściowej głośności przy starcie (0–100);
  • Cache/buforowanie – lokalna pamięć podręczna dla płynniejszego odtwarzania i szybszych powtórzeń;
  • Typ urządzenia – sposób prezentacji urządzenia w interfejsie Spotify (np. speaker/avr/computer).

Ustawianie bitrate (wartości: 96 | 160 | 320):

--bitrate 96|160|320

Przykład – wysoka jakość 320 kbps:

--bitrate 320

Początkowa głośność (w % maksymalnej):

--initial-volume 100

Jeśli sterujesz głośność fizycznym potencjometrem (wzmacniacz, kolumny aktywne), ustaw 100%. Jeśli regulujesz tylko software’owo, zacznij np. od 50–70%.

Włączenie cache (przykładowa ścieżka):

--cache /var/cache/librespot

Dzięki cache’owi kolejne odtworzenia tych samych utworów są szybsze, a odtwarzanie stabilniejsze przy słabszym łączu.

Typ urządzenia prezentowany w Spotify:

--device-type speaker|avr|computer|tv|stb|audiophile

Poniżej przykładowa, „pełniejsza” komenda uruchomieniowa:

librespot \
--name "Salon-Linux" \
--backend alsa \
--device hw:1,0 \
--bitrate 320 \
--initial-volume 90 \
--cache /var/cache/librespot \
--device-type speaker

6. Autostart jako usługa systemd (desktop / serwer)

Najwygodniejsze jest uruchamianie LibreSpot jako usługę systemd, dzięki czemu startuje automatycznie po uruchomieniu systemu lub zalogowaniu.

6.1. Usługa systemd w trybie użytkownika

Tryb „user” nie wymaga roota, a usługa startuje razem z sesją użytkownika. Wykonaj kroki:

  1. Utwórz katalog na jednostki:

mkdir -p ~/.config/systemd/user

  1. Stwórz plik ~/.config/systemd/user/librespot.service o treści:

[Unit]
Description=Spotify Connect (LibreSpot)
Documentation=https://github.com/librespot-org/librespot
Wants=sound.target
After=sound.target
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/librespot \
--name="Linux-Spotify" \
--backend=alsa \
--device=hw:0,0 \
--bitrate=320 \
--initial-volume=80 \
--cache=/var/cache/librespot \
--device-type=speaker
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Ścieżkę w ExecStart dopasuj do lokalizacji binarki (which librespot).

  1. Załaduj nową jednostkę:

systemctl --user daemon-reload

  1. Uruchom usługę:

systemctl --user start librespot.service

  1. Włącz autostart przy logowaniu:

systemctl --user enable librespot.service

  1. Sprawdź logi w razie problemów:

journalctl --user -f -u librespot.service

To prosty i stabilny sposób na „headless” odtwarzacz Spotify Connect w tle.

6.2. Usługa systemowa (dla konta „headless”)

Jeśli LibreSpot ma działać na serwerze bez logowania użytkownika (np. Raspberry Pi przy wzmacniaczu), utwórz dedykowanego użytkownika (np. spotify) i skonfiguruj usługę systemową w /etc/systemd/system/librespot.service z ustawionym User=spotify. W sekcji [Install] ustaw odpowiedni target (np. WantedBy=multi-user.target), aby startowała niezależnie od sesji.

7. Integracja z udev – LibreSpot startujący po podłączeniu karty USB

Jeżeli używasz zewnętrznej karty USB, możesz chcieć, by LibreSpot startował tylko wtedy, gdy karta jest podłączona, i zatrzymywał się po jej odpięciu. Zrealizujesz to regułami udev.

7.1. Usługa systemd (user) jak wcześniej

Załóżmy, że masz już ~/.config/systemd/user/librespot.service z odpowiednim --device=hw:CARD=HTA100 (karta USB).

7.2. Identyfikacja urządzenia udev

  1. Uruchom monitor udev:

sudo udevadm monitor --property

  1. Podłącz kartę dźwiękową USB i obserwuj logi – znajdź SUBSYSTEM=="sound" oraz atrybuty ID_MODEL / ATTR{id}.
  2. Dla konkretnej ścieżki możesz wyświetlić pełne info:

sudo udevadm info -a --path /sys/path/do/urzadzenia

Znajdź atrybut trwały, np. ATTRS{id}=="HTA100" lub ENV{ID_MODEL}=="HTA100".

7.3. Reguły udev start/stop LibreSpot

  1. Stwórz plik reguł:

sudo nano /etc/udev/rules.d/10-spotify.rules

  1. Wpisz reguły (przykład dla urządzenia o ID „HTA100” i użytkownika flopbox):

SUBSYSTEM=="sound", ATTRS{id}=="HTA100", ACTION=="add", \
RUN+="/usr/bin/su flopbox -c 'systemctl --user start librespot.service'"
SUBSYSTEM=="sound", ENV{ID_MODEL}=="HTA100", ACTION=="remove", \
RUN+="/usr/bin/su flopbox -c 'systemctl --user stop librespot.service'"

Logika działania jest prosta: przy podłączeniu urządzenia uruchamiana jest usługa LibreSpot dla wskazanego użytkownika, a przy odłączeniu – zatrzymywana.

  1. Przeładuj reguły udev:

sudo udevadm control --reload

  1. Przetestuj: odepnij i podepnij kartę audio, a następnie sprawdź, czy LibreSpot startuje i znika z listy urządzeń Spotify.

8. Konfiguracja w piCore / Tiny Core (Raspberry Pi)

Na piCore integracja z LibreSpot opiera się na plikach startowych i mechanizmie backupu konfiguracji.

8.1. Wybór karty dźwiękowej ALSA

Ustal właściwe urządzenie ALSA poleceniami:

aplay -l
cat /proc/asound/cards

Na podstawie wyników wybierz hw:X,Y dla parametru --device.

8.2. Dodanie LibreSpot do bootlocal.sh

  1. Otwórz skrypt startowy:

sudo nano /opt/bootlocal.sh

  1. Dodaj na końcu linię uruchamiającą LibreSpot (przykład):

/mnt/mmcblk0p2/tce/librespot \
--name YourSpotifyConnectDevicename \
--cache /tmp \
--bitrate 320 \
--initial-volume 100 \
--backend alsa \
--device hw:0,0 > /dev/null 2>&1 &

Zmień zgodnie z potrzebami:

  • nazwa urządzenia – wartość w --name;
  • urządzenie ALSA – parametr --device hw:0,0 dobrany z aplay -l;
  • głośność startowa--initial-volume, np. 100% przy regulacji sprzętowej.
  1. Zapisz plik i wykonaj backup konfiguracji:

filetool.sh -b

  1. Zrestartuj Raspberry Pi – urządzenie powinno pojawić się w Spotify pod wybraną nazwą.

8.3. Ustawienie strefy czasowej (gdy Connect nie działa poprawnie)

Na piCore przy niewłaściwej strefie czasowej Spotify Connect może nie działać. Skonfiguruj TZ w bootloaderze:

  1. Zamontuj partycję boot:

mount /dev/mmcblk0p1

  1. Edytuj plik cmdline.txt:

sudo nano /mnt/mmcblk0p1/cmdline.txt

  1. Dodaj na końcu (z poprzedzającą spacją):

tz=CET-1CEST,M3.5.0,M10.5.0/3

  1. Zapisz, wykonaj backup (filetool.sh -b) i zrestartuj RPi.

9. Rozwiązywanie typowych problemów

9.1. LibreSpot nie pojawia się w aplikacji Spotify

Najczęstsze przyczyny i wskazówki:

  • brak połączenia z internetem – zweryfikuj np. ping i konfigurację sieci;
  • usługa nie startuje – sprawdź logi, np. journalctl --user -u librespot.service;
  • problem z autoryzacją/protokołem – zajrzyj do issue trackera projektu i zaktualizuj LibreSpot;
  • konto bez Premium – Spotify Connect wymaga konta Premium.

Warto korzystać z aktualnej wersji LibreSpot z GitHuba i regularnie sprawdzać zgłoszone problemy.

9.2. Brak dźwięku mimo połączenia

  • nieprawidłowe urządzenie ALSA – sprawdź aplay -l i przetestuj aplay -D hw:X,Y;
  • urządzenie audio zajęte przez inny proces – skonfiguruj PulseAudio/JACK, wybierz inny backend (jeśli dostępny) lub wyłącz dźwięki systemu na tej karcie;
  • konflikt sterowników/konfiguracji – zrestartuj stos audio i sprawdź uprawnienia do urządzenia.

Na Raspberry Pi czasem pomaga reset sterownika ALSA i wybór wyjścia HDMI/analog:

sudo modprobe snd_bcm2835
sudo amixer cset numid=3 2

9.3. Jakość / przycinanie

  • obniż bitrate – np. --bitrate 160 przy słabszym łączu;
  • włącz cache – ustaw --cache na szybkim dysku;
  • monitoruj zasoby – sprawdź obciążenie CPU i sieci.

10. Alternatywy – ncspot: pełny odtwarzacz w terminalu

Jeżeli chcesz w pełni sterować Spotify z terminala, a nie tylko wystawiać urządzenie Connect, ciekawym narzędziem jest ncspot:

  • interfejs w ncurses – działa w czystym terminalu;
  • pełna obsługa – wyszukiwanie, playlisty, kolejka, skróty klawiszowe;
  • wieloplatformowość – Linux, macOS, *BSD;
  • instalacja na Ubuntu (snap) – polecenie: sudo snap install ncspot.

Przy pierwszym uruchomieniu ncspot poprosi o zalogowanie do konta Spotify Premium.

11. Podsumowanie praktyczne – szybki „przepis” na serwer audio z LibreSpot

  1. Zainstaluj LibreSpot odpowiednio do dystrybucji (pacman / Cargo).
  2. Sprawdź kartę dźwiękową poleceniem:
    aplay -l
  3. Przetestuj ręczne uruchomienie komendą:
    librespot --name "Linux-Spotify" --backend alsa --device hw:0,0 --bitrate 320
  4. Skonfiguruj autostart w zależności od środowiska:
    • desktop – usługa systemd --user;
    • Raspberry Pi / piCore – wpis w bootlocal.sh;
    • zewnętrzna karta USB – reguły udev start/stop.
  5. Steruj odtwarzaniem z telefonu/komputera – wybierz swoje urządzenie w „Dostępnych urządzeniach” Spotify.
Udostępnij ten artykuł
Obserwuj
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak bezpiecznie korzystać z sieci i jak dobierać sprzęt oraz oprogramowanie. Prywatnie tropi nowinki technologiczne i testuje je, zanim opisze.
Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *