Serwer iTunes

Opisałem jak streamować muzykę z urządzenia z iOS i OSX do Raspberry Pi wykorzystując AirPlay. Takie rozwiązanie działa szybko i sprawdza się całkiem nieźle, ale ma jedną wadę.Malinka działa wtedy jako odbiornik, a co jeśli chcemy, żeby to ona udostępniała muzykę?

iTunes posiada możliwość udostępniania swoich zasobów w obrębie naszej sieci. Udostępnianie to, działa w oparciu o protokół DAAP(Digital Audio Access Protocol). Wraz z DAAP stosuje się DACP(Digital Audio Control Protocol), służący do sterowania iTunesem z poziomu iPhone lub iPada(Aplikacja Remote). Na Linuksie podobny efekt można uzyskać dzięki forked-daapd, którego instalację i konfigurację dzisiaj opiszę.

  • wget http://www.inf.udec.cl/~diegocaro/rpi/forked-daapd_0.19-1~bpo60+1_armhf.deb http://www.inf.udec.cl/~diegocaro/rpi/libevent-1.4-2_1.4.13-stable-1_armhf.deb http://www.inf.udec.cl/~diegocaro/rpi/libevent-core-1.4-2_1.4.13-stable-1_armhf.deb - pobieramy niezbędne pakiety. Nie są dostępne w standardowych repozytoriach, więc pobieramy je z normalnego serwera. Jak widzimy, są to pakiety .deb, pakiety specjalnego formatu instalacyjnego używanego przez dystrybucję systemu operacyjnego Linux Debian.

  • sudo dpkg -i forked-daapd_0.19-1~bpo60+1_armhf.deb libevent-1.4-2_1.4.13-stable-1_armhf.deb libevent-core-1.4-2_1.4.13-stable-1_armhf.deb - pakiety .deb instalujemy przy użyciu instalatora dpkg. W czasie tej instalacji pojawi się informacja o brakujących pakietach i cała operacja zostanie przerwana, ale nie ma się o co martwić, zaraz temu zaradzimy.

  • sudo apt-get -f install - doinstalowujemy brakujące pakiety i kontynuujemy wcześniejszą instalację.

  • sudo rm forked-daapd_0.19-1~bpo60+1_armhf.deb libevent-1.4-2_1.4.13-stable-1_armhf.deb libevent-core-1.4-2_1.4.13-stable-1_armhf.deb - kasujemy zainstalowane wcześniej pakiety. Nie będą nam już więcej potrzebne.

  • sudo /etc/init.d/forked-daapd stop - zatrzymujemy świeżo zainstalowany serwer iTunes w celu konfiguracji.

  • sudo nano /etc/forked-daapd.conf - w sekcji directories = { "/srv/music" } wpisujemy ścieżkę do naszego folderu z muzyką(np. /home/pi/music/). Jeśli muzykę do wskazanego folderu dodamy później, będziemy musieli zrestartować serwer iTunes, lub całe urządzenie. Kasujemy również # sprzed card = "default". Zapisujemy zmiany.

  • sudo /etc/init.d/forked-daapd start - odpalamy serwer iTunes.

W tym momencie możemy już słuchać muzyki z RPi na każdym komputerze z iTunes. Dodajmy jeszcze możliwość sterowania całością z poziomu iPhone’a i iPada. Choć nie jest to konieczne, bo możemy podpinać się do naszego komputera, a nie RPi, gdy chcemy sterować odtwarzaną muzyką(W aplikacji Remote wybieramy nasz komputer>Więcej i na końcu listy Udostępnianie. Tam zobaczymy “My Music on raspberrypi”, gdzie znajduje się spis piosenek udostępniony z Malinki). Ale nigdy nie zaszkodzi mieć możliwość podpinania się też pod sam serwer.

  • touch /home/pi/music/temp.remote - tworzymy plik potrzebny do działania iOSowej aplikacji Remote. Ważne, żeby znajdował się w tym samym folderze, w którym znajduje się nasza biblioteka muzyczna.

  • nano /home/pi/music/temp.remote - edytujemy go i wpisujemy w nim nazwę naszego urządzenia iOS oraz czterocyfrowy pin, który wyświetla aplikacja Remote(Ustawienia>Dodaj bibliotekę iTunes). Całość powinna wyglądać w taki sposób:

iPhone
1234
  • sudo modprobe snd_bcm2835 - upewniamy się, że nasza “karta dźwiękowa” w RPi jest włączona.

  • sudo adduser daapd audio - pozwalamy naszemu serwerowi iTunes na dostęp do systemu audio.

  • sudo reboot

Od teraz przy każdym starcie systemu w tle będzie działał nasz serwer iTunes i udostępniał wskazaną przez nas bibliotekę muzyczną. Będziemy mieli do niej dostęp z poziomu każdego komputera z iTunes w naszej sieci i możliwość sterowania nią poprzez urządzenia z iOSem.

Na koniec mam do Was prośbę. Sprawdźcie, czy u was wszystko działa, bo u mnie jest pewien problem z działaniem tej usługi. Nie wiem czy to przez mój router, który ostatnio sam się resetuje co kilka godzin, czy może Apple coś zmieniło w sposobie obsługi udostępniania muzyki, ale u mnie przerywa streaming po około 5 minutach. Szukałem czy ktoś ma podobny problem i nic nie znalazłem, więc to może być jakiś jednostkowy przypadek. W każdym razie, dajcie znać w komentarzach czy wszystko u Was działa poprawnie.

1 notka

  1. malinowepi opublikował(a) to