xiaomusic在线搜索配置:4步配好小爱搜全网
【免费下载链接】xiaomusic使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic
xiaomusic 的在线搜索给小爱音箱接了一根在线曲库的水管:本地没有这首歌也没关系,直接在网页端把全网资源搜出来,推到音箱上播,或者干脆在浏览器里播。读完你可以独立做完三件事:选对接口生态、跑通跨平台聚合搜索、配好语音点歌口令。
它到底能干嘛:三个听歌场景
网页点播|后台搜索框敲关键词,结果带歌名、歌手、专辑、时长和来源标签|能做:支持歌名-歌手精准写法(后端以第一个-拆词),每页 20 条可翻页。
音箱点播|搜到后推给音箱播|能做:但必须先在「小爱音箱设置面板」完成设备绑定,未绑定推不出去。
B 站源推音箱|音频流格式可能不被小爱支持|不能做:这类资源只建议在网页端播。
| 项目 | 规则 |
|---|---|
| 聚合搜索 | 并行请求所有已启用插件/平台,结果合并后统一重排 |
| 排序优先级 | 歌曲名匹配 > 歌手名匹配 > 插件权重(启用列表前 9 个有效,最高 9 分) |
| 推音箱播放 | 命中歌曲建_online_play临时歌单推送,模式为「全部播放」 |
| 网页端播放 | 页面直接放音频流,不经过音箱 |
底层搜索、歌单拉取、直链解析都落在 在线音乐服务,其中 LX Server 侧还有缓存检查、SSE 进度、相对地址自动补全这一整套兜底。
10 秒选路:生态怎么选
| 生态 | 门槛 | 配置量 | 适合谁 |
|---|---|---|---|
| MusicFree 插件(api_type = 1) | 无,JS 插件自带沙箱 | 填订阅源 + 管插件启停 | 想用现成插件库、懒得自己搭服务 |
| LXServer 接口(api_type = 2) | 需先部署 LX Sync Server | 只填一个接口地址 | 已在跑洛雪生态 |
两者互斥:back_conf_info.api_type只能取 1 或 2,后台「接口生态」区切换时会弹确认——插件列表和平台列表互不兼容,切过去就得把新生态的配置重新填一遍。
跟着做:5 步跑通
路线 A:MusicFree 插件版
Step 1|进后台选生态:后台配置页「接口生态」区选 MusicFree 插件并确认。⚠️ 切换后 LX 侧旧配置不再生效。
Step 2|填订阅源拉插件:在「插件源配置」区编辑订阅地址,点「更新订阅」,系统校验订阅 JSON 含plugins数组后批量下载。⚠️ 地址失效就是空列表。
Step 3|补上缺的插件:手动上传.js文件,或粘贴http(s)://插件地址在线导入。⚠️ 仅限.js,文件名不能撞 ALL / OpenAPI 等保留字段,同名不可重复传。
Step 4|启用并排序:逐个启用/禁用/卸载插件,启用列表的排序就是权重排序。⚠️ 只有前 9 个参与权重,排后面等于白排。
Step 5|搜一首验证:打开搜索页,用歌名-歌手格式试搜。⚠️ B 站类来源推音箱可能不响,改网页播放。
插件文件落在配置目录的js_plugins/里,元数据写入conf/plugins-config.json的music_free_info节点;上传、订阅这些操作的接口实现见 插件管理路由。
路线 B:LXServer 接口版
Step 1|选 LXServer 生态:同一「接口生态」区切换,确认后进入新配置区。
Step 2|填接口地址:base_url填 API 地址,占位示例http://127.0.0.1:9527/api,格式自动校验。⚠️ LX Music Sync Server v1.8.2 之后加了 Token 限制,建议先别升到该版本。
Step 3|点「接口测试」(V1.1.2+):后端请求${base_url}/music/config,校验player.enableAuth、user.enablePublicRestriction等字段判定接口是否合法。⚠️ 测试不通过先查地址和鉴权。
Step 4|填认证信息(V1.1.3+):x-user-name与x-user-token,之后每次请求自动带上这两个请求头。
Step 5|管搜索平台:增删平台项,如tx小秋音乐、kg小枸、kw小蜗、wy小芸、mg小蜜;box_play_platform设all即聚合。⚠️ 平台一个没配,聚合搜索直接报错。
跑通后,直链解析会按master → flac24bit → flac → 320k → 192k → 128k自动降档,原源失败时按「歌名 + 歌手 + 时长误差 ≤ 5 秒」跨平台找同歌换源。
语音口令速查
前置:后台「允许唤醒的命令」里加上,singer_play,online_play,。
| 口令 | 怎么说 | 它会干嘛 |
|---|---|---|
| online_play | 在线播放 + 关键词 | 如「在线播放 林俊杰 江南」,选出最匹配一首立即播 |
| singer_play | 播放歌手 + 歌手名 | 如「播放歌手 周杰伦」,生成_online_歌手名歌单顺序播 |
| online_playlist_play | 语音搜歌单 | 按策略选中最优歌单,拉全量歌曲推给音箱 |
online_play的选取靠打分:歌名完全匹配 +90、开头 +70、结尾 +50、包含 +30,歌手名 +9/+7/+5/+3,取最高分。- AI 口令提取:高级设置里
aiapi_info开enabled并填api_key后,模糊指令也能拆出歌名和歌手;接口地址留空默认阿里百炼,模型默认qwen-flash,解析失败自动回退到歌名-歌手拆分,且模型接口必须符合 OpenAI API 规范。 - 搜单策略
voice_playlist_strategy:default首条 /max_songs歌曲最多 /max_plays播放最多 /random随机。
⚠️ 「全部播放」就是全部循环,「自动追加歌曲」(auto_add_song)只在该模式下播到歌单末尾时生效,会搜同歌手歌续上;LX 转换来的歌单带_online_lx_前缀,要先把生态切回 LXServer 才能播,「自动拉取转换」每 30 秒跑一轮。
不灵了怎么办
Q:LX 接口生态搜到了却播不了?A:接口地址、容器名解析和鉴权等案例集中在 issues/811;同时避开 LX Music Sync Server v1.8.2 及以上版本。
Q:搜到结果推不到音箱?A:先确认「小爱音箱设置面板」里绑定了设备;B 站源这类音频流可能不被支持,改用网页端播放。
Q:怎么给后台上密码锁?A:默认关闭,把conf/plugins-config.json里password设成非空值即可启用,进后台时前端会请求/api/password/check弹密码框,置空就关闭:
{ "password": "你的密码" }Q:升级后旧配置不生效或丢字段?A:结构重构过的版本(如 V1.1.1)需要删掉conf/plugins-config.json,重启服务后在网页端重新配置。
Q:语音口令没反应?A:检查「允许唤醒的命令」是否包含singer_play和online_play,漏了就不触发。
想读源码的人
- xiaomusic/online_music.py:聚合搜索、换源降级、AI 解析,以及拒绝内网/回环地址的 SSRF 防护
- xiaomusic/js_plugin_manager.py:Node.js 插件沙箱(stdin/stdout 传 JSON)、LX 接口请求、自动转换定时任务
- xiaomusic/api/routers/plugin.py:插件启停、接口测试、高级设置等全部 REST 接口
- xiaomusic/plugins-config-example.json:运行时
conf/plugins-config.json的完整字段模板,首次启动时复制生成
【免费下载链接】xiaomusic使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考