前述
本文延伸自 DIY NAS系列34 — 在线音乐流媒体 – Rocky Linux,旨在实现统一的音乐管理功能。是否曾在使用小爱音箱时,遇到播放一首音乐却被提醒需要开通音乐会员听全曲的情况?本文将介绍如何让小爱音箱播放存储在 NAS 上的音乐,实现听歌自由。
这里使用的开源解决方案是 GitHub – hanxi/xiaomusic。其基本逻辑是通过调用小米的 API 接口来控制小爱音箱,实现本地音乐的播放。
部署 XiaoMusic
GitHub 仓库:GitHub – hanxi/xiaomusic
Docker 镜像仓库:Docker Hub – hanxi/xiaomusic
官方文档:XiaoMusic
说明: 基于前期构建的 traefik 网关,详见: DIY NAS系列12 — Traefik 出口网关配置
在 docker-compose.yaml 文件中,会对重要的配置进行说明,因个人网络环境等不同,需要根据自身实际情况调整配置。
[root@demo xiaomusic]# cat > docker-compose.yaml << /EOF
services:
xiaomusic:
image: hanxi/xiaomusic:v0.3.76
container_name: xiaomusic
restart: unless-stopped
ports:
- 8090:8090
volumes:
- /SSD/Music:/app/music # 音乐存放目录,木子这里设置与 navidrome 相同
- /SSD/Demo/xiaomusic/conf:/app/conf # 配置文件存放目录
networks:
- traefik_net
labels:
- traefik.enable=true
- traefik.docker.network=traefik_net
- traefik.http.routers.xiaomusic.rule=Host(`xiaomusic.rockylinux.cn`)
- traefik.http.routers.xiaomusic.entryPoints=websecure
- traefik.http.routers.xiaomusic.tls.certresolver=myresolver
- traefik.http.routers.xiaomusic.service=xiaomusic
- traefik.http.services.xiaomusic.loadbalancer.server.port=8090
networks:
traefik_net:
external: true
EOF
# 启动 Radicale 服务
[root@demo xiaomusic]# docker-compose up -d
# 确保启动服务正常
[root@demo xiaomusic]# docker-compose ps
配置 XiaoMusic
打开 https://xiaomusic.rockylinux.cn (替换成您自己的域名),点击“Tailwind 主题”。
点击“设置”图标,进入设置页面。
以下配置可以在 Docker 启动的环境变量中设置,也可以在 Docker 启动后至对应后台页面设置,建议后台页面设置更加直观。
- MI_USER: 小米账号,不是手机号,到米家 APP 中 “我的” — “个人信息” 中查看,就是小米 ID。
- MI_PASS: 小米账号的密码
- MI_DID: 了解即可,启动后在配置界面选就行
- MI_HARDWARE: 设备型号,了解即可,启动后在配置界面选就行
- XIAOMUSIC_HOSTNAME: 就是您 NAS 的 IP
- XIAOMUSIC_SEARCH: 音乐搜索方式,支持 bilisearch 和 ytsearch
- XIAOMUSIC_PROXY: 代理,使用 ytsearch 搜索的话需要设置,原因您懂的。
具体配置如下:
注意:如果您使用了 Traefik 反代,并配置了其它端口,如:8899,这里的本地端口设置为 8899 即可。
音乐播放
正常情况下,这时候就可以通过口令播放本地音乐库音乐了,如果没有对应音乐,它会通过 yt-dlp 进行下载。
支持的语音口令:
- 【播放歌曲】,播放本地的歌曲
- 【播放歌曲+歌名】,比如:播放歌曲周杰伦晴天
- 【上一首】
- 【下一首】
- 【单曲循环】
- 【全部循环】
- 【随机播放】
- 【关机】,【停止播放】,两个效果是一样的。
- 【刷新列表】,当复制了歌曲进 music 目录后,可以用这个口令刷新歌单。
- 【播放列表+列表名】,比如:播放列表其他。
- 【加入收藏】,把当前播放的歌曲加入收藏歌单。
- 【取消收藏】,把当前播放的歌曲从收藏歌单里移除。
- 【播放列表收藏】,这个用于播放收藏歌单。
- 【播放本地歌曲+歌名】,这个口令和播放歌曲的区别是本地找不到也不会去下载。
- 【播放列表第几个+列表名】,具体见: #158
- 【搜索播放+关键词】,会搜索关键词作为临时搜索列表播放,比如说【搜索播放林俊杰】,会播放所有林俊杰的歌。
- 【本地搜索播放+关键词】,跟搜索播放的区别是本地找不到也不会去下载。
通过 Web 界面播放,可以选择对应设备,或者是本地电脑。
后述
如果您有其他操作疑问或在程序使用中遇到 Bug 问题,可以前往 GitHub – hanxi/xiaomusic 提交 issue。经过木子测试,最新版本 v0.3.76 暂不支持 flac 格式音乐的播放。
