Skip to content

Rules Builder

ofernander edited this page Oct 7, 2026 · 1 revision

Rules Builder

The rules builder makes naviList playlists. You describe what you want, naviList picks matching tracks from your library, and the result is a normal playlist in Navidrome.

The idea in one minute

A playlist is made of blocks. Each block starts from one thing, like an artist or a genre, and can be narrowed by conditions. The blocks are mixed together to make the playlist. On top of that, global conditions apply to every block.

So "90s alternative rock, but not Nickelback" is one block (start: Genre = alternative rock) with two conditions (Decade is 1990s, Artist is not Nickelback). Or the decade can be a global condition if you add more blocks later.

Settings

Tracks is the maximum length. The default is 25. A playlist can come out shorter if your library doesn't have enough matching tracks.

Blocks

Each block has a starting rule: pick a type from the first dropdown and fill in the value. See Rule Terms for the types.

  • Click + Add block for more blocks.
  • The ✕ on a block's row removes it.
  • With more than one block, each shows a % share. See below.
  • Each block shows a live count of how many tracks it matches.

Conditions

Conditions narrow a block. Click + Add condition under a block, then pick the type from the dropdown. Each row reads like a sentence: type, is or is not, value.

  • is (Only) keeps tracks that match.
  • is not (Not) removes tracks that match.
  • The same type repeated with is means either: "Genre is rock" plus "Genre is pop" gives rock or pop. Rows are joined with or.
  • Different types must all hold. "Genre is rock" and "Decade is 1990s" gives 90s rock. Rows are joined with and.
  • A condition always narrows the block's start. A block that starts at Artist A with "Artist is B" gives tracks that are by both, such as collaborations. It doesn't give A or B.

Global conditions

Conditions in the Global Conditions section apply to every block. A global Artist condition can only be is not, because "only this artist" for every block would leave a playlist of one artist.

Special condition rows

Three rows don't filter. They shape what the other conditions allow, and show a joiner of with:

Row What it does Page
Similar Artist Adds artists similar to an Artist block's artist Similar Artists
Popularity Splits by hits, album tracks and deep cuts Popularity
Studio / Live Splits by studio and live recordings Studio and Live

You can add each one once per block, and once globally. A block's own Popularity or Studio / Live row wins over the global one. New playlists start with a global Studio / Live row set to 100% studio.

Shares

With several blocks you decide how much of the playlist each one gets.

  • Leave every share blank and the blocks split the playlist evenly.
  • If you fill them all in, they must add up to 100%.
  • If you fill in only some, those must add up to less than 100%, and the blank blocks split what's left.

The builder tells you if the numbers don't work and won't let you preview or save until they do.

How the playlist is built

For each block, naviList:

  1. Finds every track matching the starting rule.
  2. Applies the conditions.
  3. Shuffles the result, unless the start is a ranked list: Top played, Recently played or Highly rated. Those keep their order.
  4. Drops tracks you've disliked on ListenBrainz.
  5. Keeps one studio copy of each song, unless you've allowed live. See Studio and Live.
  6. Spreads the picks evenly across artists, so one artist doesn't take over.

Then the blocks are mixed by their shares. A block that runs out of tracks leaves its slots to the others. A track that appears in two blocks is used once. The playlist is cut at the track limit.

Preview and save

  1. Click Preview. You see the track list that would be created.
  2. Click the ✕ next to any track you don't want.
  3. Click Save Playlist. Or Discard to go back and keep editing.

The playlist is saved with exactly the tracks you see in the preview.

Below the rules is Auto-refresh. See Auto-Refresh.

What shows up in Navidrome

Navidrome shows a short description such as naviList · Artist: Zach Bryan + similar · 50 tracks. The rules themselves are stored in naviList. See Upgrading to 1.0 for what that means if you ever reset the database.

Clone this wiki locally