自从在家中的NAS系统上搭建了一系列音乐自动下载播放系统,我感觉瞬间打通了任通二脉,对于音乐也重拾了热情。此外还在闲鱼平台入手了学生时代一直向往的IPod Classic,刷了Rockbox,海淘了BOSE耳机尚在途中。上个月现场观赏了山下智久的Sweet Vision演唱会,不由感叹还是以前的偶像唱跳俱佳,山P这样的硬实力比起现在国内一众偶像不知道高到哪里去。
在准备演唱会时我意识到了这个问题,平时用Navidrome播放NAS上下载的山下智久的无损音频时,是没有歌词的;这让我在提前预习山P的经典歌曲时产生了诸多不便。虽然正如我之前文章介绍,我使用了LRCGET的开源方案+Python脚本的方式下载存储歌曲的LRC歌词文件,并更新到文件的Tag属性中。但是这个半自动方案耗时耗力不说,对于中文、日文等非英语歌曲也非常不友好。事后我就研究了一下歌词API的搭建方案,终有所成,这里分享给大家。
这就是HisAtri/LrcApi,也是音流APP开发者的作品。
作者提供了多种安装方式,我选择的还是Docker的方式。
但是在安装时又遇到了障碍,国内已经对于Docker源做了封禁,镜像死活下载不下来。这里分享一下我的解决方法:
创建proxy的配置文件
nano /etc/systemd/system/docker.service.d/http-proxy.conf
配置文件里写入proxyserver的地址
[Service]
Environment="HTTP_PROXY=http://proxyserver"
Environment="HTTPS_PROXY=http://proxyserver"
Environment="NO_PROXY=localhost,127.0.0.1,*.xyz,*.cn,*.daocloud.io,*.aliyuncs.com,*.tencentyun.com,*.baidubce.com,*.dockerproxy.com"
重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
然而发现宿主机和容器无法通讯,因此proxy没有生效。原因在于Openwrt创建时使用的macvlan接口起到了隔离的作用,解决办法是另外创建一个宿主机同网段的macvlan接口用于二者的通讯。
# 创建 macvlan 接口
sudo ip link add macvlan_host link enP4p65s0 type macvlan mode bridge
# 为 macvlan_host 接口分配 IP 地址
sudo ip addr add 192.168.1.211/24 dev macvlan_host
# 启用 macvlan_host 接口
sudo ip link set macvlan_host up
后面搭建LRCAPI的方法就简单很多了,格式如下:
docker run -d
-p 28883:28883
-v /home/user/music:/music
-e API_AUTH=自定义一个鉴权key
hisatri/lrcapi:latest
如果你正在使用Navidrome Docker,请将 /home/user/music:/music 中的 /home/user/music 修改为你在Navidrome中映射的主机路径,比如我这里的命令为(未使用Authentication Key):
docker run -d -p 28883:28883 -v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/music:/music hisatri/lyricapi:1.5.2
这里指定了1.5.2的标签是因为看到G站的issue list提到最新版本存在无法抓取歌词的问题。
随后即可浏览器访问本地的28883端口,确认服务可以被访问。
以音流Windows端为例,至设置中的Custom API (Custom API是音流付费会员的功能),设置Lyrics API地址为:http://0.0.0.0:28883/lyrics,回车保存。(新版API:http://0.0.0.0:28883/jsonapi)
(可选)将Cover API的地址设为:http://0.0.0.0:28883/cover,实测专辑图片抓取较慢,如果下载的歌曲已经包含图片,建议禁用此选项。
然后在听歌时,就可以显示滚动播放的歌词了。Windows的音流应用下英文歌曲的显示效果:
山下智久的日文歌曲的显示效果:
中文歌曲的显示效果:
其他平台,如iOS,安卓TV的音流客户端,我也都尝试可以正常运行。
没有条件自己搭建API服务器的朋友,也可以直接使用公开的API地址,如下:
歌词API地址:https://api.lrc.cx/lyrics
封面API地址:https://api.lrc.cx/cover
实测也可以正常使用。
总体而言,这个歌词API的使用方法非常简单,效果令人满意,推荐拥有NAS环境,喜欢听歌的朋友们试试看。
网友评论