开发者是个肝帝:xiaomusic持续更新,新设备新功能

开发者是个肝帝:xiaomusic持续更新,新设备新功能

2024-07-03 10:55:14 47点赞 598收藏 58评论

看看这更新速度

图片图片图片图片

型号与产品名称对照可以在这里查询 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'开发者是个肝帝:xiaomusic持续更新,新设备新功能

如果想更换一个自己喜欢的自定义端口,可以通过一下方式来处理,将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开发者是个肝帝:xiaomusic持续更新,新设备新功能

使用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持续更新,新设备新功能

一些额外配置项:

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开发者是个肝帝:xiaomusic持续更新,新设备新功能

其中 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": "关机,暂停,停止,停止播放"}开发者是个肝帝:xiaomusic持续更新,新设备新功能

启动成功后,可以在 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持续更新,新设备新功能

更多功能

  • 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直接的小数),越小越模糊,越大越精准。

‍

更加丰富的玩法还是去肝帝的仓库咯,轻轻松松消灭一个周末的时间。

最后,放一个群晖的部署教程、一个威联通的部署教程,可以做一个参考。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
58评论

  • 精彩
  • 最新
  • 作者刚刚凌晨更新了……太猛了,但是还是没法解决“播放本地歌曲,本地播放歌曲”这两个口令问题,还是会播放QQ音乐,那个烦,就是没法播放NAS的本地音乐

    校验提示文案

    提交
    这个功能一会好一会坏的

    校验提示文案

    提交
    新版的已经可以了,除了不支持触屏的,其他音箱已经可以顺利播放本地音乐,顺便,作者今天升级到了0.20版,效率贼高……

    校验提示文案

    提交
    收起所有回复
  • 作者更新了还需要重新部署么?

    校验提示文案

    提交
    理论上你可以使用一些容器更新工具直接更新。现在的nas系统都有自己的容器更新方法。

    校验提示文案

    提交
    收起所有回复
  • xiaomusic目前用的版本老是报一个python脚本的错误,隔三差五不能运行。更新一下试试看

    校验提示文案

    提交
    感谢大佬的肝帝贡献

    校验提示文案

    提交
    收起所有回复
  • 我用了网易云音乐网盘 也可以小爱播周杰伦 美滋滋 [高兴]

    校验提示文案

    提交
    666啊

    校验提示文案

    提交
    怎么使用的啊?放到云盘后,怎么用小爱调出网易云盘里的歌呀?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 意思是不用会员也可以听歌吗?会不会影响到其他功能

    校验提示文案

    提交
    这个不用会员。至于其它功能我还真么试过,你指的是开空调这种操作智能家居是吧。可以试试的,如果不行把容器关掉就行了,它不会影响音箱原本的功能,也不会对音响的设置进行更改,只是接管了音乐播放。

    校验提示文案

    提交
    收起所有回复
  • 我是极空间 也可以吗?

    校验提示文案

    提交
    可以的

    校验提示文案

    提交
    收起所有回复
  • 之前搭建好了的,会自动升级吗?,还是需要卸载重新安装?

    校验提示文案

    提交
    不会的,要自己升级。
    升级容器可以用watchtower,可以用portainer、可以用dockerCopilot,也可以用NAS自带的管理工具。

    校验提示文案

    提交
    收起所有回复
  • 小爱触屏音箱还是不行,期待

    校验提示文案

    提交
    据说最新的支持触屏的了,今天回去试试。

    校验提示文案

    提交
    我看支持列表还没覆盖 [喜极而泣]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • UI做的略丑,不过不影响使用,哈哈

    校验提示文案

    提交
    [高兴]

    校验提示文案

    提交
    收起所有回复
  • 之前部署的删除了重新部署,结果一直出错,这个要怎么处理?

    校验提示文案

    提交
    这是镜像拉不到,强制走代理试试;或者你用命令行的方式拉,docker pull的时候加上代理

    校验提示文案

    提交
    收起所有回复
  • 请问需要申请开发者吗?有一步看评论说需要申请开发者才行,但是开发者现在无法申请了…

    校验提示文案

    提交
    不用申请开发者的,我直接就跑起来了。

    校验提示文案

    提交
    收起所有回复
  • 请教下各位大佬,这个哪里下载,文章中没看到链接,还有就是有没有具体的部署教程,新手小白一枚

    校验提示文案

    提交
    主要还是使用docker部署

    校验提示文案

    提交
    收起所有回复
  • 网页端控制可以立即播放,但是用小爱唤醒总是要等个十几秒才开始,这是哪里配置有问题么

    校验提示文案

    提交
    可能是语音唤醒的指令转换延迟吧。最近更新也挺频繁的,可以期待一下。

    校验提示文案

    提交
    收起所有回复
  • 想询问个问题,我安装了之后,在网页的控制台上输入小米的账号和密码,但是在设置里面选择设备那栏还是空的,没有设备给我选,这是为啥...

    校验提示文案

    提交
    直接指定设备ID呢

    校验提示文案

    提交
    设备id怎么直接指定。。。没看到这个操作诶

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 家里没有nas,但有装了ha的树莓派,不知道能不能实现

    校验提示文案

    提交
    支持python的就可以

    校验提示文案

    提交
    收起所有回复
  • 这么牛的功能竟然实现了 我终于能畅听自己的无损音乐了 但是我没小米音响!!!大佬能不能把京东的音响小鲸鱼给适配下么

    校验提示文案

    提交
  • 天猫精灵有可能适配吗?

    校验提示文案

    提交
  • MI_DID,不知道怎样方便查询

    校验提示文案

    提交
    新版不用自己查询did了

    校验提示文案

    提交
    收起所有回复
  • 这个好,码一个

    校验提示文案

    提交
  • 先收藏了,没有小米音箱。应该说,没有任何音箱 [喜极而泣]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
京东京享红包
距结束::
领京东现金红包 天天领3次 最高26888元
红包按钮
最新文章 热门文章
598
扫一下,分享更方便,购买更轻松