Your own Spotify for the music you own, on your phone at home and away
Navidrome turns a folder of music files into a Spotify-style app with album art, playlists and a player in your browser, and dozens of phone apps can stream from it. Free, open source, no account needed, and it runs from one folder on your laptop.
- Your music on your phone, through apps such as Symfonium, Tempo, Amperfy and Substreamer, at home and (with Tailscale) anywhere
- About 300MB of free disk space for Navidrome and FFmpeg, plus room for your music
- Music files you legally own, such as DRM-free downloads you've bought (Bandcamp, for example), Creative Commons music, or your own recordings
- The terminal basics from Level 0 (opening a terminal and pasting a command). Windows commands come first in each step; Mac and Linux versions follow
Download Navidrome and FFmpeg
Navidrome is the music server. FFmpeg is the free tool it uses to shrink files for your phone. On Windows both come as plain downloads, so nothing needs admin rights.
Navidrome also has a Windows installer (
.msi) on its releases page ↗, but it needs admin rights and sets itself up as a Windows service that starts with your PC. The zip is simpler: one folder you can delete when you're done.Open PowerShell and paste these lines. They make a
Navidromefolder in your user folder, ask GitHub for the newest Windows zip (about 25MB), download it and unpack it:Windows PowerShell$dir = "$env:USERPROFILE\Navidrome" New-Item -ItemType Directory -Force $dir | Out-Null $nd = (Invoke-RestMethod https://api.github.com/repos/navidrome/navidrome/releases/latest).assets | Where-Object name -like '*_windows_amd64.zip' curl.exe -L -o "$dir\navidrome.zip" $nd.browser_download_url Expand-Archive "$dir\navidrome.zip" -DestinationPath $dirNow FFmpeg. These lines download the current official Windows build from gyan.dev ↗ (about 115MB), copy the two programs Navidrome needs into the same folder, and tidy up:
Windows PowerShellcurl.exe -L -o "$dir\ffmpeg.zip" "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip" Expand-Archive "$dir\ffmpeg.zip" -DestinationPath "$dir\ffmpeg-tmp" Copy-Item "$dir\ffmpeg-tmp\*\bin\ffmpeg.exe", "$dir\ffmpeg-tmp\*\bin\ffprobe.exe" $dir Remove-Item -Recurse -Force "$dir\ffmpeg-tmp", "$dir\ffmpeg.zip", "$dir\navidrome.zip"On a decent connection the whole thing takes under a minute. The finished folder is about 270MB, almost all of it FFmpeg.
On a Mac or Linux, download the file for your machine from Navidrome's latest release ↗ (
darwin_arm64for an Apple silicon Mac,darwin_amd64for an Intel Mac,linux_amd64for most Linux PCs), install FFmpeg, and unpack Navidrome into a folder in your home folder:Mac (Terminal, with Homebrew; use darwin_amd64 on an Intel Mac)brew install ffmpeg mkdir -p ~/Navidrome tar -xzf ~/Downloads/navidrome_*_darwin_arm64.tar.gz -C ~/Navidrome xattr -d com.apple.quarantine ~/Navidrome/navidromeLinux (Debian or Ubuntu)sudo apt install ffmpeg mkdir -p ~/Navidrome tar -xzf ~/Downloads/navidrome_*_linux_amd64.tar.gz -C ~/NavidromeTipKeep this PowerShell window open. The next step uses the$dirshortcut you just made. If you closed it, paste the first line ($dir = ...) again.
Navidrome folder contains navidrome.exe, ffmpeg.exe and ffprobe.exe.If it breaksThe download fails, or Invoke-RestMethod shows an error + 1 more
The download fails, or Invoke-RestMethod shows an error
_windows_amd64.zip by hand from Navidrome's latest release ↗, save it as navidrome.zip in your Navidrome folder and carry on from the Expand-Archive line.Mac says navidrome is damaged and can't be opened
xattr line above removes the flag. Run it again with the right path if you unpacked somewhere else.