Xiaomusic 让小爱音箱解锁本地曲库,内网穿透更能远程点歌

Xiaomusic 让小爱音箱解锁本地曲库,内网穿透更能远程点歌
在这里插入图片描述

Xiaomusic 是一款专为小爱音箱打造的本地音乐管理工具,核心功能是绑定小米账号后让小爱音箱直接读取 NAS 中的音乐文件,支持语音点播、随机播放、循环歌单等基础操作,适配所有能运行 Docker 的设备,无论是家用 NAS(极空间、群晖等)还是普通电脑都能部署。它的适用人群主要是有本地音乐收藏习惯、不想被音乐平台会员限制的用户,尤其是家中有小爱音箱且配备 NAS 的家庭用户,优点在于部署门槛低,无需编程基础,轻量化占用资源少,还能通过网页端可视化管理歌单和设备,操作简单易上手。

使用 Xiaomusic 时能明显感受到本地音乐调用的便捷性,比如喊一声 “播放收藏的经典老歌” 就能秒响应,但也有需要注意的地方:小米账号绑定后建议定期检查登录状态,避免因账号安全设置导致连接失效;NAS 中的音乐文件最好按统一格式整理,否则可能出现语音点播识别不准确的情况;另外部署时要确保存储路径设置正确,不然会出现音乐文件无法读取的问题。

在这里插入图片描述

不过仅在局域网内使用 Xiaomusic 会有明显的局限性,比如人在公司想给家里的老人点播戏曲,却因为不在同一网络无法操作;出门旅游时想远程调整家中小爱音箱的播放歌单也做不到;甚至家里不同楼层如果网络隔离,也会影响 Xiaomusic 的正常使用,这些都让它的使用场景被局限在 “在家且连同一网络” 的范围内。

而将 Xiaomusic 与 cpolar 内网穿透结合后,这些问题都能迎刃而解:无需申请公网 IP,就能让 Xiaomusic 服务暴露到外网,出差时在高铁上用手机就能远程给家里的小爱音箱点歌;cpolar 提供的固定二级子域名,不用每次重启设备都记新地址,日常使用更省心;而且穿透链路加密,不用担心小米账号或音乐文件信息泄露,同时手机、平板、电脑等多设备都能通过公网地址访问 Xiaomusic,不管是远程管理 NAS 歌单,还是给家里的小爱音箱发播放指令,都能打破局域网的限制,真正实现随时随地控制。

在这里插入图片描述

小爱音箱和家用NAS得绝配搭子,家里刚好有这两个设备的朋友赶紧省钱走起来吧!

准备好了吗?让我们一起把小爱音箱,变成属于你的私人音乐管家 !

image-20251217102204350

1.在极空间部署xiaomusic

1.1ssh远程连接到极空间

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:
ssh root@IP 

没有ssh的小伙伴可以参考这篇文章:

连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网

957c00e3b3f0ce8aa95df96aa41b8715

1.2验证docker是否开启

使用命令:

docker-v systemctl status -v

没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网

image-20251017103712618

2.在极空间部署xiaomusic

使用docker部署的两种方式:

docker启动命令如下:

docker run -p58090:8090 -eXIAOMUSIC_PUBLIC_PORT=58090-v /xiaomusic_music:/app/music -v /xiaomusic_conf:/app/conf hanxi/xiaomusic 

对应的docker compose配置如下:

services: xiaomusic: image: hanxi/xiaomusic container_name: xiaomusic restart: unless-stopped ports: - 58090:8090 environment: XIAOMUSIC_PUBLIC_PORT: 58090 volumes: - /xiaomusic_music:/app/music - /xiaomusic_conf:/app/conf 
67a20536fc0723942ccf9890c2070ebc

部署完成后,在浏览器中输入 http://极空间IP:58090 就能看到xiaomusic的界面:

b29b675fc04f99153ae375d31ff52bf5

3.使用xiaomusic

选择“默认主题”进来后,点击设置:

dd0b619f8e43e991bbb538a6b1ba28fa

输入你的小米账号及密码:

输入ip及端口:

048264095c28a5c34dee1b51895882b9

往下滑,开启图中信息:

d5cc9a91e3d012ffcfcefb181d29f363

划到最下面,点击保存:

cc6db44467859d7c7ecf7d25a6beb18a

这时,划到最上面后,我们的设备就显示成功啦!

8534577289dadd4031f6b645f8c0862b

勾选设备后,还是划到最下面,点击保存后,回到首页:

cfcdb619870c5ec4bed211122e2c3590
4c6d1ca92bcbb21b66027af1184804ec

这时我们的设备就添加成功了:

33848edf4ce59fdfc538dfb299c337e5

点击搜索,搜索我们想听的歌:

b6adc6d96fd78141c86b5c5f2f5c2ffd

我这里搜索周杰伦:

76c3b5c49d956086a6a2bc42248bf05f

后续也可以添加我们想听的歌:

66788d3f50dfe3a42db3ae61b6bd1b9f

点击测试,也可以播放链接的歌:

1e6b503153e7c9909026a41259870408

我们搜索的歌会在播放列表上,直接点击听就可以:

dff840a03107f8927cf69de96bfa3f2c

它还有很多主题供我们选择:

image-20251217152920486

在完成XiaoMusic的 NAS 本地部署后,你已经可以让小爱音箱畅听局域网内的音乐了。但如果你想在外网远程控制家里的小爱音箱——比如在公司、在路上随时点歌回家播放,就需要将服务暴露到公网。这时,cpolar内网穿透工具就派上了大用场。无需公网IP、不用复杂端口映射,只需一条命令,cpolar就能将你 NAS 上运行的XiaoMusic 服务(默认端口58090)安全地映射为一个可外网访问的HTTPS链接,让你随时随地通过手机浏览器远程操控小爱音箱,真正实现“人在外,歌回家”的智能体验。

4.安装cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

cpolar官网

使用一键脚本安装命令:

sudocurl https://get.cpolar.sh |sh
e464b045413a024674a93ea472511b0f

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar 
aa03713b56d9eef12a4da6b99d2e46ac

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

3af79ad708cc47c5bbea0b63c2c7230d

5.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:xiaomusic,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:58090
  • 域名类型:随机域名
  • 地区:选择China Top
image-20251217151500902

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20251217151514464

访问成功。

image-20251217151530797

6.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是xiaomusic,大家可以自定义。填写备注信息,点击保留。

image-20251217151652396

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20251217151725812

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20251217151756777

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20251217151818497

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问极空间的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20251217151837349

总结

Xiaomusic 搭配 cpolar 的组合,既解决了小爱音箱只能播放平台曲库的问题,又突破了局域网使用的局限,让本地音乐资源的利用更灵活。对于有 NAS 和小爱音箱的用户来说,这套方案操作简单、实用性强,能低成本提升家庭音乐使用体验,让本地音乐真正实现 “随心听、远程控”。

Read more

【Spring Boot开发实战手册】掌握Springboot开发技巧和窍门(六)创建菜单和游戏界面(下)

【Spring Boot开发实战手册】掌握Springboot开发技巧和窍门(六)创建菜单和游戏界面(下)

基本的移动 在 Snake.js 中添加代码,实现蛇头的向右移动。 import{ AcGameObject }from"./AcGameObject";import{ Cell }from"./Cell";exportclassSnakeextendsAcGameObject{constructor(info, gamemap){super();// 继承AcGameObject的方法this.id = info.id;this.color = info.color;this.gamemap = gamemap;this.cells =[newCell(info.r, info.c)];// 存放蛇的身体, cell[0] 存放蛇头// new addthis.speed =5;}update_

By Ne0inhk
【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优

【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优

本节重点 以 Spri‏ng AI 框架为例,‏学习 RAG 知识库应‏用开发的核心特性和高级‏知识点,并且掌握 RA‌G 最佳实践和调优技巧。 具体内容包括: * RAG 核心特性 * 文档收集和切割(ETL) * 向量转换和存储(向量数据库) * 文档过滤和检索(文档检索器) * 查询增强和关联(上下文查询增强器) * RAG 最佳实践和调优 * RAG 高级知识 * 检索策略 * 大模型幻觉 * 高级 RAG 架构 一、RAG 核心特性 Rag 检索增强工作流程 一、建立索引 (1) 文档预处理和切割 ETL 首先对文档进行结构优化,内容清洗,也就是让文档的每一个部分的内容,都有一个标题,来划分每个部分的内容,

By Ne0inhk
别再手动调优了!KingbaseES连接条件下推自动拯救慢 SQL

别再手动调优了!KingbaseES连接条件下推自动拯救慢 SQL

告别SQL性能焦虑:金仓数据库“连接条件下推”的性能魔法 你是否遇到过这样的场景:一个看似复杂的SQL,在测试环境运行飞快,一到生产环境就“卡死”,一查执行计划,发现子查询生成了一个巨大的中间结果集,导致后续操作全部陷入性能泥潭? 如果你正被此类场景困扰,那么,是时候认识一项改变游戏规则的技术:金仓数据库(KingbaseES)「基于代价的连接条件下推」。它不仅是技术优化,更是应对复杂业务查询的“性能终结者”。 一、 为什么你的复杂SQL会“爆内存”? 在金融、政务等复杂业务系统中,为了逻辑清晰,SQL常常被写成这样: SELECT * FROM (SELECT DISTINCT * FROM 巨表_A) AS 子查询结果, 筛选表_B WHERE 子查询结果.关键ID = 筛选表_B.关键ID AND 筛选表_B.过滤字段 = '

By Ne0inhk

LangChain: 从 LLM 调用到 Agent 架构

一、为什么要用 LangChain? 自从 OpenAI 推出 ChatGPT 之后,大模型能力迅速普及。越来越多的开发者开始将 LLM 接入业务系统,但很快会遇到三个现实问题: 1、模型接口不统一 —— 今天用 OpenAI,明天换国内模型,代码要大改 2、Prompt 难管理 —— 提示词到处拼字符串,无法版本控制 3、业务流程复杂 —— RAG、Agent、多工具调用,全是胶水代码 这时候,LangChain 就登场了。 LangChain 本质是一套 “面向大模型应用开发的工程化框架”,它把模型调用、Prompt 管理、知识检索、流程编排、Agent 调度全部抽象成可组合模块,让你像搭积木一样构建 AI 应用。 二、LangChain 架构全景 LangChain

By Ne0inhk