Je eigen streamingserver voor muziek

Veel van jullie zijn bekend met spotify om muziek te streamen. Helaas is het aanbod bij spotify beperkt, en loop je de kans dat artiesten muziek weghalen en je dit niet meer kan luisteren. Hierom kun je ervoor kiezen een eigen muziekstreamingsdienst te bouwen. Het enige wat hiervoor nodig is, is een server die aanstaat als je muziek wil luisteren. Dit stappenplan werkt op zowel pc’s als op raspberry pi’s en soortgelijke apparaten.

De eerste stap is het installeren van docker. Het is van belang dat je hiervoor de gids volgt vanaf de docker site (hier de link). Installeer zowel docker als docker compose, dit maakt de rest van de stappen namelijk een stuk makkelijker. Na installatie van docker maken we een file aan (de docker compose file). Belangrijk is de naam en extensie namelijk docker-compose.yml . Je kunt deze aanmaken in de terminal (in linux) of met notepad (op windows). In de compose file moet dit staan:

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
    volumes:
      - "./data:/data"
      - "/Plaats hier het pad naar je muziek folder/:/music:ro"

Een paar zaken uitgelegd:

We gebruiken hiervoor de container Navidrome. Deze downloaden we vand Deluan, die deze container onderhoud.

We gebruiken poort 4533 voor navidrome. Als je ook buitenshuis wil gaan streamen, dan zul je deze poort ook in de router open moeten zetten.

Met de twee ND-opties bepalen we hoe vaak navidrome mag kijken of er nieuwe muziek is toegevoegd aan je muziekfolder, en hoe hij dit mag loggen. Met info houd hij alleen een basis aan. Je kunt hier ook kiezen voor de opties basic (welke meer info opslaat) of advanced (welke complete logs bijhoud). Let er wel op dat de grotere twee opties ook voor grotere datafiles zorgen. Omdat ik dit systeem alleen gebruik voor mezelf heb ik voor de optie info gekozen.

Onder volumes geven we aan waar de data wordt opgeslagen, en waar de muziek zich bevind. In de standard compose file staat het data pad al gedefinieerd. Als je wil kun je dit aanpassen, gezien je daarin ook aanpassingen kan maken. Het pad naar je muziekfolder moet wel goed worden gedefinieerd, anders ziet navidrome geen muziek.

Na het maken van de file starten we de container met het commando docker compose up -d . Docker start dan met het downloaden en aanmaken van de container. Als dit af is kun je inloggen bij navidrome door het ip adres in te geven met daarachter de poort 4533. DIt doe je zo: 192.168.1.x:4533 . Dan krijg je dit scherm te zien:

Hierin wordt eerst gevraagd om een account aan te maken. Daarmee kun je op alle apparaten inloggen om muziek te streamen. Na het inloggen kom je in het hoofdmenu van navidrome terecht.

Het eerste scherm is het scherm met de meest recent toegevoegde muziek. Links kun je kiezen voor verschillende sorteer functies. Je kunt hier zoeken en sorteren op nummers, artiesten en albums. Navidrome heeft ook ondersteuning voor playlists, welke je in M3u formaat aan kunt leveren. Bovenin kun je handmatig naar muziek laten scannen, maar ook extra account aanmaken, als je ook andere familieleden of mensen vanaf jouw server wil laten streamen. Deze opties zijn zichtbaar als je op het poppetje rechtsboven klikt:

Onder Personal kun je standaardinstellingen aanpassen. Denk daarbij aan kleur, taal en welk scherm je te zien krijgt als je inlogt. Ook kun je hier je Scrobble instellen. Scrobble is het linken met een 3rd party account zoals Lastfm of ListenBrainz, die dan (net als spotify) je muziek aandragen die lijkt op wat je veel luistert. Voordeel vergeleken met spotify is dat je hiervoor kan kiezen en dit je niet wordt opgedragen.

Het kopje Users geeft de gebruikers die je hebt aan, en daarnaast ook wanneer je voor het laatst bent ingelogd. Hier kun je nieuwe gebruikers toevoegen die dan gebruik kunnen maken van je streamingsdienst.

Onder player staan vermeld met welke apparaten en/of apps een gebruiker naar de muziek luistert. Hierin kun je ook instellingen per player instellen. Als je bijvoorbeeld een kleine databundel hebt, kun je hier de Bit rate aanpassen. De muziekkwaliteit is dan minder, maar verbruikt ook minder data. Vergeet niet als je dit aanpast, ook op opslaan te klikken.

Onder transcoding kun je de standard streamingsformaten aanpassen. Deze instellingen worden dan meegenomen naar alle apparaten waarop gestreamd wordt. Let wel op dat als je dit aan wil passen, je aan de container de optie ND_ENABLETRANSCODINGCONFIG=true mee moet geven. Dit moet in de docker compose file als je de container start.

Als je navidrome hebt geconfigureerd kun je naar de muziek gaan luisteren. Dit kan door het ip adres in te geven (zoals je net al bent ingelogd) of gebruik te maken van een app waarmee je in kunt loggen op de server. Omdat Navidrome gebruikt maakt van dezelfde protocollen als subsonic. Hierdoor kunnen we gebruik maken van alle audiospelers die ook gebruik maken van dezelfde protocollen. Je kunt deze apps gebruiken voor Android:

Subsonic music player

Substreamer

Ultrasonic

Subtracks

Voor je pc (zowel windows als linux) heb je andere opties, bijvoorbeeld:

Sonixd

Om de hele lijst van apps neer te zetten is een beetje overbodig. Daarom deze link naar een lijstje met apps die je kan gebruiken.