首页 Docker导航 XiaoMusic

XiaoMusic

XiaoMusic是一款基于NAS上用Docker部署的小爱音箱与NAS本地音乐联动软件,无缝播放接管小爱音箱,不用开会员即可播放本地歌曲,免受一分钟试听版音乐烦恼。
小爱音箱 本地音乐 音乐下载
2025-06-09 01:32
中文
227 人使用
相关文章
NAS部署xiaomusic教程,轻松实现小爱音箱无限播放NAS音乐听歌全攻略

XiaoMusic不仅支持播放本地存储的音乐文件,当本地没有特定歌曲时,还可自动从B站或其他网站下载并进行播放。该项目支持多种音频格式,包括mp3、flac、wav等,这使得用户可以根据个人偏好选择更为高质量的音频格式进行播放。对于热衷于高品质音乐的用户,这无疑是一大优势。 

XiaoMusic: 无限听歌,解放小爱音箱

使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。

支持语音口令

【播放歌曲】,播放本地的歌曲
【播放歌曲+歌名】,比如:播放歌曲周杰伦晴天
【上一首】
【下一首】
【单曲循环】
【全部循环】
【随机播放】
【关机】,【停止播放】,两个效果是一样的。
【刷新列表】,当复制了歌曲进 music 目录后,可以用这个口令刷新歌单。
【播放列表+列表名】,比如:播放列表其他。
【加入收藏】,把当前播放的歌曲加入收藏歌单。
【取消收藏】,把当前播放的歌曲从收藏歌单里移除。
【播放列表收藏】,这个用于播放收藏歌单。
【播放本地歌曲+歌名】,这个口令和播放歌曲的区别是本地找不到也不会去下载。
【播放列表第几个+列表名】,具体见: #158
【搜索播放+关键词】,会搜索关键词作为临时搜索列表播放,比如说【搜索播放林俊杰】,会播放所有林俊杰的歌。
【本地搜索播放+关键词】,跟搜索播放的区别是本地找不到也不会去下载。

隐藏玩法: 对小爱同学说播放歌曲小猪佩奇的故事,会先下载小猪佩奇的故事,然后再播放小猪佩奇的故事。

技术栈

后端代码使用 Python 语言编写。

HTTP 服务使用的是 FastAPI 框架,早期版本使用的是 Flask。

使用了 Docker ,在 NAS 上安装更方便。

默认的前端主题使用了 jQuery

已测试支持的设备

型号	名称
L06A	小爱音箱
L07A	Redmi小爱音箱 Play
S12/S12A/MDZ-25-DA	小米AI音箱
LX5A	小爱音箱 万能遥控版
LX05	小爱音箱Play(2019款)
L15A	小米AI音箱(第二代)
L16A	Xiaomi Sound
L17A	Xiaomi Sound Pro
LX06	小爱音箱Pro
LX01	小爱音箱mini
L05B	小爱音箱Play
L05C	小米小爱音箱Play 增强版
L09A	小米音箱Art
LX04 X10A X08A	已经支持的触屏版
X08C X08E X8F	已经不需要设置了. 需要设置【型号兼容模式】选项为 true
M01/XMYX01JY	小米小爱音箱HD 需要设置【特殊型号获取对话记录】选项为 true 才能语音播放
OH2P	XIAOMI 智能音箱 Pro
OH2	XIAOMI 智能音箱

支持音乐格式

mp3

flac

wav

ape

ogg

m4a

网络歌单功能

可以配置一个 json 格式的歌单,支持电台和歌曲,也可以直接用别人分享的链接,同时配备了 m3u 文件格式转换工具,可以很方便的把 m3u 电台文件转换成网络歌单格式的 json 文件

安全提醒

如果配置了公网访问 xiaomusic ,请一定要开启密码登陆,并设置复杂的密码。且不要在公共场所的 WiFi 环境下使用,否则可能造成小米账号密码泄露。

强烈不建议将小爱音箱的小米账号绑定摄像头,代码难免会有bug,一旦小米账号密码泄露,可能监控录像也会泄露。

对应的 docker compose 配置如下:

国外可使用

services:
  xiaomusic:
    image: hanxi/xiaomusic
    container_name: xiaomusic
    restart: unless-stopped
    ports:
      - 58090:8090
    environment:
      XIAOMUSIC_PUBLIC_PORT: 58090
    volumes:
      - /xiaomusic_music:/app/music
      - /xiaomusic_conf:/app/conf

国内:

services:
  xiaomusic:
    image: docker.hanxi.cc/hanxi/xiaomusic
    container_name: xiaomusic
    restart: unless-stopped
    ports:
      - 58090:8090
    environment:
      XIAOMUSIC_PUBLIC_PORT: 58090
    volumes:
      - /xiaomusic_music:/app/music
      - /xiaomusic_conf:/app/conf

其中 conf 目录为配置文件存放目录,music 目录为音乐存放目录,建议分开配置为不同的目录。

/xiaomusic_music 和 /xiaomusic_conf 是 docker 所在的主机的目录,可以修改为其他目录。如果报错找不到 /xiaomusic_music 目录,可以先执行 mkdir -p /xiaomusic_{music,conf} 命令新建目录。

/app/music 和 /app/conf 是 docker 容器里的目录,不要去修改。

XIAOMUSIC_PUBLIC_PORT 是用来配置 NAS 本地端口的。8090 是容器端口,不要去修改。

后台访问地址为: http://NAS_IP:58090

docker 和 docker compose 二选一即可,启动成功后,在 web 页面可以配置其他参数,带有 * 号的配置是必须要配置的,其他的用不上时不用修改。初次配置时需要在页面上输入小米账号和密码保存后才能获取到设备列表。

pip 方式安装运行

> pip install -U xiaomusic
> xiaomusic --help
 __  __  _                   __  __                 _
 \\ \\/ / (_)   __ _    ___   |  \\/  |  _   _   ___  (_)   ___
  \\  /  | |  / _` |  / _ \\  | |\\/| | | | | | / __| | |  / __|
  /  \\  | | | (_| | | (_) | | |  | | | |_| | \\__ \\ | | | (__
 /_/\\_\\ |_|  \\__,_|  \\___/  |_|  |_|  \\__,_| |___/ |_|  \\___|
          XiaoMusic v0.3.69 by: github.com/hanxi

usage: xiaomusic [-h] [--port PORT] [--hardware HARDWARE] [--account ACCOUNT]
                 [--password PASSWORD] [--cookie COOKIE] [--verbose]
                 [--config CONFIG] [--ffmpeg_location FFMPEG_LOCATION]

options:
  -h, --help            show this help message and exit
  --port PORT           监听端口
  --hardware HARDWARE   小爱音箱型号
  --account ACCOUNT     xiaomi account
  --password PASSWORD   xiaomi password
  --cookie COOKIE       xiaomi cookie
  --verbose             show info
  --config CONFIG       config file path
  --ffmpeg_location FFMPEG_LOCATION
                        ffmpeg bin path
> xiaomusic --config config.json

其中 config.json 文件可以参考 config-example.json 文件配置。

不修改默认端口 8090 的情况下,只需要执行 xiaomusic 即可启动。