Repository navigation
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.
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.
Tracks is the maximum length. The default is 25. A playlist can come out shorter if your library doesn't have enough matching tracks.
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 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.
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.
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.
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.
For each block, naviList:
- Finds every track matching the starting rule.
- Applies the conditions.
- Shuffles the result, unless the start is a ranked list: Top played, Recently played or Highly rated. Those keep their order.
- Drops tracks you've disliked on ListenBrainz.
- Keeps one studio copy of each song, unless you've allowed live. See Studio and Live.
- 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.
- Click Preview. You see the track list that would be created.
- Click the ✕ next to any track you don't want.
- 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.
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.
Start
Building playlists
- Playlist Types
- Rules Builder
- Rule Terms
- Similar Artists
- Popularity
- Studio and Live
- Auto-Refresh
- Editing and Regenerating
Other playlists
Reference