Smart playlists can be created as a json object into a file with .nsp extension and Navidrome will create a dynamic/query based playlist and keep it updated. These .nsp files will be imported the same way as normal playlists, i.e. at scan time. See comment below for a complete list of fields and operators available.
Some examples:
{
"name": "Recently Played",
"comment": "Recently played tracks",
"all": [
{"inTheLast": {"lastPlayed": 30}}
],
"sort": "lastPlayed",
"order": "desc",
"limit": 100
}
{
"all": [
{ "any": [
{"is": {"loved": true}},
{"gt": {"rating": 3}}
]},
{"inTheRange": {"year": [1981, 1990]}}
],
"sort": "year",
"order": "desc",
"limit": 25
}
{
"all": [
{"is": {"loved": true}}
],
"sort": "dateLoved",
"order": "desc",
"limit": 500
}
- All songs in random order (not recommended for large libraries)
{
"all": [
{"gt": {"playCount":-1}}
],
"sort": "random"
}
TODO
Smart playlists can be created as a json object into a file with
.nspextension and Navidrome will create a dynamic/query based playlist and keep it updated. These.nspfiles will be imported the same way as normal playlists, i.e. at scan time. See comment below for a complete list of fields and operators available.Some examples:
{ "name": "Recently Played", "comment": "Recently played tracks", "all": [ {"inTheLast": {"lastPlayed": 30}} ], "sort": "lastPlayed", "order": "desc", "limit": 100 }{ "all": [ { "any": [ {"is": {"loved": true}}, {"gt": {"rating": 3}} ]}, {"inTheRange": {"year": [1981, 1990]}} ], "sort": "year", "order": "desc", "limit": 25 }{ "all": [ {"is": {"loved": true}} ], "sort": "dateLoved", "order": "desc", "limit": 500 }{ "all": [ {"gt": {"playCount":-1}} ], "sort": "random" }TODO
PHASE 1 - On demand
PHASE 2 - Live update
idandrulesof playlist to processPHASE 3 - UI
MISCELANEOUS