How to Build Playlists for Navidrome or Plex from a Local Folder

Short answer: scan your music folder in a browser-based tool, choose and order the tracks you want, then export a standard M3U file with relative paths. Drop that file into your library alongside the music, and Navidrome or Plex will read it without any path fixing.

Self-hosted servers like Navidrome and Plex are only as good as the playlists you feed them. Both support M3U out of the box, but the file has to be built correctly, or it will point at nothing once your server scans it. Here's how to do it cleanly.

1. Get your folder structure sorted first

Before you build anything, make sure your music folder is the same one your server points at. If Navidrome's library path is /music and you're building a playlist from a folder on your laptop that mirrors it (say ~/Music), the relative structure inside that folder needs to match. Playlists reference tracks by path, not by some internal database ID, so the folder layout is the thing that actually matters.

If you keep music organized as Artist/Album/Track.mp3, keep that structure identical wherever you're building the playlist and wherever the server reads from.

2. Scan the folder

Open the folder in a browser-based playlist tool and let it read your library. This step should just be a scan, nothing gets uploaded anywhere, since the whole point of building playlists locally is that your music never leaves your machine. If you're on Chrome or Edge, a proper folder picker means the app can remember the folder between visits. On Safari or Firefox, you'll drag the folder onto the page each session, since those browsers don't retain folder access between visits.

3. Pick your tracks and set the order

Once the folder is scanned, browse it and add tracks to your playlist in the order you want them played. This is where a good tool earns its keep, since reordering a folder of files by hand, or editing an M3U in a text editor, gets tedious fast once you're past a dozen tracks. Building it visually, browsing artist and album folders and dragging tracks into place, is a lot less error-prone.

4. Export as a standard M3U

Export should produce a plain .m3u file with an #EXTM3U header and one #EXTINF line per track, giving the duration and an "Artist - Title" label pulled from the file's tags. The paths inside the file should be relative, not absolute, so the playlist still works if the library folder gets moved or mounted at a different path on the server.

This is the step that trips people up. If you build a playlist from tracks scattered across folders that don't share a common root, you can end up with a file that has paths pointing outside your library, paths Navidrome or Plex can't resolve. A tool that blocks the export in that situation, rather than quietly producing a broken file, saves you the debugging session later.

5. Place the file where your server expects it

Drop the exported .m3u file into your music folder, or wherever Navidrome or Plex is configured to look for playlists. Navidrome scans for .m3u files inside the music library path by default. Plex needs the playlist file either alongside your library or imported through its own playlist import feature, depending on your version and setup.

6. Refresh the library

Trigger a library scan (or wait for the scheduled one) so your server picks up the new playlist. In Navidrome this shows up under Playlists once the scan completes. In Plex, you may need to import the M3U explicitly the first time, since Plex doesn't always auto-detect loose playlist files the way Navidrome does.

Where Emthree fits

Emthree does the scanning, ordering, and exporting part of this, entirely in the browser, with no install and no account required to get started. You load your music folder, build the playlist by browsing and dragging tracks into order, and export a clean .m3u with the header, per-track #EXTINF lines, and relative paths described above. Because it reads your folder locally and never uploads audio, it fits the self-hosted mindset: your library and your playlists stay on your machine unless you choose to sync them.

The export guard is worth calling out specifically for this use case. If you're building a playlist from tracks that don't share a common root folder, Emthree blocks the export rather than handing you a file full of paths that won't resolve once it lands next to your Navidrome or Plex library. That's exactly the kind of broken playlist that's easy to produce by hand and annoying to debug after the fact.

On the free tier you get unlimited scanning and full-length export with no track cap, plus up to three saved playlists in the browser. If you're managing playlists across more than one machine, for instance building them on a desktop and wanting the same set available when you're back at the server, Pro adds sync across devices and lifts the three-playlist limit. It also adds smart playlists, rule-based sets by artist, album-artist, genre, or year, which can be handy if you want a playlist that updates itself as your library grows rather than one you rebuild by hand every time you add albums.

None of this replaces knowing your library's folder structure or how your specific server expects playlists to be placed. But the tedious part, building the file itself without mangling paths, is the part worth handing off.