群晖 Docker系列 利用Navidrome自建个人音乐服务平台

这篇文章是 黑群晖 系列 21 篇文章中的第 9 篇

关键词:群晖玩法、群晖Navidrome

Navidrome介绍

什么是Navidrome

通过查询官网介绍,Navidrome 是一个自托管的开源音乐服务器和流媒体。它让您可以自由地从任何浏览器或移动设备收听您的音乐收藏。它还可以用作轻量级的 Subsonic-API 兼容服务器,可以与任何 兼容 Subsonic 的客户端一起使用。

Navidrome特点

  • 处理非常大的音乐收藏
  • 流式传输几乎任何可用的音频格式
  • 读取并使用您精心策划的所有元数据(id3 标签)
  • 多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。
  • 非常低的资源使用率:例如:具有 300GB(~29000 首歌曲)的库,它使用不到 50MB 的 RAM
  • 多平台,可在 macOS、Linux 和 Windows 上运行。还提供了 Docker 镜像
  • 准备使用 Raspberry Pi 二进制文件和可用的 docker 镜像
  • 自动监视您的库的更改、导入新文件和重新加载新元数据
  • 基于 Material UI 的主题化、现代和响应式 Web 界面,用于管理用户和浏览您的图书馆
  • 与所有 Subsonic/Madsonic/Airsonic 客户端兼容。查看经过测试的客户列表
  • 即时转码/下采样。可以为每个用户/玩家设置。支持 Opus 编码
  • 集成音乐播放

Subsonic API 支持的功能

  • 基于标签的浏览/搜索
  • 播放列表
  • 书签(用于有声读物)
  • 出演(收藏)艺术家/专辑/曲目
  • 五星级
  • 转码
  • 获取/保存播放队列(继续在不同的设备上收听)
  • Last.fm 和 ListenBrainz 搜刮
  • 来自 Last.fm 的艺术家简历
  • 来自Spotify 的艺术家图像(需要配置)
  • 歌词(来自嵌入标签)

支持的应用

除了可以使用搭建的网页端 Web UI,Navidrome 还可以与以下所有 Subsonic 客户端兼容。以下客户端经过测试并确认可以正常工作:

  • iOS:play:Sub、 substreamer、 Amperfy和 iSub

  • 安卓:DSub, Subtracks, substreamer, Ultrasonic和 Audinaut

  • 网络:Subplayer、 Airsonic Refix、 Aurial、 Jamstash和 Subfire

  • 桌面:Sublime Music (Linux) 和Sonixd (Windows/Linux/macOS)

  • CLI:Jellycli (Windows/Linux) 和STMP (Linux/macOS)

  • 连接的扬声器:

    Sonos: bonob

  • Alexa:AskSonic

  • 其他:

    Subsonic Kodi 插件、 Navidrome Kodi 插件、 HTTP目录文件系统

安装方法

套件中心安装

  1. 更改套件中心信任

套件中心-设置-常规-信任层级-任何发行者

image-20240429042225237

  1. 添加套件来源

操作路径:套件中心-设置-套件来源-新增 名称:任意 位置:https://spk.imnks.com 添加完成后确认。

image-20240429042304102

  1. 搜索安装

点击打开套件中心,随便在所有套件或者社群搜索框搜索“navidrome”,点击安装

image-20240429042336255

打钩,下一步

image-20240429042621400

设置音乐目录,/volume1/music 我这个用的是系统音乐路径,这个路径地址可以在file station里面右键文件夹属性获得,参考图见下面第二张。

image-20240429042612275

image-20240429042558540

继续点击:下一步,应用。安装好以后点击打开。初次打开需要设置管理员账户,密码,重复密码三个选项。

image-20240429042545625

语言设置,点击右上角小人头像-personal,然后在第二个框选择语言。

image-20240429042534008

稍等片刻,等待加载音乐完成。

image-20240429042522283

还可以添加第三方支持,其中上面这个好像可以记录喜好,下面这个是用来显示元数据,音乐封面啥的信息,我也不知道对不对,没研究这个。

image-20240429042511830

Docker安装

  1. 下载镜像

打开Docker-注册表-搜索navidrome,点击“deluan/navidrome”下载最新镜像,等待下载完成

image-20240429042658369

  1. 配置文件目录

我这里在docker文件夹下新建了一个“navidrome”文件夹,并新建了一个子文件夹“data”

image-20240429042718356

  1. 配置容器

选择下载好的镜像点击启动,高级设置-存储空间设置。配置参数为:选择数据文件夹对应值为“/data”,媒体库文件夹对应值为“/music”

image-20240429042740829

端口设置:默认4533可自由更改

image-20240429042815583

以下环境设置部分可不设置,因为我发现不设置也可以使用

转码配置:ND_ENABLETRANSCODINGCONFIG 对应值为 true 才能支持转码功能

ND_TRANSCODINGCACHESIZE 为缓存值 0 为禁用缓存,默认为 100MB

image-20240429042847068

Last.fm调用配置:

ND_LASTFM_ENABLED 设置 false 为完全禁用 Last.fm 集成默认为true

ND_LASTFM_APIKEY Last.fm 获取的 API Key

ND_LASTFM_SECRET Last.fm 获取的 Shared Secret

ND_LASTFM_LANGUAGE 用于从 Last.fm 检索的语言的两个字母代码,简体中文为 zh

image-20240429042914432

  1. 配置管理员账号

本地访问群晖ip:4533 会自动跳转到账号设置页面(群晖ip:4533/app/#login)分别填入管理员用户名,密码,确认密码就可以了

image-20240429042941449

  1. 语言设置

点击右上角小人头像-personal,然后在第二个框选择语言。

image-20240429043007063

image-20240429043019415

如果平时更新媒体库音乐文件了可以点击这两个更新。

image-20240429043039868

  1. 第三方授权

可用可不用吧

image-20240429043106055

Docker命令行部署

docker run -d \
   --name navidrome \
   --restart=unless-stopped \
   --user $(id -u):$(id -g) \
   -v /path/to/music:/music \
   -v /path/to/data:/data \
   -p 4533:4533 \ 
   -e ND_LOGLEVEL=info \
   deluan/navidrome:latest

Docker-composer.yaml 安装

version: "3"
services:
  navidrome:
    container_name: navidrome
    image: deluan/navidrome:latest
    user: 0:0 #0:0代表用root用户运行
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info  
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true"
      ND_TRANSCODINGCACHESIZE: "4000M"
      ND_IMAGECACHESIZE: "1000M"
    volumes:
      - "/apps/navidrome/data:/data"
      - "/media/Music:/music"

/apps/navidrome/data:请自行指定一个本地路径用来存储navidrome数据
/media/Music:/music:主机上的音乐文件夹路径
转码配置:ND_ENABLETRANSCODINGCONFIG 对应值为 true 才能支持转码功能
ND_TRANSCODINGCACHESIZE 为缓存值 0 为禁用缓存,默认为 100MB
Last.fm调用配置:

ND_LASTFM_ENABLED   设置 false 为完全禁用 Last.fm 集成默认为true

ND_LASTFM_APIKEY    Last.fm 获取的 API Key

ND_LASTFM_SECRET    Last.fm 获取的 Shared Secret

ND_LASTFM_LANGUAGE  用于从 Last.fm 检索的语言的两个字母代码,简体中文为 zh

使用

访问

安装完成,正常情况下可以通过http://IP:4533访问,首次访问会要求设置密码(由于已经安装完,登录的图片来自于网络)

5dba7f55760621f1a8d734bee83b9f46

创建用户

eefedf6603b850e87d48216c43346be1

创建成功, 进行登录,因为这时候没有歌曲,所以显示为空

5c31d5ffd569bcfeb4d6b6cb40aac9eb

切换语言

image-1692942794595

6.3 准备音乐

1、我们在网上搜索xxx音乐下载,将音乐下载下来
2、由于我们下载的音乐文件大多不内嵌歌词,需要我们自行内嵌歌词。这里推荐使用MusicTag这个软件,这也是萧瑟一直在用的音乐信息刮削的软件。

当前版本:1.0.9.0
运行环境:.NET Framework 4.6.1
操作系统:Windows Vista以上
下载链接:
https://pan.baidu.com/s/18vN9wWGbbNC2foEy4MfJEA 提取码:x081
https://wwc.lanzouy.com/ik0lo0ae7bcf
解码密码:www.coolapk.com

3、我们将准备好的音乐文件拖拽到软件中,点击某个文件可以在软件左侧看到具体信息

image-1692943344597

4、ctrl + A 全选文件 - 批量 - 自动匹配标签,选择中需要匹配的标签,可以直接全部打勾选中,点击确定,在

image-1692943697846

5、在弹出下边的弹窗之后,ctrl + S保存刚才的修改

image-1692943838876

6、将刚才操作的文件上传到服务器

image-1692943910598

7、更新Navidrome列表

image-1692943986719

8、验证信息

image-1692944127775

缺点

1、不支持音乐信息在线修改
2、不支持音乐刮削,需要手动操作第三方软件刮削
3、不支持进行歌曲的增加删除操作,歌曲的增删需要对服务器中的音乐文件进行增删
8、更多平台使用

(以下内容来自于网络)

PC端

PC电脑端推荐:Sonixd

下载:https://github.com/jeffvli/sonixd
下载安装Sonixd,先登录你的Navidrome的URL、账号和密码。

image-1692945119336

这个就是Navidrome的Sonixd界面,和Navidrome的网页端类似。

image-1692945138896

这是Sonixd的播放界面。

image-1692945154239

手机App

安卓上推荐Ultrasonic:

https://ultrasonic.gitlab.io
https://gitlab.com/ultrasonic/ultrasonic
手机上安装Ultrasonic,然后填写服务器地址、账号和密码。

image-1692945220307

这个就是Ultrasonic的界面,你可以在媒体库看到自己的音乐文件。

image-1692945242827

这是Ultrasonic的音乐播放界面。

image-1692945257985

结尾

祝大家用的开心,大家在使用过程中有遇到问题可以在评论区交流探讨

系列目录<< 群晖 Docker系列 搭建 talebook 管理电子书黑群晖NAS新手必备套件 >>