开发者是个肝帝:xiaomusic持续更新,新设备新功能
看看这更新速度
图片
图片型号与产品名称对照可以在这里查询 https://home.miot-spec.com/s/xiaomi.wifispeaker
功能介绍:
使用小爱音箱播放音乐,音乐使用 yt-dlp 下载,支持国内国外两种下载渠道。
使用口令直接调起播放。
图片搭建方法:
使用docker compose 运行
services: xiaomusic: image: hanxi/xiaomusic container_name: xiaomusic restart: unless-stopped ports: - 8090:8090 volumes: - ./music:/app/music environment: MI_USER: '小米账号' MI_PASS: '小米密码' XIAOMUSIC_VERBOSE: 'true' XIAOMUSIC_HOSTNAME: 'docker 主机 ip'
如果想更换一个自己喜欢的自定义端口,可以通过一下方式来处理,将compose配置里的端口都改成你自己的,比如这里改成了5678
services: xiaomusic: image: hanxi/xiaomusic container_name: xiaomusic restart: unless-stopped ports: - 5678:5678 volumes: - ./music:/app/music environment: MI_USER: '小米账号' MI_PASS: '小米密码' XIAOMUSIC_VERBOSE: 'true' XIAOMUSIC_HOSTNAME: 'docker 主机 ip' XIAOMUSIC_PORT: 5678
使用docker 命令行运行
docker run -e MI_USER='小米账号' -e MI_PASS='小米密码' -e XIAOMUSIC_VERBOSE='true' -e XIAOMUSIC_HOSTNAME='docker 主机 ip' -p 8090:8090 -v ./music:/app/music hanxi/xiaomusic
一些额外配置项:
XIAOMUSIC_SEARCH:
配置为 'bilisearch:' 表示歌曲从哔哩哔哩下载;
配置为 'ytsearch:' 表示歌曲从 youtube 下载;
XIAOMUSIC_PROXY:
用于配置代理,默认为空
MI_HARDWARE:
小米音箱的型号,默认为'L07A';
这些额外配置项也可以先不配置,容器启动后在网页控制界面配置。
使用 pip 安装运行
> pip install xiaomusic> xiaomusic --help __ __ _ __ __ _ / / (_) __ _ ___ | / | _ _ ___ (_) ___ / | | / _` | / _ | |/| | | | | | / __| | | / __| / | | | (_| | | (_) | | | | | | |_| | __ | | | (__ /_/_ |_| __,_| ___/ |_| |_| __,_| |___/ |_| ___| XiaoMusic v0.1.81 by: github.com/hanxi
usage: xiaomusic.py [-h] [--hardware HARDWARE] [--account ACCOUNT] [--password PASSWORD] [--cookie COOKIE] [--verbose] [--config CONFIG] [--ffmpeg_location FFMPEG_LOCATION]
options: -h, --help show this help message and exit --hardware 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 文件配置,这里贴一下示例配置。
{ "hardware": "L07A", "account": "", "password": "", "mi_did": "", "cookie": "", "verbose": false, "music_path": "music", "conf_path": null, "hostname": "192.168.2.5", "port": 8090, "proxy": null, "search_prefix": "ytsearch:", "ffmpeg_location": "./ffmpeg/bin", "active_cmd": "play,random_play,playlocal,play_music_list,stop", "exclude_dirs": "@eaDir", "music_path_depth": 10, "disable_httpauth": true, "httpauth_username": "admin", "httpauth_password": "admin", "music_list_url": "", "music_list_json": "", "disable_download": false, "use_music_api": false, "log_file": "/tmp/xiaomusic.txt", "fuzzy_match_cutoff": 0.6, "enable_fuzzy_match": true, "stop_tts_msg": "收到,再见", "keywords_playlocal": "播放本地歌曲,本地播放歌曲", "keywords_play": "播放歌曲,放歌曲", "keywords_stop": "关机,暂停,停止,停止播放"}
启动成功后,可以在 web 页面可以配置 MI_DID, MI_HARDWARE, XIAOMUSIC_SEARCH, XIAOMUSIC_PROXY 参数。
支持的音乐格式
mp3
flac
wav
ape
ogg
本地音乐会搜索目录下上面格式的文件,下载的歌曲是 mp3 格式的。已知 L05B L05C 不支持 flac 格式
网页控制面板
浏览器进入 http://192.168.2.5:8090,这里的ip填写你自己的docker容器所在设备的ip,端口填写你自己配置的端口。
支持功能
显示正在播放的歌曲
模糊搜索本地歌曲
播放列表
删除歌曲
设置页面
配置网络歌单
日志文件下载
网络歌单
可以配置一个 json 格式的歌单,支持电台和歌曲,也可以直接用别人分享的链接,同时配备了 m3u 文件格式转换工具,可以很方便的把 m3u 电台文件转换成网络歌单格式的 json 文件。
比如这样的链接
预计歌单格式是这样的,type 为 radio 作为电台的设定,会一直播放当前电台,不会播放下一首。
[ { "name":"歌单1", "musics":[ { "name":"歌名1", "url":"http://ngcdn001.cnr.cn/live/zgzs/index.m3u8", "type":"radio" }, { "name":"歌名2", "url":"https://lhttp.qtfm.cn/live/4915/64k.mp3" } ] }, { "name":"歌单2", "musics":[ { "name":"歌名3", "url":"https://lhttp.qtfm.cn/live/4915/64k.mp3" }, { "name":"歌名4", "url":"https://lhttp.qtfm.cn/live/4915/64k.mp3" } ] }]
更多功能
XIAOMUSIC_ACTIVE_CMD 环境变量,用于唤醒口令,配置成'play,random_play',在非播放状态下,只有这两个指令(播放歌曲和随机播放)可以触发,触发后,xiaomusic进入playing状态,其他指令则可以正常触发。
XIAOMUSIC_EXCLUDE_DIRS 配置歌曲目录里需要忽略的目录。
XIAOMUSIC_MUSIC_PATH_DEPTH 配置歌曲目录搜索深度。
XIAOMUSIC_DISABLE_HTTPAUTH 配置成 false 表示开启密码访问web控制台。
XIAOMUSIC_HTTPAUTH_USERNAME 配置 web 控制台用户。
XIAOMUSIC_HTTPAUTH_PASSWORD 配置 web 控制台密码。
XIAOMUSIC_CONF_PATH 用来存放配置文件的目录,记得把目录映射到主机,默认情况会把配置存放在music目录。
XIAOMUSIC_DISABLE_DOWNLOAD 设为 true 时关闭下载功能。
XIAOMUSIC_USE_MUSIC_API 设为 true 时使用 player_play_music 接口播放音乐,用于兼容不能播放的型号,v0.1.86 之后的版本可以不用设置。
XIAOMUSIC_KEYWORDS_PLAY 用来播放歌曲的口令前缀,默认是 "播放歌曲,放歌曲" ,可以用英文逗号分割配置多个。
XIAOMUSIC_KEYWORDS_STOP 用来关机的口令,默认是 "关机,暂停,停止" ,可以用英文逗号分割配置多个。
XIAOMUSIC_KEYWORDS_PLAYLOCAL 用来播放本地歌曲的口令前缀,本地找不到时不会下载歌曲,默认是 "播放本地歌曲,本地播放歌曲" ,可以用英文逗号分割配置多个。
XIAOMUSIC_ENABLE_FUZZY_MATCH 设为 true 时开启模糊匹配(默认),设为 false 时关闭模糊匹配,支持模糊匹配歌名和歌单名。
XIAOMUSIC_FUZZY_MATCH_CUTOFF 设置模糊搜索匹配的最低相似度阈值(默认0.6,可以配0到1直接的小数),越小越模糊,越大越精准。
更加丰富的玩法还是去肝帝的仓库咯,轻轻松松消灭一个周末的时间。
最后,放一个群晖的部署教程、一个威联通的部署教程,可以做一个参考。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案