源码湾

Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

源码湾
10月15日发布
资源信息 解压即用,含完整源码与已跑通的成品包。
今天的游客额度(10 个)已经用完了。登录之后不限量,也不用再等第二天。
版本
v0.64.2
授权
GPL-3.0
体积
33.2 MB
语言
Go
今日额度已用完 登录后不限量下载 去登录

今日下载 0 累计下载 0 还剩 0 个

Navidrome 干的事一句话说清:你电脑里存了一堆 MP3、FLAC,它把这些文件变成一个能在线听的音乐网站。手机、平板、电脑打开浏览器就能听,还能装 App 连。

GitHub 24200 Star,GPL-3.0,v0.64.2。Go 写的,Windows 版就是一个 73MB 的 exe,双击就跑,数据库内置 SQLite。

我搭了一遍,放进去 9 首歌,从启动到能播完整走通。启动 1.13 秒,扫描 9 首歌用了 471 毫秒。

先说个反直觉的点:它比 Plex、Jellyfin 这些媒体服务器轻太多,但功能一点都不少——多用户、播放列表、收藏、评分、歌词、分享链接,该有的都有。

Navidrome 能干什么

一句话:把你硬盘里那堆 MP3、FLAC 变成一个能在任何设备上点开就听的私人音乐站。

按用途对号入座——

  • 本地音乐库没处听:手机上不想拷来拷去,浏览器打开就能播
  • 替代流媒体会员:自己攒的无损资源,音质还比会员给的好
  • 一家人共用:多用户,每个人有自己的播放列表和收藏
  • NAS 的音乐服务:群晖、威联通上跑一个,全屋设备都能连
  • 给朋友发首歌:生成分享链接,对方不用账号就能听

它不做音乐下载,也不对接网易云、QQ 音乐的曲库——只放你自己拥有的文件。

核心功能亮点

  • 自动扫描媒体库:指个目录,它自己扫标签、专辑封面、时长
  • 格式支持广:MP3、FLAC、AAC、OGG、WMA、APE 这些常见的都吃
  • 播放列表 + 收藏 + 评分:五颗星打分,列表自己攒
  • 歌词显示:内嵌歌词或者同名 .lrc 都能读
  • 多用户:每人独立播放记录,互不影响
  • 分享链接:把某张专辑、某首歌发给别人,带有效期
  • 28 套主题:后台一键换,从亮到暗都有
  • 手机端适配:浏览器打开就是移动版,也能配第三方 App
  • Subsonic 兼容 API:DSub、Symfonium 这类客户端都能直连

部署:一条命令,但第一次访问有个坑

navidrome.exe --configfile ./navidrome.toml

配置文件长这样:

MusicFolder = './music'
DataFolder = './data'
Port = 4533
UIWelcomeMessage = '源码湾音乐库'
DefaultTheme = 'Dark'
DefaultLanguage = 'zh-Hans'
EnableInsightsCollector = false

没有 web 目录要配、没有数据库要建、没有环境变量要设。启动之后数据全部落在 data 文件夹,备份就是复制这个文件夹。

第一个坑在这里:启动后浏览器打开 http://localhost:4533/app,页面全白。

我一开始以为是 JS 报错,翻控制台什么都没有。查了半天才明白:Navidrome 的 Web UI 挂在 /app/ 下,静态资源用的是相对路径 ./assets/index-xxx.js。少那个尾斜杠,浏览器就会去请求 /assets/... 而不是 /app/assets/...,全 404。

加个斜杠就好了:http://localhost:4533/app/。这个坑官方文档里没写,但你会踩。

第一次进入:创建管理员

全新实例第一眼是这个:

首次安装 创建管理员 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

三栏:用户名、密码、确认密码,然后点 CREATE ADMIN。

首次安装 已填写 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

注意这个页面是英文的,而且改不了。我把 UIWelcomeMessage 设成中文了,但这个首次安装页用的是硬编码文案——因为这时候还没有用户,读不到任何用户偏好。

创建完之后退出,再打开登录页就变成这样了:

登录页 品牌欢迎语 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

背景是黑胶唱片,中间是我的配置里那个「源码湾音乐库」,全中文。这才是 UIWelcomeMessage 生效的位置——普通登录页,不是首次安装页。

顺便说一句,那张黑胶背景图是从 Unsplash 随机拉的。断网环境没有背景(不影响用),想固定自己的图加一行 UILoginBackgroundUrl = '图片地址'。

主界面:专辑网格

进去长这样:

首页 专辑网格 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

深色主题、左侧导航、专辑封面网格。侧栏分两组:专辑(全部/随机/收藏/评分榜单/最近加入/最近播放/最多播放)和艺人、歌曲、电台、分享、歌单。

点进一张专辑:

专辑详情 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

封面、专辑名、艺人、年份、歌曲数、总时长、总大小,全都自动从文件标签里读出来的。下面是操作栏:立即播放、随机播放、下一首播放、添加到播放队列、添加到歌单、分享、下载。

歌曲表格带序号、标题、艺人、时长、品质(MP3 128)、评分。

歌曲列表页是个大表格,能按任意列排序:

歌曲列表 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

艺人页按专辑分组:

艺术家 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

播放器

点播放,底部弹出一条:

底部播放条 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

左边封面 + 歌名 + 「艺人 - 专辑 - 年份」,中间进度条,右边一排控制:上一首、播放暂停、下一首、播放队列、收藏、音量、循环模式、歌词、队列、关闭。

这个播放器是第三方组件 react-jinke-music-player,移动端会自动变成全屏视图(后面有图)。

后台:用户和媒体库

点右上角头像,管理员多出几个入口。用户管理:

用户管理 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

用户名、名称、是否管理员、上次登录、上次访问、更新时间。右上角「创建」可以加人。给家里人各开一个账号,播放记录和收藏是分开的。

媒体库:

媒体库 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

路径、歌曲数(9)、专辑数(3)、丢失文件数、总大小、上次扫描时间。右上角三个按钮:快速扫描、完全扫描、创建。加了新歌点一下快速扫描就行,也可以让它自己监听文件夹变化(默认开)。

主题:28 套,比想象中多

这块是我最意外的。点开主题下拉,一共 28 个选项:

主题选择 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

Auto、Light、Dark、AMusic、Catppuccin 四套配色、Dracula、Electric Purple、Extra Dark、Green、Gruvbox Dark、Ligera、Monokai、Moonbase、Nautiline、Nord、Nuclear、Nutball、Rosé Pine 三套、Spotify-ish、Squiddies Glass、Tokyo Night 两套,最后还有个「Create your own」。

切到 Light 是这样:

浅色主题 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

注意顶栏颜色也变了——每套主题不只是明暗,连主色都换了。这点比大部分自建工具用心。

移动端

手机浏览器打开,自动切响应式:

移动端 首页 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

两列专辑网格,顶栏收成汉堡菜单。点开菜单:

移动端 菜单 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

专辑、全部、随机、收藏、评分榜单、最近加入、最近播放、最多播放、艺人、歌曲、电台、分享、歌单,全在。

专辑页:

移动端 专辑 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

播放之后自动进全屏播放器:

移动端 全屏播放器 - Navidrome 音乐服务器:硬盘里的 MP3 变成在线音乐库

旋转的圆形唱片、大进度条、上一首/暂停/下一首,底部还有歌词、播放列表、定时关闭、收藏、队列。

但你看这张图就能发现一个问题:背景是半透明的,底下的专辑页面内容全透出来了。这是暗色主题下的样式缺陷——播放器的背景色用了带透明度的值。切到 Light 主题就没有这个问题(白色背景是不透明的)。

缺点

一、改不了站点名。 顶栏那个「Navidrome」logo 和浏览器标签页标题 <title>Navidrome</title>,全都是编译进二进制的,配置文件里没有任何选项能改。唯一能改的界面文案就是登录页那句欢迎语。你想把它做成自己的品牌站,做不到。

二、转码要自己装 ffmpeg。 启动日志里会有一行 Unable to find ffmpeg. Transcoding will fail if used。Navidrome 本身能播原生格式(MP3/FLAC/AAC 这些直接推流),但只要涉及转码——比如手机上网络差想降到低码率、或者浏览器不支持 APE/WMA——就必须要 ffmpeg.exe。得自己下载丢到目录里或者加进 PATH。

三、暗色主题下全屏播放器是半透明的。 上面那张图就是证据。底层页面内容透上来,歌名和图标混在一起,视觉上很乱。用 Light 主题或者换成别的主题能避开,但默认就是 Dark。

四、登录页背景图要联网。 默认从 Unsplash 随机拉一张。断网、内网部署、或者公司网络挡了 Unsplash,登录页就是纯色没背景。可以设 UILoginBackgroundUrl 指到自己的图,但得自己准备。

五、首次安装页是英文且不可改。 上面说过。对懂点英文的人不算事,但如果给完全不懂英文的长辈部署,第一屏会卡住。

实测环境

下载

包里有 exe + 配置模板 + 9 首示例音轨 + 完整源码 + GPL-3.0 协议 + 中文说明,双击 启动Navidrome.bat 就能跑:

上面记的这些坑,你自己走一遍也都会遇到。环境、依赖、配置、目录结构,一个都省不了。包里是我这边全部跑通之后才打的——要跳过这几步,直接拿下面这个。

示例音轨是静音的,只有标签和时长,作用是不用你先折腾音乐文件就能看到完整界面。记得换成你自己的歌。

两个小提醒:

  1. 建议先「转存到自己网盘」再下载——直接下载的链接容易失效,转存后就是你自己的了,随时能下;
  2. 手机上操作:点开链接 → 右下角「保存到网盘」→ 回夸克 App 的「我的网盘」里下载。

装之前先确认一件事:音乐文件得在本地目录里、文件名和标签别太乱(它按标签归档,标签全空的话专辑会乱成一团)。数据库内置 SQLite,不用准备。


免责声明:本项目基于 GPL-3.0 协议开源,本站仅作收集整理与技术实测分享,不提供任何商业授权。源码版权归原作者所有。请勿将本系统用于任何违法违规用途,由此产生的一切后果由使用者自行承担。如有侵权,请联系 2273962061@qq.com 删除。

实测说明

本文截图全部来自本站实测环境(源码湾 yuanmawan.com),实测版本 Navidrome v0.64.2,许可证 GPL-3.0。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消