news 2026/10/16 2:31:23

用XiaoMusic让小爱音箱免会员播放全网音乐

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用XiaoMusic让小爱音箱免会员播放全网音乐

用XiaoMusic让小爱音箱免会员播放全网音乐

【免费下载链接】xiaomusic使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic

你对着客厅的小爱音箱说"播放晴天",它回答你"该内容需要开通会员"。XiaoMusic 就是为这个场景写的:跑在本地的一个 FastAPI 小服务,接管音箱的播放指令,用 yt-dlp 把音频从网上拉下来再放给音箱,整个部署是一条 docker 命令的事。

它到底是什么

一个纯 Python + FastAPI 的本地服务,不依赖小米的付费音乐通道,音频全部来自 yt-dlp 能抓到的公开网络源。

右上角的设备下拉框可以切换家里绑定的多台音箱;它做了三件事:接管播放指令:绑定小米账号后,小爱音箱的语音请求会先经过它;从网上拉音频:用 yt-dlp 从多个平台下载,存进本地音乐目录;本地缓存播放:第二遍播放同一首歌直接从本地读,没有等待。

部署

Docker一条命令跑起来

需要 Docker 环境,macOS/Windows/Linux 均可。

docker run -p 58090:8090 -v /xiaomusic_music:/app/music -v /xiaomusic_conf:/app/conf hanxi/xiaomusic

国内拉取镜像慢就换加速镜像:

docker run -p 58090:8090 -v /xiaomusic_music:/app/music -v /xiaomusic_conf:/app/conf docker.hanxi.cc/hanxi/xiaomusic

/xiaomusic_music和/xiaomusic_conf是宿主机上自己指定的目录,音乐库和配置建议分开放;如果启动时报目录不存在,先执行mkdir -p /xiaomusic_music /xiaomusic_conf再跑。浏览器访问http://服务器IP:58090进入设置页,把小米账号和密码填进去保存,设备列表才会刷出来,之后所有配置基本都在这个页面完成。

想用源码跑

git clone https://gitcode.com/GitHub_Trending/xia/xiaomusic cd xiaomusic && ./install_dependencies.sh && python3 xiaomusic.py

install_dependencies.sh负责按系统架构下载 ffmpeg(yt-dlp 转码音频依赖它),源码方式需要 Python 3.10 以上,服务默认监听 8090 端口。

改哪几个配置

首次启动后配置文件会自动生成,直接编辑的话可以参考 config-example.json,带*号的是必填项。

{ "account": "小米账号", "password": "小米密码", "music_path": "music", // 本地音乐目录,下载的 mp3 都进这里 "convert_to_mp3": false // L05B/L05C/LX06/L16A 等旧型号建议改 true }

真正好用的两个功能

自定义语音口令

user_key_word_dict里加一行,就能把一句口令映射到 plugins/ 目录下的脚本,脚本内可以调 TTS 播报、直接触发播放。

"user_key_word_dict": { "播放晨间音乐": "exec#code1(\"morning\")" }

配好后对着音箱说"播放晨间音乐",它按 code1.py 里的逻辑执行。示例脚本 plugins/code1.py 只有十行,照着改就能拼出自己的场景口令。

网络歌单

Web 设置页填一个 JSON 歌单的 URL,就能直接播别人分享的电台歌单;格式支持type: radio的 m3u8 电台流和普通 mp3 链接,电台会一直播放不会切下一首。页面里的 m3u 转换工具可以把电台的 m3u 文件直接转成这种 json,不用手写。配好之后"播放歌单 + 名字"就能语音点播。

踩过的坑

Q:配置页保存账号密码后,设备列表是空的?A:三件事按顺序查:密码是否输错(建议用小米手机账号而非扫码)、音箱和服务器是否在同一局域网、这个账号有没有被其他设备管理程序绑走过。三项都排除再点一次保存。

Q:老款音箱提示无法播放,或者 flac 报错?A:Web 设置页把【转换为MP3】和【型号兼容模式】都打开,已确认 L05B、L05C、LX06、L16A 这几个型号不支持 flac 直放。

Q:下载速度特别慢,尤其是海外音源?A:在配置里给proxy字段填代理地址(如http://127.0.0.1:7890),重启服务后 yt-dlp 的下载会走代理。

Q:docker run 报找不到 /xiaomusic_music 目录?A:容器不会自动建宿主目录,先在宿主机执行mkdir -p /xiaomusic_music /xiaomusic_conf再重新 run。

安全上唯一要注意的事

如果你把 58090 端口暴露到了公网,任何人都能直接访问后台页面,歌单接口、下载接口和绑定的小米账号都处在同一风险面内。只在局域网里用;确实要挂公网,就开启密码登录并设置复杂密码,同时避免在公共 WiFi 环境下操作。

警告:公网访问未开密码登录,等于把小米账号密码放在门口。

  • 部署前先在 Issues 里确认当前版本状态,作者已公告项目停止维护,存量问题以社区接力为主
  • 设备列表为空,按上面 FAQ 前三步依次排查后再提 issue
  • 想要电台歌单,在 Web 设置页贴一个 JSON 歌单链接试试
  • 手机端想控制,搜"卯卯音乐"小程序

【免费下载链接】xiaomusic使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 2:30:20

电商订单拆分规则与流程:拆单本质、设计要点与实战踩坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/16 2:30:05

文献 生信分析流程对无脊椎动物研究结果的影响

文献:基于环境DNA宏条形码的无脊椎动物多样性研究: 生物信息学流程比较与评估,生物多样性研究内容:在四川岷江流域的 5 条河流和云南九大高原湖泊采集了 574 份水样。比较分析12种生信处理方法,探究生信分析流程对最终检测到的淡水…

作者头像 李华
网站建设 2026/10/16 2:29:08

信号与系统奇异函数全解析:冲激、阶跃、斜坡与卷积运算指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/16 2:27:58

Avaya J100系列IP话机选型指南:从J129到J179的岗位匹配与部署避坑

报价单在桌面摊开的一刻,我就知道这单生意不会太平顺。客户要换掉用了快十年的老话机,预算不高,但点名要Avaya J100系列。渠道那边给过来的选型表倒也干脆,J129、J139、J169、J179四个型号,价格从低到高排成一行&#…

作者头像 李华