Relative and absolute paths in playlists
Why playlist entries stop working after you move files, and how to write paths that work in VLC, Kodi and home media servers on Windows, macOS, Linux and a NAS.
Last updated 2 November 2026
The most common reason a playlist “stops working” is that its entries point to places that no longer exist: the files moved, the drive letter changed, or the playlist was copied to another device. Understanding paths fixes almost all of these problems.
Absolute paths
An absolute path gives the full location from the top of a drive or file system:
C:\Users\Sam\Music\Artist\01-song.flac (Windows)
/Users/sam/Music/Artist/01-song.flac (macOS)
/home/sam/Music/Artist/01-song.flac (Linux)
They work from anywhere on the same computer, but break as soon as the files or the playlist move to another computer, user account or drive.
Relative paths
A relative path is written from the folder that contains the playlist:
Artist/01-song.flac
../Shared/Artist/01-song.flac
Artist/01-song.flacmeans “the folder Artist next to this playlist”...means “one folder up”.
Players resolve relative entries against the playlist’s own location. VLC, for example, resolves each entry against the address of the playlist file, and when it saves a playlist it writes relative paths for files in the same folder or a subfolder. Jellyfin also resolves relative entries against the folder that holds the playlist.
Relative paths are the most portable choice: keep the playlist inside your music folder and you can copy the whole folder to a USB stick, another computer or a NAS, and the playlist keeps working.
Player by player
| Player or server | Relative paths | Notes |
|---|---|---|
| VLC | Yes, relative to the playlist file | Saves relative paths when files are in the same folder or below |
| Kodi | Possible, but break when moved to other hardware | The Kodi wiki recommends absolute paths where possible, written the way Kodi sees the files |
| Jellyfin | Yes, relative to the playlist’s folder | Entries must point to files inside a library folder |
| Emby | Yes | Paths must match the paths used in the library setup |
| Plex | Import takes an absolute path on the server | See our home media server guide |
Slashes and drive letters
- Windows paths normally use
\, while macOS, Linux and most NAS systems use/. A playlist written with\on Windows usually needs its separators changed to/before it works on those systems. - On Linux and most NAS systems, names are case-sensitive:
Music/Song.flacandmusic/song.flacare different files. - A path with a drive letter (
D:\Music\…) only works on Windows, and only while that drive keeps the same letter.
Paths as your server sees them
A media server reads paths from its own point of view. If Jellyfin runs in a container, it may see your music as /data/music even though the same folder is /mnt/storage/music on the host and \\nas\music from your laptop. Absolute entries in a playlist for the server must use the server’s view. Relative entries avoid the problem entirely.
Web addresses never change meaning
Entries that are web addresses (https://…) are always absolute. They don’t depend on where the playlist is stored, but they do depend on the server behind them staying online.
Fixing broken paths in M3U.Click
When the editor’s find and replace arrives, you will be able to change the start of many paths at once, for example replace D:\Music\ with Music/, and preview the result before you save. Until then, a careful search and replace in a plain-text editor does the same job: make a copy of the playlist first.
Sources
We checked what this guide says about other software against these official sources. Their menus and features can change between versions.
- VLC 3.0 source, M3U reader resolves entries against the playlist's address (modules/demux/playlist/m3u.c)
- VLC 3.0 source, M3U writer saves relative paths for the same folder (modules/misc/playlist/m3u.c)
- Kodi wiki, Basic playlists (paths)
- Jellyfin server source, playlist entries resolved against the playlist folder (PlaylistItemsProvider.cs)