Vergeet Spotify en stream je eigen muziek met Navidrome
Wil je muziek streamen naar een browser of app op je smartphone, vanaf je eigen server? Navidrome is een uitstekende optie: het is eenvoudig te installeren, werkt snel en efficiënt, en ondersteunt talloze apps van derden. Je hebt zelfs controle over de kwaliteit van de streams. Dit maakt het een waardig alternatief voor bijvoorbeeld Spotify.
In de loop der tijd een muziekcollectie opgebouwd? Stream deze muziek dan vanaf een eigen server met Navidrome. Dat doe je als volgt:
- Voorzie je muziek van de juiste tags
- Installeer Navidrome (wij doen dat op een Linux-server via Docker, maar het kan ook op een NAS)
- Gebruikersaccounts aanmaken
- Desktop-app installeren
- Smartphone-app installeren
Eenmaal ingesteld, dan kun je misschien wel in alle kamers van je huis van muziek genieten: Multiroom: een muzieksysteem voor heel je huis
Streamingdiensten leveren niet alleen maar blije gezichten op. Abonnementsprijzen staan onder druk, of je moet bijbetalen voor een betere kwaliteit. Zo zou bij Spotify al een verbeterd Pro-abonnement in de steigers staan. Zo nu en dan boycotten bands de streamingdiensten, vaak vanwege onenigheid over de compensatie. Weliswaar keren ze meestal op hun schreden terug, maar het is toch jammer als je favoriete band opeens verdwijnt. Ook zijn er zorgen over de privacy. Spotify ontving recent nog kritiek (en een boete) omdat het niet voldoende duidelijk maakt waarvoor het de persoonlijke gegevens van klanten gebruikt.
Heb je zorgvuldig een eigen muziekverzameling opgebouwd? Dan kun je daar prima zelf iets omheen bouwen. Je spaart zodoende een abonnement uit en kunt in elke gewenste kwaliteit naar je muziek luisteren. Er zijn genoeg opties, maar streamen vanaf een eigen server heeft vaak de voorkeur en is ook helemaal niet lastig in te stellen.
In dit artikel gaan we aan de slag met Navidrome. Je kunt hiermee niet alleen luisteren via een browser, maar ook een van de vele apps gebruiken, die we ook zullen uitlichten. Verder kun je ook accounts voor gezinsleden maken en toegang op afstand mogelijk maken.
Toepassingen voor muziek streamen Er zijn veel toepassingen voor het streamen van muziek. Voor dit artikel zijn we op zoek gegaan naar toepassing die je eenvoudig kunt installeren en die compatibel is met een groot aantal apps. Navidrome voldoet aan deze wensen. In de browser biedt het een vlotte en moderne gebruikersinterface die werkt op elk apparaat. Tevens is Navidrome compatibel met Subsonic, waardoor je talloze apps voor desktop of mobiel kunt inzetten. Welke functionaliteit je dan krijgt, hangt vooral af van de gebruikte app. In vergelijking met andere Subsonic-klonen, zoals Airsonic en recentere forks, doet Navidrome zijn werk veel sneller en efficiënter. Daardoor zijn de systeemeisen heel bescheiden. Bovendien wordt het actief onderhouden, terwijl veel alternatieven al jaren niet zijn bijgewerkt.
1 Wat heb je nodig
Je kunt Navidrome op verschillende systemen installeren. Wij kiezen voor een installatie via Docker op een Linux-systeem en een Synology-NAS. Daarvoor heb je natuurlijk een map nodig met goed georganiseerde muziek (zie de volgende stap). Dat mag ook een map op de NAS zijn. Merk op dat Navidrome maar één map indexeert, maar wel alle onderliggende mappen meeneemt. Het verandert niet de indeling of inhoud, en leest dus alleen je mappen en bestanden. Het indexeren gaat snel en automatisch. Na de installatie kun je door al je muziek bladeren via je browser, afspeellijsten maken, favorieten beheren en instellingen wijzigen. Ook kun je een van de vele apps gebruiken die we later in dit artikel nog zullen benoemen.
2 Muziek organiseren
Wil je optimaal gebruikmaken van je persoonlijke muziekverzameling? Er is één gouden regel: voorzie al je bestanden van de juiste tags! Dat maakt het gebruik van Navidrome of een van de vele alternatieven als Airsonic, Plex en Volumio veel gemakkelijker. Bijna alle details, zoals album, artiest en titel, worden overgenomen van de tags. Je kunt je mappen nog steeds zelf indelen in de vorm /artiest/album, maar dit heeft geen invloed op de indexering. Navidrome biedt zelf ook geen mogelijkheid om door mappen te bladeren. Een extra motivatie dus om de tags goed bij te houden. Diverse toepassingen nemen je dit werk uit handen. De beste ervaringen hebben we met Beets dat eventueel ook werkt vanaf een server. Op je pc zijn MusicBrainz Picard en foobar2000 goede opties. Navidrome honoreert ook de tag voor compilaties (zoals verzamelalbums) en voor albumartiest, mocht een album verschillende (meewerkende) artiesten hebben. Zo voorkom je dat één album opeens een groot aantal artiesten laat zien.
3 Kwaliteit
Het is raadzaam om muziek in hoge kwaliteit te bewaren. Het omzetten van je originelen naar een lagere kwaliteit lijkt soms aantrekkelijk om opslagruimte te besparen of om het dataverkeer richting mobiele apps te beperken, maar je hebt dan nooit meer de mogelijkheid om de nummers op hogere kwaliteit te beluisteren. Bovendien kun je met veel toepassingen, waaronder Navidrome, gewoon in lagere kwaliteit streamen naar bijvoorbeeld je smartphone, ook wel transcoderen genoemd. Bij Navidrome is de kwaliteit zelfs per muziekspeler apart in te stellen.
Concreet betekent het dat je bijvoorbeeld lokaal via je browser in de hoogste kwaliteit naar je muziek kunt luisteren, maar voor de app op je smartphone transcoding kunt inzetten in bijvoorbeeld mp3-, aac- of opus-formaat met de gewenste bitrate. Voor transcoderen is het ideaal als je originele muziek losless is bewaard, zoals in het populaire flac-formaat (Free Lossless Audio Codec). Bij die vorm van compressie blijven namelijk alle oorspronkelijke gegevens behouden. Bij een conversie van losless naar lossy (zoals mp3, aac of opus) houd je een veel betere kwaliteit over dan bij een conversie tussen twee lossy formaten (zoals van mp3 naar opus). Al is dit verhaal vooral op kritische luisteraars van toepassing.
Lees zeker ook: Wat is het verschil tussen lossy en lossless audio?
4 Installatie
Navidrome kun je op verschillende manieren installeren. In dit artikel gaan we uit van installatie op een Linux-server via Docker Compose. Eventueel is ook een handmatige installatie mogelijk. In de documentatie vind je verschillende opties, onder meer voor Ubuntu. Er worden zelfs pakketten bijgehouden door de gebruikersgemeenschap voor installatie op verschillende systemen.
Wil je Navidrome op een NAS installeren? Er is een pakket voor Qnap beschikbaar, maar (nog) niet voor Synology. Bij een Synology-NAS is daarom een installatie via Docker de beste optie (zie het kader ‘Installatie op een Synology-NAS’) waarmee je snel operationeel bent. Verder zou je natuurlijk ook een server in de cloud kunnen gebruiken, zoals een goedkope VPS.
Installatie op een Synology-NAS Bij de +-modellen van Synology kun je met Docker-containers werken. Uiteraard moet je dan eerst Docker installeren binnen DSM. Open daarna de toepassing en ga naar Register. Zoek naar deluan/navidrome, klik erop en kies Downloaden. Kies de standaardtag latest. Je hebt nu een image waarmee je de container kunt maken. Ga, als het downloaden is voltooid, naar Container en kies Maken. Selecteer deluan/navidrome en kies Volgende. Doorloop de wizard. Voor het merendeel kun je de standaardinstellingen accepteren. Echter, kies in het venster Algemene instellingen voor de optie Automatisch opnieuw starten inschakelen. Zo blijft Navidrome altijd actief. Bij Poortinstellingen vul je bij Lokale poort het poortnummer 4533 in. Bij Volume-instellingen kies je Map toevoegen. Selecteer nu de map op je NAS waarin al je muziek is opgeslagen (in ons voorbeeld /music/albums). Vul daarna onder Pad koppelen de map /music in. Zo koppel je in feite de map op de NAS met de map /music in de container, waar Navidrome al je muziekbestanden verwacht aan te treffen. Na het starten van de container staat Navidrome op http://ipadres:4533 al voor je klaar, waarbij je uiteraard het ip-adres van je NAS invult.
5 Docker Compose
Docker en Docker Compose zijn wellicht geen onbekenden meer voor je, daarom behandelen we de installatie hiervan niet in detail. Er zijn echter goede handleidingen voor, zoals via DigitalOcean, of lees het artikel op ID.nl: Instapcursus Docker Desktop: geen gedoe met losse applicatiebestanden. Maak een map voor Navidrome aan en bewerk vervolgens met nano docker-compose.yml het configuratiebestand. Zet daarin de volgende inhoud:
In ons voorbeeld is /mnt/nas/music/albums de map met de muziekbestanden. Hier gebruiken we een map op de NAS die is gemount. Maar je kunt natuurlijk ook een lokale map op de server aanwijzen. We zorgen er verder voor dat Navidrome zijn database en andere gegevens op de host bewaart in de onderliggende map ./data. Eventuele problemen met rechten kun je oplossen door achter user: de uid en gid van de gebruiker in te vullen die toegang heeft tot de map met muziek. Start Navidrome ten slotte met: docker-compose up -d.
Daarna verwijs je je browser naar http://ipadres:4533.
6 Gebruikers en instellingen
Als je Navidrome voor het eerst start, word je gevraagd om een account aan te maken. Dit eerste account is een beheerdersaccount waarmee je alle onderdelen van Navidrome kunt beheren en ook nieuwe gebruikers aan kunt maken. Je kunt nu vrijwel direct door de geïndexeerde muziek bladeren en naar albums luisteren. Op de achtergrond wordt ondertussen de rest van de muziek geïndexeerd. Als er een m3u-bestand wordt gevonden, wordt hier automatisch een afspeellijst voor gemaakt. Uiteraard kun je ook handmatig afspeellijsten maken door bij Playlists op het instellingenicoontje te klikken. Zet een vinkje bij Public als je alle gebruikers toegang tot de afspeellijst wilt geven. Rechtsboven kun je het menu openen, via het gebruikersicoontje. Onder Personal kun je eventueel de taal naar Nederlands veranderen, het thema aanpassen, of met de optie ReplayGain het volume normaliseren. Via hetzelfde menu kun je extra gebruikers toevoegen, eventueel met beheerdersrechten, en transcoding per muziekspeler instellen, waar we in stap 10 nog op terug komen.
Navidrome op afstand Er zijn veel manieren om op afstand, buiten je lokale netwerk, toegang tot Navidrome te krijgen. Je kunt bijvoorbeeld WireGuard gebruiken, zie ook het artikel op pagina XX. Ook kun je poort 4533 doorsturen in je router naar de server waarop Navidrome draait. Je gebruikt dan het ip-adres van je internetverbinding en poortnummer om verbinding te maken. Heb je geen vast ip-adres? Gebruik dan een dynamisch DNS, zoals Duck DNS, dat ook in de masterclass over WireGuard wordt behandeld. Je server bereik je dan bijvoorbeeld via http://subdomein.duckdns.org:4533.
Nog mooier is het als je een domeinnaam hebt (en het beheer over de DNS-instellingen) en thuis een vast ip-adres. Je kunt dan via een (sub)domein verwijzen naar dat ip-adres. Zet vervolgens ergens in je netwerk een reverse proxy op met Nginx (of Nginx Proxy Manager) die dan bijvoorbeeld https://navidrome.mijndomein.nl doorverwijst naar de lokale installatie. Al je diensten kun je op die manier via een eigen (sub)domeinnaam bereikbaar maken.
7 Apps voor desktop
Er zijn veel apps die samenwerken met Navidrome. Via de website van Navidrome vind je diverse suggesties. Op je desktop heb je dankzij de vlotte gebruikersinterface in je browser wellicht niet zo snel een app nodig. Zoek je dat toch, dan is Feishin voor Windows, macOS en Linux een aanrader. Deze werkt niet alleen samen met Navidrome, maar ook met Jellyfin. De laatste release vind je door te klikken op Latest. Open Feishin na de installatie en kies Open menu. Kies Manage servers en dan Add Server. Op het tabblad Navidrome kun je de details van je server opgeven. Vul ook je accountgegevens in en leg deze vast met Save Password.
8 Apps voor smartphone
Hoewel je Navidrome via de browser op je smartphone kunt openen, werkt een app meestal prettiger. Ook krijg je doorgaans veel extra functionaliteit. Twee goede opties voor Android zijn DSub en Symfonium. DSub was al populair in combinatie met het oude Airsonic en werkt goed en stabiel, ook al is Airsonic zelf al jaren niet meer bijgewerkt. Met Navidrome werkt het ook goed samen. De overstap is makkelijk, je kunt Navidrome gewoon als extra server toevoegen en ertussen wisselen. Symfonium wordt wat actiever onderhouden en is heel compleet. Je kunt Navidrome als Subsonic-server toevoegen. Op een iPhone of iPad kunnen we play:Sub aanraden.
9 Transcoding
In enkele situaties kan transcoding nodig of wenselijk zijn. Heb je bepaalde muziek, bijvoorbeeld in een exotisch bestandsformaat, die niet door de browser wordt ondersteund, dan kun je er middels transcoding voor zorgen dat het toch kan worden afgespeeld. Of heb je muziek in een hoge kwaliteit zoals flac opgeslagen, en wil je luisteren via je smartphone, dan beperkt transcoding het dataverkeer.
In Navidrome kun je transcoding per app apart instellen. Bij DSub kun je daar het beste alleen een codec kiezen (zoals opus) en geen bitrate. Die kun je namelijk via de instellingen van DSub beperken, onder Cache/Netwerk, met een aparte bitrate voor wifi en mobiel.
10 Per app instellen
In Navidrome kun je per muziekspeler kiezen of er transcoding moet worden gebruikt. Daarvoor open je Navidrome als beheerder in de browser en klik je rechtsboven op je gebruikersicoontje. Kies vervolgens onder Players de gewenste muziekspeler. Je kunt nu kiezen of aac, mp3 of opus moet worden gebruikt met eventueel een maximale bitrate. Wil je testen of de speler dit honoreert? Het zal snel duidelijk zijn als je in Navidrome eerst bijvoorbeeld kiest voor mp3 met 32 kbit/s als maximale bitrate en daarna omschakelt naar opus met 160 kbit/s. Weet je niet wat te kiezen? We raden meestal het moderne en efficiënte opus aan, omdat dat ook bij een lagere bitrate van bijvoorbeeld 128 kbit/s nog een heel goede kwaliteit biedt. In de toekomst krijgt Navidrome mogelijk een update waarmee je specifieker kunt aangeven wanneer transcoding moet worden gebruikt.
11 Meer opties
Navidrome biedt nog wat extra opties. Zo kun je enkele integraties activeren, waaronder Last.fm. Daarmee kan Navidrome biografieën van artiesten tonen, de populairste nummers weergeven of vergelijkbare artiesten laten zien. Integratie met Spotify zorgt ervoor dat Navidrome afbeeldingen van artiesten kan laten zien. Voor zowel Last.fm als Spotify volstaat een gratis account. In de documentatie vind je de stappen om de integraties toe te voegen. Wil je nog een stapje verdergaan, dan zou je de status van Navidrome kunnen monitoren via een dashboard in Grafana.