本项目是基于 xiaomusic 0.4.23 版本进行功能精简,保留核心功能并专注于Emby媒体库的小爱音箱音乐播放工具。
- 仅支持Emby媒体库作为音乐源
- 移除本地文件和网络歌曲相关功能
- 保留小爱音箱语音控制功能
- 简化配置,专注于核心播放体验
pdm installpdm run python app.py默认监听端口 8090,使用其他端口请自行修改。
- 重要: 本项目一定不要暴露在外网,以确保数据安全!
- 项目已删除原xiaomusic中的认证相关功能,因此需特别注意网络安全。
- 默认填写本地的NAS地址和端口号即可
- Emby的流媒体地址会通过配置的NAS地址由本程序代理转发
如果需要从外网控制小爱音箱播放Emby音乐,需完成以下两步:
- 在本地nginx中配置代理(见下方配置示例)
- 将反向代理地址填入NAS地址配置项中
location /xiaoemby/proxy/emby/audio/ {
# 转发到本地流媒体地址
proxy_pass http://<host>:<port>;
# 关键:保留原始请求路径(必须)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 流媒体优化配置
proxy_buffering off; # 关闭缓冲,实时传输
proxy_cache off; # 关闭缓存
proxy_http_version 1.1; # 支持 HTTP/1.1,适配流媒体
proxy_set_header Connection ""; # 清除连接头,避免长连接问题
# 大文件传输配置
client_max_body_size 0; # 不限制请求体大小
proxy_read_timeout 3600s; # 超时时间设为 1 小时,适配大文件
proxy_send_timeout 3600s;
# 支持断点续传(流媒体必备)
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
}- 播放音乐 / 来点音乐 - 随机播放音乐
- 播放下一首 / 下一首 - 播放下一首歌曲
- 播放上一首 / 上一首 - 播放上一首歌曲
- 播放[歌手]的[风格]风格的歌曲 - 按歌手和风格播放
- 播放[风格]风格的歌曲 - 按风格播放
- 播放[歌手]的[专辑]专辑里的[歌曲名] - 按歌手、专辑和歌曲名播放
- 播放[歌手]的[专辑]专辑 - 按歌手和专辑播放
- 播放专辑[专辑名] - 按专辑名播放
- 播放[歌手]的歌曲 - 按歌手播放
- 播放[歌手]的[歌曲名] - 按歌手和歌曲名播放
- 播放[歌曲名] - 按歌曲名播放
- 播放我喜欢的歌曲 - 播放Emby媒体库收藏的歌曲
- 播放我喜欢的[歌手]的歌曲 - 播放指定歌手的Emby媒体库收藏歌曲
- 关机 / 暂停 / 停止 / 闭嘴 - 停止播放
- X分钟后关机 - 设置定时停止播放
- 顺序播放 - 按顺序播放
- 单曲播放 - 播放当前单曲后停止
- 单曲循环 - 重复播放当前歌曲
- 全部循环 - 循环播放所有歌曲
- 随机播放 - 随机顺序播放
- 播放列表第X首 - 播放播放列表中的指定歌曲
- 刷新播放列表 - 刷新播放列表
| 型号 | 设备名称 |
|---|---|
| L17A | Xiaomi Sound Pro |
这是一个纯个人使用的项目。2024年开始关注xiaomusic项目,希望能找到支持Emby的解决方案,但长期未看到相关功能上线。为了满足自己的使用需求,于是自行开发了这个专注于Emby媒体库的精简版本。
作为个人项目,目前仅针对Emby进行了适配和测试,Jellyfin尚未测试。由于资源有限,暂时无法保证对Jellyfin的兼容性。
作为个人使用的项目,目前仅专注于Emby媒体库的支持,暂不考虑扩展其他媒体库的兼容。项目的主要目标是满足个人的Emby播放需求,保持功能简洁专注。
这是一个个人自娱自乐的小项目,主要用于满足自身使用需求。虽然开源分享,但不保证长期维护和支持,仅供有相同需求的用户参考使用。
由于本人手头只有L17A设备,无法测试其他设备的兼容性。此外,本人的媒体库主要以FLAC格式为主,而本项目不提供音频转码功能。如果其他设备不支持FLAC格式的直接播放,可能会出现无法播放的情况。
作为个人项目,暂未提供预构建的Docker镜像。您可以自行根据项目根目录的 Dockerfile 构建镜像,然后使用 docker-compose.yml 启动服务。
因为小爱音箱无法直接播放Emby流媒体API的地址,所以需要通过本程序对Emby的流媒体地址进行代理转发后,才能在小爱音箱上正常播放。
MIT License © 2023 涵曦, 2026 backtracker