Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Navidrome Lite

Navidrome Lite is an offline-first local music library browser and player that runs entirely in your browser.

It gives your local music collection a proper library experience — browse by album, artist, or genre, build playlists, import/export .m3u/.m3u8, and even play HLS streams — with no accounts, no server, and no tracking. Everything runs locally in a single page.


⚠️ Unofficial & Unaffiliated

Navidrome Lite is NOT affiliated with, endorsed by, or connected to the real Navidrome project in any way.

The real Navidrome is an excellent, self-hosted music server. This project is a small, standalone, browser-only tool that was inspired by the library-browsing experience of Navidrome — hence the "Lite" name. It shares none of Navidrome's code, does not talk to a Navidrome server, and is not a client for it.

If you want the real thing — a powerful self-hosted music streaming server — please go support the actual Navidrome project. This is just a humble local library browser that admired the vibe.

(This project is part of the same personal "Navi" family as NaviWriter and NaviPlayer Pro, which follow the same naming pattern.)


What Navidrome Lite Is

A single-page local music library app. It includes:

  • Loading a whole music folder (via the folder picker or the File System Access API)
  • Automatic album / artist / genre grouping with cover art
  • Reading embedded tags (title, artist, album, album artist, genre, year, track number, cover) via jsmediatags
  • A metadata cache (IndexedDB) so re-loading the same folder is fast
  • Global search across tracks, albums, artists, genres, and playlists
  • A three-pane layout: Library (left) · Tracks/Queue (middle) · Preview/metadata (right), with resizable panes
  • Playlists — create, save from what's visible, import/export .m3u/.m3u8
  • Smart playlist matching on import (matches entries to your library by path, filename, or artist/title)
  • HLS streaming support (add a .m3u8 URL) via hls.js
  • Playback: play/pause, seek, volume, shuffle, repeat (all/one/off), queue
  • Light / dark theme + compact row mode
  • Keyboard shortcuts
  • Virtualized track list (handles big libraries smoothly)

It is not a polished commercial product. It's a focused local music browser built through iterative development and a good deal of Copilot.


Project Status

Navidrome Lite (v8.5) is complete and stable for what it is.

It is a self-contained music library browser. It is not actively developed anymore — its ideas were carried forward and expanded into NaviPlayer Pro, which is the larger, more feature-rich player. Navidrome Lite is preserved here as the leaner, library-first option.

You may still encounter:

  • Browser-specific format/codec support
  • The usual local-file limitations (see below)
  • Minor UI quirks

Fork it, tweak it, or open a pull request if you'd like to improve it.


Credits and Development Notes

Navidrome Lite was created and directed by me, a human.

All of the code was generated with Microsoft Copilot Thinking Mode. My role was designing features, testing, reviewing behavior, asking for fixes, and directing the UI/UX. If you open the code and find something strange, please have mercy.

The internals are compact — it's index.html + app.js + styles.css, with the JS written in a dense, minified-ish style. It's small, but it's terse; read it with coffee.


Download / Installation

Download all three files from the Navidrome Lite V8.5 folder and keep them together:

-Navidrome Lite V8.5 - index.html - app.js - styles.css

Then open index.html in a browser.

It also loads two small libraries from a CDN (so a connection helps on first load):

  • jsmediatags — reads embedded music tags
  • hls.js — enables HLS stream playback

Preferably use a Chromium-based browser (Chrome, Edge, Brave, Vivaldi). The "Load Library" folder picker uses the File System Access API, which is best supported in Chromium browsers; other browsers fall back to a standard folder <input>.


Quick Start

  1. Open index.html in a browser.
  2. Click ☰ → Load Library (or use Folder Input) and pick your music folder.
  3. Wait a moment while it reads tags (progress shows in the status bar).
  4. Browse by Albums / Artists / Genres in the left pane.
  5. Click a track to preview it; click ▶ to play.
  6. Make playlists, import .m3u files, or add an HLS URL from the menu.

Feature Overview

Library

  • Folder loading (File System Access API or folder input)
  • Album / Artist / Genre columns with cover art
  • Embedded tag reading + IndexedDB metadata cache
  • Global fuzzy search across everything
  • Virtualized list for large libraries

Playback

  • Play / pause / seek / volume
  • Shuffle and repeat (all / one / off)
  • Queue (queue the visible tracks, reorder via play-next)
  • Now-playing bar with cover, title, and transport

Playlists

  • Create new playlists
  • Save whatever's currently visible as a playlist
  • Add visible tracks to an existing playlist
  • Import .m3u / .m3u8 (with smart library matching)
  • Export playlists as .m3u or .m3u8
  • Right-click / ⋯ context menus on tracks and playlists

Streaming

  • Add an HLS (.m3u8) URL and play it via hls.js
  • Streams can be saved into playlists alongside local tracks

Interface

  • Three resizable panes (Library / Tracks / Preview)
  • Preview pane showing full metadata for the selection
  • Light / dark theme (remembered)
  • Compact row mode
  • Responsive layout (panes collapse on smaller screens)

Playlist Import Matching

When you import an .m3u/.m3u8, Navidrome Lite tries hard to match each entry to a track in your loaded library, in this order:

  1. Exact relative path
  2. Path without extension
  3. Path suffix match
  4. Filename
  5. Base filename (no extension)
  6. Artist - Title from the #EXTINF label

Anything it can't match is reported as "missed" (or kept as an HLS stream if it's a .m3u8 URL). So for best results, load your music library first, then import the playlist.


Important Note on Local Files

Navidrome Lite plays local files using in-memory blob URLs, and it does not permanently store your audio files (browsers don't allow that). What it does keep:

  • Playlists and settings — saved in localStorage
  • Track metadata — cached in IndexedDB (so re-scanning the same folder is fast)

But the actual audio must be re-loaded each session by pointing it at your music folder again. Your saved playlists then re-match to the freshly loaded tracks automatically.

This is a browser security limitation, not a bug — the tradeoff for a zero-install, fully-local app.


License

Find the license in the LISCENSE file I guess.

Part of the Navi family alongside NaviWriter, NaviPlayer, and NaviPlayer Pro. Enjoy your music. 🎶

About

A media player, I suppose. The real Navidrome and NaviPlayer Pro are much better than this.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages