用NAS听音乐,没歌词怎么行!歌词API的搭建流程

2024-08-05 09:53:11 32点赞 266收藏 22评论

自从在家中的NAS系统上搭建了一系列音乐自动下载播放系统,我感觉瞬间打通了任通二脉,对于音乐也重拾了热情。此外还在闲鱼平台入手了学生时代一直向往的IPod Classic,刷了Rockbox,海淘了BOSE耳机尚在途中。

上个月现场观赏了山下智久的Sweet Vision演唱会,不由感叹还是以前的偶像唱跳俱佳,山P这样的硬实力比起现在国内一众偶像不知道高到哪里去。

用NAS听音乐,没歌词怎么行!歌词API的搭建流程用NAS听音乐,没歌词怎么行!歌词API的搭建流程用NAS听音乐,没歌词怎么行!歌词API的搭建流程

在准备演唱会时我意识到了这个问题,平时用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端口,确认服务可以被访问。

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

以音流Windows端为例,至设置中的Custom API (Custom API是音流付费会员的功能),设置Lyrics API地址为:http://0.0.0.0:28883/lyrics,回车保存。(新版API:http://0.0.0.0:28883/jsonapi)

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

(可选)将Cover API的地址设为:http://0.0.0.0:28883/cover,实测专辑图片抓取较慢,如果下载的歌曲已经包含图片,建议禁用此选项。

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

然后在听歌时,就可以显示滚动播放的歌词了。Windows的音流应用下英文歌曲的显示效果:

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

山下智久的日文歌曲的显示效果:

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

中文歌曲的显示效果:

用NAS听音乐,没歌词怎么行!歌词API的搭建流程

其他平台,如iOS,安卓TV的音流客户端,我也都尝试可以正常运行。

没有条件自己搭建API服务器的朋友,也可以直接使用公开的API地址,如下:

歌词API地址:https://api.lrc.cx/lyrics

封面API地址:https://api.lrc.cx/cover

实测也可以正常使用。

总体而言,这个歌词API的使用方法非常简单,效果令人满意,推荐拥有NAS环境,喜欢听歌的朋友们试试看。

展开 收起
22评论

  • 精彩
  • 最新
  • 大佬这个报错为啥啊,都是按教程部署的
    Internal Server Error
    The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

    校验提示文案

    提交
    是打开网页就这样吗?看看docker的状态是否正常,看看日志有没有报错

    校验提示文案

    提交
    删除重装过几次了,都是这样,不同版本的镜像都试过
    ERROR:api:Exception on /cover [GET]

    Traceback (most recent call last):

    File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app

    response = self.full_dispatch_request()

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request

    rv = self.handle_user_exception(e)

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 收费吗?

    校验提示文案

    提交
    API免费的,那个APP可以付费

    校验提示文案

    提交
    收起所有回复
  • 很专业啊

    校验提示文案

    提交
  • 我这就去试试,好久没玩了

    校验提示文案

    提交
  • 学到了,有用

    校验提示文案

    提交
  • 厉害了,是我看不懂的天书📖

    校验提示文案

    提交
  • 感谢,这下感觉就可以了!

    校验提示文案

    提交
  • 碉堡了,有了NAS,开启了新世纪的大门啊

    校验提示文案

    提交
  • 原来还能这么玩啊

    校验提示文案

    提交
  • 添加公开的api但是没有歌词呢

    校验提示文案

    提交
  • 业余人员还是老实用DS AUDIO

    校验提示文案

    提交
  • 感谢分享

    校验提示文案

    提交
  • 太厉害了

    校验提示文案

    提交
  • 大佬,学习了!

    校验提示文案

    提交
  • 收藏了!现场看帅哥,羡慕!

    校验提示文案

    提交
  • 学习,这个很有用

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
266
扫一下,分享更方便,购买更轻松