Navidrome用智能歌单实现文件夹管理歌曲
PJ-01
编辑于 2024年01月31日 10:30
收录于文集
共6篇

从foobar2000换到这玩意,研究了两天发现没法按文件夹分类,毕竟开发者标榜的什么根据标签分类,3年前就说了绝不增加这个功能。

搜到个比较笨的方法是手动管理m3u8歌单,每次加新歌进去就用脚本生成个新的playlist,显然这效率太低了。

代码块
HTML
自动换行
复制代码
https://flemmingss.com/use-folders-as-playlists-in-navidrome/
复制成功


那么有没有好点的方法呢?就是这个nsp智能播放列表了,本身Navidrome是可以自动导入、同步文件夹下的m3u,m3u8,nsp等播放列表的,那只要播放列表可以根据文件夹的内容变化就可以了。

代码块
JavaScript
自动换行
复制代码
{
  "all": [
    {"contains": {"filepath":"/music/Aimer"}}
  ],
  "sort": "dateadded",
  "order": "desc"
}
复制成功

把上面这段代码保存为 歌单名.nsp 丢进文件夹里就行了,这会自动更新整个文件夹的歌曲,按加入日期排序,自动更新增减。

/music/Aimer要改成你歌单文件夹的路径

具体怎么扩展智能歌单用法可以参考这个issue:

代码块
HTML
自动换行
复制代码
https://github.com/navidrome/navidrome/issues/1417
复制成功

可用字段:

代码块
HTML
自动换行
复制代码
title
album
artist
albumartist
hascoverart
tracknumber
discnumber
year
size
compilation
dateadded
datemodified
discsubtitle
comment
lyrics
sorttitle
sortalbum
sortartist
sortalbumartist
albumtype
albumcomment
catalognumber
filepath
filetype
duration
bitrate
bpm
channels
genre
loved
dateloved
lastplayed
playcount
rating
复制成功

可用的运算符(不分大小写)

代码块
HTML
自动换行
复制代码
is
isNot
gt
lt
contains
notContains
startsWith
endsWith
inTheRange
before
after
inTheLast
notInTheLast
inPlaylist
notInPlaylist
复制成功



另外再说配置Last.FM和Spotify API时遇到比较坑的一点,一直报错,最后发现就是

这玩意本身会加载一个.toml外部配置文件,但是呢,这个配置文件里是不能定义ND_环境变量的。

所以把api填进.toml里的ND_LASTFM_APIKEY当然没用,要用外部配置文件填api的话,得改成LastFM.ApiKey。