news 2026/9/10 12:19:41

LX Music 桌面版:免费跨平台音乐播放器,七大音乐源聚合搜索一次命中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LX Music 桌面版:免费跨平台音乐播放器,七大音乐源聚合搜索一次命中

LX Music 桌面版:免费跨平台音乐播放器,七大音乐源聚合搜索一次命中

【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop

LX Music 桌面版(lx-music-desktop)是一款基于 Electron 与 Vue 3 的免费开源音乐软件,聚合搜索了酷我、酷狗、QQ、网易云、咪咕、虾米、百度 7 个音乐平台的公开接口。它解决的具体痛点是:你想听的一首歌往往散落在多个 App 里,而它让一次搜索就能拿到跨平台的全部候选。当前版本 v2.12.2,运行在 Electron 40 之上,覆盖 Windows 7 及以上、macOS、Linux 三大桌面平台。

🎵 打开软件,一次回车拿到全平台候选

我们打开软件:左侧是歌单栏,顶部搜索框已聚焦,光标在闪。输入"周杰伦 晴天"回车,软件对启用的音乐源同时发起搜索请求,同一首歌在各平台的候选并排铺开,每行标着来源。你按音质和偏好选一首,点击后本地按歌手、歌名、时长做多级匹配锁定目标,音频链接则来自你在设置中挑选的自定义源,而不是平台直连。

围绕这套源体系,各平台提供的能力并不完全相同:

音乐源搜索歌词排行榜歌单热歌评论
酷我 kw
酷狗 kg
QQ 音乐 tx
网易云 wy
咪咕 mg
虾米 xm
百度 bd

洛雪音乐助手主界面:顶部搜索框、左侧歌单与底部播放控制区,一次搜索即可聚合 7 个平台的候选歌曲

⚙️ 七个文件夹加一张路由表:聚合搜索的实现方式

音乐源模块集中在 musicSdk/ 目录,每个平台一个独立文件夹:

src/renderer/utils/musicSdk/ ├── index.js # 源注册表 + 并行搜索聚合 ├── api-source.js # 音频地址源的路由层 ├── api-source-info.ts # 源与音质的声明配置 ├── kw/ kg/ tx/ wy/ mg/ bd/ # 各平台独立适配模块 └── xm.js # 虾米(已停止服务,保留实现)

为什么每个平台要拆成独立文件夹?因为 7 个平台的接口协议、参数签名、返回结构完全不同:kw/index.js里酷我按 songmid 查详情,网易云则用完全不同的加密参数。拆开后,某个平台接口变动只需改自己目录内的文件,index.js之外的代码零改动。

元数据与音频地址的职责分离是这套架构的关键。搜索、歌词、排行榜、歌单直接请求各平台公开接口;而音频链接本身不由软件内置接口提供,走的是用户设置的"自定义源",由 api-source.js 统一转发。说白了,api-source.js就是一张路由表:根据你当前选中的源,把"要这首歌的 320k 链接"的请求转发给对应源模块。这样音频源的失效与替换不会影响搜索和歌词功能,两者互不牵连。

搜索结果聚合的"聚合"二字体现在两处。searchMusic对所有启用的源并行发请求,单源超时或失败直接返回空,不拖慢整体;findMusic再按"歌手全等加歌名全等加时长相等"逐级放宽的规则给候选排序,把最匹配的结果顶到前面,重复歌曲自然被去重收敛。

🎨 技术选型与全平台构建产物清单

依赖选得克制,每项都有明确理由:

  • Electron 40:跨平台桌面容器,一套代码覆盖三大系统
  • Vue 3.3:渲染层响应式 UI,Composition API 组织复杂播放状态
  • TypeScript:主进程、worker 与同步模块全量类型约束
  • better-sqlite3:本地歌单、下载任务、设置全部落库,同步查询快
  • webpack + electron-builder:打包与分发管线,构建脚本集中在 build-config/
平台构建产物
Windowsexe 安装包(x86 / x64 / arm64)、7z 绿色版、Windows 7 兼容版
Linuxdeb(amd64 / arm64 / armv7l)、rpm、AppImage、pacman
macOSdmg(x64 / arm64)

数据默认存放在系统标准位置:Linux 的~/.config/lx-music-desktop、macOS 的~/Library/Application Support/lx-music-desktop、Windows 的%APPDATA%/lx-music-desktop;Windows 下若程序目录存在portable文件夹,则自动改用其存储,方便 U 盘携带。

个性化入口集中在 src/common/theme/:主题定义在index.json,主色调以 CSS 变量描述,一套色板自动生成从 10% 到 90% 的透明度色阶;想加主题,改完配置跑一次npm run build:theme即可。内置背景里既有中国风山水,也有节庆主题:

中国风山水主题背景,与聚合搜索结果页的深色界面搭配,营造沉浸式听歌氛围

月夜流星主题背景:主题系统的背景图同样支持自定义更换

🚀 开放 API 与自建同步服务

动手用户有三条扩展路径。

开放 API:v2.7.0 起,在设置中启用后,本地启动一个 HTTP 服务(服务实现见 openApi/),最小调用只有两行:

# 查询当前播放状态(歌名、歌手、进度) curl http://127.0.0.1:10754/status # 播放暂停 curl -X POST http://127.0.0.1:10754/play

/status之外还支持 SSE 订阅:状态一变就推一条事件,做桌面歌词或状态栏展示不用轮询。典型场景:接入 Home Assistant 这类智能家居系统控制播放;浏览器脚本联动触发播放;把/status输出接到第三方面板上显示"正在播放什么"。

自建同步服务:v2.2.0 起数据同步服务独立维护,客户端与同步端的代码在 sync/ 下;部署到自己的 Node.js 服务器后,歌单、设置、播放历史在多台设备间私有同步,数据不过第三方的手。

接入新音乐源:在musicSdk/下新建目录,实现musicSearchgetLyricleaderboard等标准方法,再回到index.js的源列表里注册一个 id,聚合搜索会自动把新源纳入并行请求。

📦 五分钟跑起来,然后动手改它

搭建开发环境:

  1. 确认 Node.js 22 以上、npm 8.5.2 以上(见package.json的 engines 字段)
  2. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/lx/lx-music-desktop
  3. 在仓库目录执行npm install
  4. 执行npm run dev进入开发模式,窗口几秒内拉起
  5. 先用npm run lint确认本地 ESLint 规则通过

参与贡献:

  • dev分支开发并提 PR;新功能建议先开 Issue 说明,确认需求确实存在
  • 修复 bug 的 PR 需要附修复前后说明与重现方式
  • 代码过 ESLint 标准配置加 TypeScript 类型检查,Vue 组件走vue-eslint-parser

把仓库加进你的书签,用"歌手名 歌名"的格式跑一次跨平台搜索,对比 7 个源返回的结果差异;再把开放 API 打开,让浏览器或脚本读一次/status的输出,这两个动作比读完这篇文档更快建立直觉。

【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 20:05:59

公共艺术品资产与维护成本管理系统:Spring Boot + Vue 3 实战

最近看到一条挺有意思的新闻话题:“Banksy works cost public almost £150k”。抛开艺术品争议不谈,这件事给技术人员留了一个很现实的思考:公共艺术品一旦进入城市,后续的清洁、修复、安保、保险甚至拆除,都会变…

作者头像 李华
网站建设 2026/9/4 21:00:05

【DeepSeek Harness 基石-Cordis元框架】入门指南与六大核心概念解析

文章目录 1. 项目概述 1.1 什么是 Cordis 1.2 项目状态 1.3 适用场景 1.4 设计哲学 1.5 Deepseek Harness与Cordis的关系 2. 快速开始 2.1 环境要求 2.2 安装 2.3 最简示例 2.4 使用脚手架创建项目 2.5 项目结构 2.6 使用 CLI 启动 3. 核心概念:Context(上下文) 3.1 什么是 …

作者头像 李华
网站建设 2026/9/2 23:45:01

开源原型模板:把产品评审变成可追踪的前端工程流程

这次我们来看一类非常容易被低估的开源项目:面向“产品构建 评审流程”的开源原型模板。它不是一个单一框架,而是一整套把“快速出原型”和“结构化评审”串起来的前端工程模板。产品经理可以拿它快速搭出可点击的交互稿,设计师可以在真实页…

作者头像 李华
网站建设 2026/9/2 8:31:06

RNN+AdaBoost建模无文档脏数据的工程实践

简介:本资源为2017年KDD Cup全球顶级数据挖掘竞赛的完整参赛项目复现包,面向数据科学学习者、算法工程师及高校科研人员,聚焦大规模时序预测与交通流量建模等典型工业级任务。压缩包共70个文件(31.47MB),涵…

作者头像 李华
网站建设 2026/9/2 11:07:44

零代码开发:从选型搭建到商业化的真实边界

《不写一行代码年赚4亿美元》这种标题,放在哪里都能吸引一堆点击。但做技术的人看到之后,第一反应不是算收入,而是先问一句:零代码工具到底能不能承担这么高的预期?我自己的答案很清楚:能靠零代码搭出实用系…

作者头像 李华