DIY NAS系列35 — XiaoMusic 让小爱音箱实现听歌自由

前述

本文延伸自 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 格式音乐的播放。

Avatar photo

关于 木子

Email: [email protected] 微信:rockylinuxcn QQ: 2306867585
Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇