ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

xiaomusic 在线搜索完整指南:2 种接口生态、3 个语音口令与配置字段全解析

xiaomusic 在线搜索完整指南:2 种接口生态、3 个语音口令与配置字段全解析 xiaomusic 在线搜索完整指南2 种接口生态、3 个语音口令与配置字段全解析【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic家里的小爱音箱绑好之后你很快会碰到一个真实需求想听一首不在本地曲库里的歌或者只想动口不动手直接点播周杰伦。xiaomusic 的在线搜索模块就是为这个场景准备的——它不依赖本地文件直接通过你配置的接口生态去搜互联网音乐把命中的歌曲推送到音箱播放或直接在网页里在线试听。本文带你走完「选生态 → 填配置 → 配语音口令 → 排错」的完整路径每个结论都能在源码里找到出处。在线搜索到底能干啥一张表看懂能力边界在线搜索的所有业务都集中在 xiaomusic/online_music.py 的OnlineMusicService里搜歌、搜歌单、解析播放直链、查歌词。搜索源则由 xiaomusic/js_plugin_manager.py 的JSPluginManager管理。它对外提供 4 类动作动作入口说明网页搜歌后台在线搜索页支持歌名 - 歌手精准搜索每页默认 20 条网页搜歌单后台在线搜索页搜歌单列表并查看歌单内歌曲推送到音箱播放搜索结果页点播放构造临时歌单推给已绑定设备语音口令点播直接对小爱说话在线播放 林俊杰 江南/播放歌手 周杰伦搜索结果推送到音箱后就是下面这张图里「播放列表」中的一条歌曲支持切歌、播放模式切换等操作 推送功能有前置条件必须先在「小爱音箱设置面板」完成音箱绑定否则搜索能成功但没设备可推。两种接口生态怎么选先读这张对比表后台「接口生态」区域是二选一的同一时间只有一种生效。配置项back_conf_info.api_type取值1 MusicFree 插件、2 LX Server 接口见 xiaomusic/plugins-config-example.json请求入口为POST /api/back-conf/updatexiaomusic/api/routers/plugin.py。切换时前端会弹确认框因为两套配置字段插件列表 vs 平台列表互不兼容。对比维度MusicFree 插件版LX Server 接口版核心机制本地 Node 沙箱加载.js插件对接各音乐源填一个服务端地址由 LX Sync Server 统一出接口配置成本订阅插件源 / 上传插件 / 逐个启停只填base_url可选鉴权头平台管理插件启用列表的排序即权重平台字典tx/kg/kw/wy/mg音质控制由插件自行决定服务端按音质优先级链降级适合谁手里有 MusicFree 插件资源、想灵活管理源已部署 LX Sync Server、求省心我的建议如果你没有任何现成的 LX Sync Server 实例选 MusicFree 插件版——它开箱即可订阅官方插件市场不依赖额外服务如果你已经在跑 LX Sync Server直接选接口版配置成本最低且播放保障换源、缓存、音质降级由服务端兜底。方案一30 秒接入 MusicFree 插件版一句话原理JSPluginManager启动一个 Node.js 子进程作为插件沙箱Python 端通过 stdin/stdout 发 JSON 消息驱动插件完成搜索和取链。界面操作后台配置页「接口生态」选MusicFree插件即api_type 1「插件源配置」区域填入订阅地址点「更新订阅」系统请求订阅源 JSON校验包含plugins数组后批量下载插件在插件列表里启用/禁用/卸载插件也可以手动上传.js文件或粘贴http(s)://地址在线导入单个插件启用列表的顺序决定搜索权重前 9 个插件有效排第 1 的权重 9 分排第 9 的权重 1 分。关键参数对应conf/plugins-config.json的music_free_info节点字段含义enabled_plugins已启用插件列表数组顺序 权重排序plugin_source.source_url插件订阅源地址plugins_info已安装插件的元数据box_play_platform语音口令搜索偏好平台all表示聚合全部启用插件上传限制见upload_js_pluginxiaomusic/api/routers/plugin.py只收.js文件文件名不能是保留字段ALL / all / OpenAPI / OPENAPI同名插件不可重复上传。进阶源码级实现子进程启动JSPluginManager._start_node_processxiaomusic/js_plugin_manager.py执行node --max-old-space-size128 js_plugin_runner.js内存上限压到 128MB另有监控线程进程挂掉后按重启窗口自动拉起60 秒窗口内最多重启 1 次插件文件存放在conf/js_plugins/目录元数据写plugins-config.json的music_free_info聚合搜索_search_all_pluginsxiaomusic/online_music.py并行调用所有启用插件每插件限额按limit // 插件数分配排序optimize_search_results里歌名完全匹配 400 / 开头匹配 300 / 包含 200歌手完全匹配 1000 / 开头 800 / 包含 600最后加平台权重分。所以「歌手名匹配度」的实际优先级高于「歌曲名匹配度」再才是插件权重。方案二填一个地址接入 LX Server 接口版一句话原理把搜索、解析、缓存全部委托给你自建的 LX Sync Serverxiaomusic 只做请求编排和失败降级。界面操作「接口生态」选LXServer接口api_type 2填入 API 地址占位示例http://127.0.0.1:9527/apiV1.1.2 点「接口测试」按钮后端请求${base_url}/music/config并校验返回的player.enableAuth、user.enablePublicRestriction字段来判定是否为合法 LX Servertest_lx_serverV1.1.3 可填x-user-name与x-user-token请求时自动附加这两个鉴权头平台管理区域添加/删除平台如tx小秋音乐、kg小枸音乐搜索时并行请求所有已配置平台再合并排序_search_all_platform_lx。最小可运行配置conf/plugins-config.jsonLX 生态只关心这几个字段{ back_conf_info: { api_type: 2 }, lx_server_info: { base_url: http://127.0.0.1:9527/api, x-user-name: , x-user-token: , auto_convert: false, platforms: { tx: 小秋音乐, kg: 小枸音乐 }, box_play_platform: all } }进阶播放保障机制均在 xiaomusic/online_music.py音质优先级链LX_QUALITY_PRIORITY [master, flac24bit, flac, 320k, 192k, 128k]解析失败自动降一档重试原平台解析失败时按「歌名 歌手 时长误差 ≤ 5 秒」跨平台找同歌曲自动换源播放前先查${base_url}/music/cache/check命中缓存直接返回未命中再走 SSE 进度 ${base_url}/music/url异步解析返回的相对路径会自动拼上base_url归一化为完整 URL。⚠️版本兼容提醒LX Music Sync Server v1.8.2 之后接口增加了 Token 限制如需使用请暂时不要升级到该版本等待 onlineSearch 新版适配。进阶语音口令与 AI 提取的组合技三个语音口令对应后端online_play、singer_play、online_playlist_play口令示例行为在线播放指定歌曲在线播放 林俊杰 江南搜索后按匹配分取最高一首立即播放播放歌手歌单播放歌手 周杰伦搜该歌手热门歌曲生成临时歌单顺序播放语音搜歌单搜歌单关键词按策略选出最优歌单拉全量歌曲推送音箱前置配置在「允许唤醒的命令」列表中加入singer_play和online_play否则口令不生效。online_play的打分逻辑在_search_top_one歌名完全匹配 90、开头 70、结尾 50、包含 30歌手名匹配按 9/7/5/3 递减取最高分那首播放。AI 智能口令提取默认关闭模糊指令如「我想听那首关于秋天的歌」靠传统分割很难命中。开启后_parse_keyword_with_ai读取aiapi_info配置当enabledtrue且api_key非空时调用 xiaomusic/utils/openai_utils.py 的analyze_music_command提取「歌名 歌手」AI 不可用或解析失败时自动回退到_parse_keyword_by_dash的歌名-歌手分割功能不中断。接口地址留空默认走阿里百炼模型默认qwen-flash只兼容 OpenAI API 规范。两个进阶开关auto_add_song顶层字段默认true播放到歌单末尾时自动搜同歌手歌曲追加仅「全部播放」模式生效voice_playlist_strategy语音搜歌单的选单策略default首条/max_songs歌曲最多/max_plays播放最多/random随机由pick_best_playlist执行LX 生态专属auto_convert开启后每 30 秒自动把 LX 歌单转成 XM 歌单_auto_convert_interval 30转换歌单用_online_lx_前缀命名。排错与避坑从现象到根因现象语音口令说了没反应原因「允许唤醒的命令」列表缺singer_play/online_play。 解决在后台唤醒命令选项中补上这两项无需重启服务。现象切换接口生态后搜索报「插件不存在」或「base_url 为空」原因两套生态配置互不兼容切换api_type后另一侧字段是空的。 解决切到哪边就完整配哪边插件启用列表 or LX 地址 平台确认切换时弹出的提示后再保存。现象LX Server 接口测试失败原因地址不是合法 LX Server或服务端已升级 v1.8.2 触发了 Token 限制。 解决核对${base_url}/music/config是否返回player.enableAuth字段确认服务端版本低于 v1.8.2或等新版适配。现象MusicFree 部分歌曲推送到音箱播不了网页端却能听原因个别插件如 B 站源返回的音频流格式不被小爱音箱支持。 解决这类资源改用网页端在线播放或把该插件移出启用列表前 9 位。现象升级后在线搜索配置全丢了原因V1.1.1 重构变更了配置文件结构。 解决删除conf/plugins-config.json后重启服务在网页端重新配置。现象忘记密码进不了后台原因password字段非空即启用密码锁。 解决直接编辑conf/plugins-config.json重置密码把该字段置空即关闭密码锁。⚠️安全提示在线播放直链会经过_make_request_with_validation的 SSRF 防护xiaomusic/online_music.py解析到内网、回环、链路本地、多播等地址的 URL 会被拒绝代理只放行 http/https 公网地址。自定义插件返回内网地址时播放会失败这是预期行为。延伸阅读源码与配置索引在线搜索核心业务搜索、聚合、直链解析、AI 提取、SSRF 防护xiaomusic/online_music.py插件沙箱与 LX 接口管理Node 子进程、订阅更新、自动转换定时任务、结果排序xiaomusic/js_plugin_manager.py全部在线搜索 REST 接口订阅更新、插件上传、接口测试、生态切换、密码校验xiaomusic/api/routers/plugin.py前端搜索页与后台配置页xiaomusic/static/onlineSearch/index.html、xiaomusic/static/onlineSearch/setting.html 及配套setting-backend.js、setting-musicfree.js、setting-lxserver.js配置文件模板首次启动复制到conf/plugins-config.jsonxiaomusic/plugins-config-example.jsonAI 口令提取封装xiaomusic/utils/openai_utils.py按「先定生态、再配源、后开口令」的顺序走一遍你就能在小爱音箱上实现语音点歌、聚合搜索、无限连播的完整在线音乐体验。【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表