ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

xiaomusic 在线搜索完整指南:让小爱音箱快速在线点歌的两条路

xiaomusic 在线搜索完整指南:让小爱音箱快速在线点歌的两条路 xiaomusic 在线搜索完整指南让小爱音箱快速在线点歌的两条路【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic让小爱音箱播放本地曲库之外的歌靠的就是 xiaomusic 的在线搜索模块。选定一条音源路线、填几个配置项之后你就能在网页里搜到网上的歌也可以直接语音点歌让音箱马上响起来。这篇指南按你要干什么的顺序来先帮你做路线选择再带你用最短路径放出第一首歌然后覆盖网页搜索、语音口令、歌手歌单三个实战场景最后是调优项、配置速查和常见故障的处理办法。全程围绕 MusicFree 与 LX Server 两套接口生态展开照着走就能跑通小爱音箱在线点歌。先定音源路线MusicFree 插件版还是 LX Server 接口版这一节解决我该接哪套接口的问题选错了后面全白搭。xiaomusic 底层同时内置了两套互相排斥的在线接口生态同一时间只能启用其中一套MusicFree 插件版把第三方 JS 插件加载进一个独立的 Node.js 子进程里运行进程通过标准输入/输出与 Python 端交换 JSON 消息相当于给每个插件单独隔出一个房间互不干扰。适合手里已有可用插件资源、想精细控制每个音源的人。LX Server 接口版对接自己部署的 LX Sync Server 服务只填一个地址就能用接口逻辑全部由服务端维护。适合已经跑着洛雪生态、图省事的人。两者对应配置项back_conf_info.api_type取1是 MusicFree 插件取2是 LX Server 接口更新走POST /api/back-conf/update接口。在后台接口生态区域点击切换时系统会弹确认提示——因为两套生态的配置内容插件列表 vs 平台列表完全不通用切换后旧配置不会带过来。接下来按你选定的路线走最短路径。如果你还没想好手头有 LX Sync Server 就用 LX Server否则用 MusicFree这是多数人的选择。三步跑通第一首在线歌曲这一节是全文最快的路径目标是让音箱真正发出第一首网上搜到的歌。第 1 步绑定音箱。先进入小爱音箱设置面板完成音箱绑定。没有这一步后面所有推送到音箱的动作都会落空。面板上各区域的作用可以参考这张操作示意第 2 步按路线填最小配置。选MusicFree 插件版在后台插件源配置区域填写订阅地址订阅源 JSON 里需包含plugins数组点更新订阅批量拉取插件也可以手动上传本地.js文件文件名不能是保留名ALL/all/OpenAPI/OPENAPI同名不可重复上传或直接粘贴一个http(s)://地址在线导入单个插件。装好后在插件列表里启用你要的平台。选LX Server 接口版在 LX 配置区填入服务地址占位示例http://127.0.0.1:9527/api点接口测试验证连通性V1.1.2 功能后端会请求${base_url}/music/config并检查返回里的player.enableAuth、user.enablePublicRestriction字段来判定接口合法性再按需添加搜索平台。第 3 步搜索并播放。在网页搜索框输入歌名从结果里选一首推送到已绑定的音箱出声即算跑通。⚠️版本要求LX Music Sync Server 从 v1.8.2 起对接口加了 Token 限制。如果你走 LX Server 路线服务端版本暂时不要升到 v1.8.2 及以上等在线搜索模块适配后再升。网页搜索与两种播放方式跑通第一首歌之后这一节帮你把网页搜索用舒服。搜索结果页长这样每页默认 20 条可以翻页搜得准的技巧用歌曲名 - 艺术家的格式例如江南 - 林俊杰。后端_parse_keyword_by_dash会以第一个-为界把关键词拆成歌名和歌手分别去匹配命中率明显高于直接糊一串字。结果从哪来、怎么排无论哪条路线搜索都是并行聚合的——MusicFree 侧由_search_all_plugins同时调用所有已启用插件每插件的配额按limit // 插件数分摊LX Server 侧由_search_all_platform_lx并行请求你配置的每个平台。汇总后的结果统一按歌名匹配度优先、歌手名匹配度次之、插件权重最后排序插件权重由启用列表的先后顺序决定只有前 9 个插件参与加权排得越靠前分越高满分 9 分。命中之后你有两个去向推送到小爱音箱播放构造临时在线歌单发到已绑定设备网页端在线播放不动音箱直接在当前页面播音频流。⚠️注意MusicFree 里部分插件典型如 B 站源拿到的音频格式音箱解不了这类歌建议直接走网页端播放。配置语音口令 online_play 和 singer_play不想掏手机的时候直接对着音箱说。这一节把三个语音口令配好。前置动作到允许唤醒的命令选项里确认列表包含singer_play和online_play可追加为,singer_play,online_play,。不在列表里的口令说了也不响应。配好之后可用三组口令在线播放 林俊杰 江南—— 走online_play按当前接口生态搜索后端_search_top_one给候选逐条打分取最高分播放。打分规则歌名完全相同 90、开头相同 70、结尾相同 50、包含 30歌手名对应 9/7/5/3 递减。所以歌名说得越准结果越稳。播放歌手 周杰伦—— 走singer_play搜出该歌手的热歌生成一个临时歌单按顺序循环放。语音搜歌单—— 走online_playlist_play先搜歌单列表按你设置的搜单策略挑出一个默认首条再拉全量歌曲推到音箱。选哪个歌单的规则放到后面调优部分讲。进阶调优AI 提取、自动连播与播放保障基本流程跑通后下面四项设置能显著提升体验。AI 智能口令提取。默认关闭。开启后我想听那首关于秋天的歌这种模糊说法会先经大模型解析出歌名和歌手再去搜。配置在aiapi_info里enabled置true、api_key填非空值即可生效接口地址留空时默认走阿里百炼模型默认qwen-flash。实现上由_parse_keyword_with_ai调用analyze_music_command完成解析失败或 AI 不可用时自动回退到传统的歌名-歌手分割功能不会断。⚠️注意所用的模型接口必须符合 OpenAI API 规范目前只支持该规范。自动追加同歌手歌曲。auto_add_song默认开启歌单播到最后一首时自动搜同歌手歌曲补进去。记住一点——它只对全部播放即全部循环模式生效点播单曲不会触发。早期版本该项没暴露到前端需要手改conf/plugins-config.json里的auto_add_song: true现在在高级设置里即可操作。LX Server 的播放保障链。这条路线内置了一整套降挡保速度机制播放前按顺序兜底缓存检查先请求${base_url}/music/cache/check命中就直接返回缓存 URL未命中再走 SSE 进度接口加${base_url}/music/url异步解析音质优先级链master → flac24bit → flac → 320k → 192k → 128k优先满足你的偏好当前档位解析失败就自动降下一档跨平台自动换源原平台彻底解析失败时按歌名 歌手 时长误差 ≤ 5 秒到其他平台找同一首歌再试相对地址补全LX Server 返回的相对路径会自动拼上base_url保证拿到的是可直接播放的完整 URL。口令偏好与搜单策略。box_play_platform控制语音口令搜索时偏向哪个平台填all就是全量聚合voice_playlist_strategy决定online_playlist_play挑哪个歌单可选default首条、max_songs歌曲最多、max_plays播放最多、random随机默认default。另外 LX 生态下还有auto_convertV1.1.3默认关每 30 秒自动拉取 LX 歌单并转成 XM 歌单转出来的歌单用_online_lx_前缀命名且要求当前生态保持 LX Server 才能使用。顺带一提安全侧的事所有在线播放 URL 都会先过一道校验_make_request_with_validation内网、回环、链路本地、多播这类地址一律拒绝用来防 SSRF不用自己操心。配置速查plugins-config.json 关键结构与密码锁以上所有设置最终都落在运行时配置文件conf/plugins-config.json首次启动由模板复制生成。完整结构如下{ account: , password: , auto_add_song: true, aiapi_info: {enabled: false, api_key: }, back_conf_info: { api_type: 1, api_options: [ {name: MusicFree插件, type: 1}, {name: LXServer接口, type: 2} ] }, lx_server_info: { base_url: , x-user-name: , x-user-token: , auto_convert: false, platforms: { tx: 小秋音乐, kg: 小枸音乐, kw: 小蜗音乐, wy: 小芸音乐, mg: 小蜜音乐 }, box_play_platform: all }, music_free_info: { enabled_plugins: [], plugin_source: {source_url: }, plugins_info: [], box_play_platform: all }, voice_playlist_strategy: { desc: 语音搜单策略: default(首条), max_songs(歌曲最多), max_plays(播放最多), random(随机), value: default } }几个最常翻到它的字段字段所在节点作用api_typeback_conf_info1 MusicFree 插件2 LX Server 接口enabled_plugins/plugins_infomusic_free_info已启用决定权重排序/ 已安装的插件source_urlmusic_free_info.plugin_source插件订阅源地址base_url/x-user-name/x-user-tokenlx_server_infoLX Server 地址与请求头鉴权V1.1.3 支持鉴权platformslx_server_infoLX 平台字典如tx小秋音乐、kg小枸音乐、kw小蜗音乐、wy小芸音乐、mg小蜜音乐auto_convertlx_server_info是否每 30 秒拉取转换 LX 歌单box_play_platform两生态各一份口令搜索偏好平台all为聚合auto_add_song顶层自动追加同歌手歌曲开关aiapi_info顶层AI 口令提取enabled/api_key接口地址留空用阿里百炼模型默认qwen-flashpassword顶层后台密码锁非空即启用voice_playlist_strategy顶层语音搜单策略关于密码锁默认不开。把password填成非空值即启用进入后台时前端先调GET /api/password/check返回required: true就弹密码框POST /api/password/verify验证通过才放行想把锁关掉把密码置空即可忘了密码也是回文件里重置。⚠️升级提醒遇到配置文件结构发生变化的版本升级例如 V1.1.1 重构直接删掉旧的/conf/plugins-config.json重启服务后在网页端重新配置比手动改字段省事得多。排错避坑四个典型症状的处理办法症状LX Server 路线搜得到歌但放不出来。原因接口连通、鉴权或版本限制问题。处理先点接口测试确认地址合法再核对x-user-name/x-user-token是否按要求填写若服务端是 v1.8.2 的 Token 限制版本见前文版本提醒。完整排查思路参考仓库内 issues/811 处理方案。症状想把平台上现成的歌单同步到音箱循环播。原因这是需求而非故障——当前在线点播只处理搜索命中的单曲/歌手歌单。处理查看 issues/807 的方案讨论了解现有能力边界与替代做法。症状AI 口令提取配了却不生效。原因配置没到位或接口不合规。处理逐条自查conf/plugins-config.json——aiapi_info.enabled是否为true、api_key是否非空、所用模型接口是否符合 OpenAI API 规范。三项全过仍异常说明走了回退逻辑功能会退化为歌名-歌手分割而非完全不可用。症状自动追加同歌手歌曲没反应。原因模式不对。处理自动追加只在全部播放全部循环模式下生效用点播单曲听歌触发不了确认模式后检查auto_add_song是否为true。延伸阅读到这里选路线、放第一首歌、网页搜、语音点、调参数、排故障都齐了。现在去后台把接口生态切一次对着音箱说一句在线播放 林俊杰 江南。在线搜索核心业务搜索、聚合、直链解析、降级换源、AI 解析、SSRF 防护online_music.py插件沙箱与 LX 接口管理Node 子进程、插件加载、自动转换定时任务js_plugin_manager.py全部在线搜索相关 REST 路由api/routers/plugin.py后台配置页前端onlineSearch/setting.html、setting-musicfree.js、setting-lxserver.js配置文件模板plugins-config-example.json【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表