首先说一下为什么选择这个名字鬼畜的分支吧:一圈看下来,包括 audiostation,jellyfin,只有这一个支持整个 CD + flac 和 flac 内嵌 CUE 的格式,所以没得选。

功能展示

技术细节先退后,看一下完成之后的样子

音流客户端

音流_播放
音流_专辑页
音流_主页

网页端

有点简陋,但是功能齐全

网页_主页
网页_专辑
网页_设置

substreamer

除了音流,这个也很强(特指网页版),相比音流和网页端搜索速度和准确度大幅提高,操作相比音流齐全很多(如查看专辑艺术家),美中不足的是不支持歌词
ss_主页

服务器搭建

非常简单

下载war包

kagemomiji/airsonic-advanced 不提供任何包管理器安装,请自己下载war包。github release

运行airsonic-advanced服务端

这里讲最简单的。

  1. 新开一个 screen 会话
    screen

  2. 运行war包
    sudo java -jar airsonic.war

  3. 访问webui
    默认端口是8080,访问webui按照提示操作就行了。需要注意在 settings->Media folders 打开Enable cue indexing 并且关闭 Hide virtual tracks

搭建歌词服务

这个服务端自带的歌词非常难用,我从来没成功过。有这么两个替代的歌词 api。

lrcapi

可以考虑使用lrcapi,但是这个数据不全而且不支持歌词翻译,十分蛋疼

用docker安装。

docker run -d \
    -p 28883:28883 \
    -v /home/user/music:/music \
    -e API_AUTH=自定义一个鉴权key \
    hisatri/lrcapi:latest

StreamMusicLyricsApi

觉得好用请给个star(逃
我前两天写的StreamMusicLyricsApi,这个使用网易云api,歌词相对多一点。多个候选也有了。

安装方式简单粗暴。

  1. 拉取仓库
    git clone https://github.com/yuygfgg/StreamMusicLyricsApi
    cd ./StreamMusicLyricsApi/
    
  2. 运行
     nohup python3 ./lrc.py
    
    默认端口51232,可以在 python 脚本里面改。

这个通过专辑+歌曲名搜索,然后过滤出时长差 <3<3 秒的,理论上准确率相当高,但是遇到少数情况也会出问题

客户端

平时听歌可以用音流,支持歌词。但是要搜索找歌得用substreamer

音流

这个最简单。按照 官网就行。

连接选择subsonic,去设置-自定义API把歌词接口换成刚刚搭建的。

substreamer

这个比较麻烦。可以用客户端,但是就没法无损串流了。这里讲web客户端。

安装服务器端

docker run -d \
   --name substreamer \
   --restart=unless-stopped \
   -p 8081:8081 \ 
   ghenry22/substreamer:latest

然后访问 8081端口,按照提示登录。注意打开 Use Legacy Authentication

ss_login

登录进去在settings里打开 Improved Search

ss_setting_search

打开无损串流

ss_lossless

杂项

理论上这样就可以enjoy了,不过还有几个小的trick
截屏2024-05-20 20.27.38.png

Lyrics

觉得好用请给个star(逃 ×2\times 2
是的还是歌词相关。这玩意可以帮你无需音流的 VIP 就可以用 macOS 状态栏歌词。原理是利用系统的播放信息去网易云匹配歌词,然后显示。匹配不准也可以手动改。
截屏2024-05-20 20.34.15.png

具体请看github
暂时不提供release,请自行用Xcode编译