前言

数字专辑冲击的当下,听个歌变得越来越贵。尽管作者已经是多年Spotify用户,但总有那么几首网易云带不过去的歌令人怀念。某天看过站长写的自建私人音乐流媒体——Navidrome后,大受启发开始了自建流程。

在自建音乐库方面,站长已经讲的很好了,所以本篇着重介绍音乐文件的元数据编辑,让你的音乐库更规整。关于元数据编辑,在PC上早已有了许多优秀的软件:Mp3tag+豆瓣插件音乐标签等等,而音乐库更多时候的并不运行在PC上,哪有什么好的解决方法呢?

music-tag-web

Music Tag Web的作者也就是为了满足这样的需求:

为什么开发web版? 在使用Navidrome时,我的音乐都是在远程服务器上的,本地的Musictag和mp3tag不能满足我的需求, 我需要部署在远程服务器上去需改线上的音乐标签,相当于在使用Navidrome的边车应用。

在开始之前,需要先科普一个概念。由于要满足做种和刮削兼顾的需求,会对电影、剧集做个硬/软链接来实现不占用双份空间的前提下改名刮削,也得益于媒体库软件和媒体文件.nfo的存在,可以实现读取放置在同一路径下的字幕、封面以及媒体信息。说回到音乐库,虽然Navidrome可以读取同一路径下的封面,但无法读取歌词文件.lrc,这使得修改文件成为了必然。

所以如果需要修改音乐文件,请直接复制一份,无需折腾链接

  • docker pull

    • 群晖

      点击 Container Manager - 容器 - 新增 - 映像 - 添加映像- 导入 - 从URL添加

      输入 https://hub.docker.com/r/xhongc/music_tag_web

      1_1群晖.webp

    • Unraid

      点击 Docker - 添加容器

      1_2Unraid.webp

    • docker-compose

      version: '3'
      services:
        music-tag:
          image: xhongc/music_tag_web:latest
          container_name: music-tag-web
          ports:
            - "8001:8001"
                  #前面的8001可以改成你想用的端口
              volumes:
            - /path/to/your/config:/app/data:rw
            - /path/to/your/music:/app/media:rw
                  #前面填写宿主机的本地路径,挂载容器内的相应目录过来
                  #第二个就是音乐文件读取目录
          command: /start
          restart: always
  • 使用

    访问 http://Docker所在设备IP:8001/admin

    默认账号密码 admin/admin 如需暴露在公网请务必修改密码

    • 手动匹配

      2_1手动.webp

    • 批量自动

      2_2批量.webp
      请注意,自动获取的结果非常可能不准确,建议谨慎使用,避免歌曲信息面目全非!

更多操作方法请看官方文档

  • Enjoy

    刮削完毕后,你就拥有一个漂亮的音乐库了,还有歌词的那种

    2_3歌词.webp

LrcApi+音流

如果你并不想为了歌词占用双份空间,LrcApi+音流 将会是一个替代选择。

  • 为什么是音流?

    Navidrome不支持外置API,且其它客户端例如substreamer、subtrack都不支持自定义API,目前仅有音流这一款客户端支持

    音流是一款可以在 Android、iOS、macOS 和 windows 上运行的 NAS 音乐播放器

    由于版本更新没有固定链接,请到这里根据自己的平台下载最新客户端

    音流有内购解锁,但本次用到的功能是免费的

  • docker pull

    首先我们要搭建LrcApi

    • 群晖

      点击 Container Manager - 容器 - 新增 - 映像 - 添加映像- 导入 - 从URL添加

      输入 https://hub.docker.com/r/hisatri/lrcapi

      3_1群晖.webp

    • Unraid

      点击 Docker - 添加容器

      3_2Unraid.webp

    • docker-compose

      version: '3'
      services:
        music-tag:
          image: hisatri/lrcapi:latest
          container_name: lrcapi
          ports:
            - "28883:28883"
                  #前面的28883可以改成你想用的端口
              volumes:
            - /path/to/your/music:/music:ro
                  #前面填写宿主机的本地路径,挂载容器内的相应目录过来
                  #此处挂载路径需保持与Navidrome一致
              #environment:
          #  - API_AUTH=
                  #如需暴露至公网,请务必填写该变量并解除注释作为鉴权
          restart: always
  • 音流的自定义API

    此处以移动端App为例,如图

    4_音流api.webp

    歌词接口及歌词确认接口均为 http://Docker所在设备IP:28883/jsonapi

    封面接口为 http://Docker所在设备IP:28883/cover

    若上一步添加了鉴权,请在验证信息处填写鉴权密钥

  • Enjoy

    4_音流effection.webp

    但在播放前会产生请求封面与歌词的动作,会导致一点延迟

题外话

  • Navidrome还有一些变量参数我认为是值得添加的,推荐有对应账号的补充

    LastFM.ApiKey 和 LastFM.Secret

    可以使用 Last.fm 检索艺术家传记、热门歌曲、类似艺术家和专辑封面,还可以将同步听歌记录至Last.fm

    Spotify.ID 和 Spotify.Secret

    可以使用 Spotify 获取艺术家封面及简介

    以上API申请流程可以参看这里

  • 如果你是iOS+Spotify用户,强烈推荐🍿 DualSubs: 🎵 Spotify

    这是一款为Spotify显示双语歌词的插件,效果可以看这里的评论区

感谢