软件本身不带任何音源,需自行安装或开发插件才能搜索播放;主题包文件夹必须同时包含 index.css 和 config.json 两个文件;二次分发需保留代码出处且不得用于商业用途
npm install
npm startREADME 未说明硬件要求,仅说明支持 Windows、macOS 和 Linux 桌面系统
插件化、定制化、无广告的免费音乐播放器,音源全靠插件,跨 Windows、macOS、Linux
插件化、可定制的免费音乐播放器,无广告,支持通过插件扩展音源,用 Electron 和 React 打造跨平台桌面端。
核心能力
- 本身不集成任何音源,搜索播放歌单导入全由插件提供
- 插件支持搜索音乐专辑作者歌单、播放、导入单曲歌单、获取歌词
- 用主题包自定义外观,可覆盖 CSS 变量或用 iframe 做背景
- 所有数据存本地,不上传个人信息,保持免费无广告
容易踩的坑
- v1.0.0-beta.4MusicFree 1.0.0-beta.4pre-release2026-03-23 · 2026-03-23 09:15 UTC
查看更新说明
- 【修复】修复无法播放本地音乐列表中的歌曲的问题
- v1.0.0-beta.3MusicFree 1.0.0-beta.3pre-release2026-03-22 · 2026-03-22 11:08 UTC
查看更新说明
- 【修复】修复环境变量保存后不显示的问题
- 【修复】修复主窗口右上角关闭按钮功能异常的问题
- 【修复】修复导入歌单功能异常的问题
- 【修复】修复在输入框上右键不出现菜单的问题
- 【优化】本地音乐支持多选
- v1.0.0-beta.2MusicFree 1.0.0-beta.2pre-release2026-03-16 · 2026-03-16 15:31 UTC
查看更新说明
- 【修复】修复允许出现多个实例的问题,限制为单实例运行
- 【修复】修复本地歌曲无法读取和显示内嵌歌词和封面的问题 (#370)
- 【修复】修复浅色模式下播放列表音乐作者颜色显示错误的问题 (#371)
- 【修复】修复托盘菜单 (Tray Menu) 显示及交互的相关问题 (#369, #372)
- 【修复】修复执行数据迁移时,当前正在播放的歌曲会被清空的问题
- 【优化】统一本地音乐支持的文件扩展名
- 【优化】调整应用界面的部分底色
- v1.0.0-beta.1MusicFree 1.0.0-beta.1pre-release2026-03-15 · 2026-03-15 08:40 UTC
查看更新说明
- 【重构】重写了整个软件。
- v0.0.8最新正式版2025-10-26 · 2025-10-26 13:43 UTC
【修复】修复了一些可能导致白屏的问题
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
MusicFree 桌面版
项目使用约定:
本项目基于 AGPL 3.0 协议开源,使用此项目时请遵守开源协议。
除此外,希望你在使用代码时已经了解以下额外说明:
- 打包、二次分发 请保留代码出处:https://github.com/maotoumao/MusicFree
- 请不要用于商业用途,合法合规使用代码;
- 如果开源协议变更,将在此 Github 仓库更新,不另行通知。
简介
一个插件化、定制化、无广告的免费音乐播放器。
当前版本支持 Windows 和 macOS 和 Linux
下载地址
特性
-
插件化:本软件仅仅是一个播放器,本身并不集成任何平台的任何音源,所有的搜索、播放、歌单导入等功能全部基于插件。这也就意味着,只要可以在互联网上搜索到的音源,只要有对应的插件,你都可以使用本软件进行搜索、播放等功能。 关于插件的详细说明请参考 安卓版 Readme 的插件部分。
-
插件支持的功能:搜索(音乐、专辑、作者、歌单)、播放、查看专辑、查看作者详细信息、导入单曲、导入歌单、获取歌词等。
-
定制化:本软件可以通过主题包定义软件外观及背景,详见下方主题包一节。
-
无广告:基于 AGPL3.0 协议开源,将会保持免费。
-
隐私:软件所有数据存储在本地,本软件不会上传你的个人信息。
插件
插件协议和安卓版完全相同。
示例插件仓库,你可以根据插件开发文档 开发适配于任意音源的插件。
主题包
主题包是一个文件夹,文件夹内必须包含两个文件:
index.css
config.json
index.css
index.css 中可以覆盖界面中的任何样式。你可以通过定义 css 变量来完成大部分颜色的替换,也可以查看源代码,根据类名等覆盖样式。
支持的 css 变量如下:
:root {
--primaryColor: #f17d34; // 主色调
--backgroundColor: #fdfdfd; // 背景色
--dividerColor: rgba(0, 0, 0, 0.1); // 分割线颜色
--listHoverColor: rgba(0, 0, 0, 0.05); // 列表悬浮颜色
--listActiveColor: rgba(0, 0, 0, 0.1); // 列表选中颜色
--textColor: #333333; // 主文本颜色
--maskColor: rgba(51, 51, 51, 0.2); // 遮罩层颜色
--shadowColor: rgba(0, 0, 0, 0.2); // 对话框等阴影颜色
/** --shadow: // shadow属性 */
--placeholderColor: #f4f4f4; // 输入区背景颜色
--successColor: #08A34C; // 成功颜色
--dangerColor: #FC5F5F; // 危险颜色
--infoColor: #0A95C8; // 通知颜色
--headerTextColor: white; // 顶部文本颜色
}
具体的例子可以参考 暗黑模式
除了通过 css 定义常规样式外,也可以通过在 config.json 中定义 iframes 字段,用来把任意的 html 文件作为软件背景,这样可以实现一些单纯用 css 无法实现的效果。
config.json
config.json 是一个配置文件。
{
"name": "主题包的名称",
"preview": "#000000", // 预览图,支持颜色或图片;
"description": "描述文本",
"iframes": {
"app": "http://musicfree.catcat.work", // 整个软件的背景
"header": "", // 头部区域的背景
"body": "", // 侧边栏+主页面区域的背景
"side-bar": "", // 侧边栏区域的背景
"page": "", // 主页面区域的背景
"music-bar": "", // 底部音乐栏的背景
}
}
如果需要指向本地的图片,可以通过 @/ 表示主题包的路径;preview、iframes、以及 iframes 指向的 html 文件都会把 @/ 替换为 主题包路径。详情可参考 樱花主题
主题包示例
示例仓库:https://github.com/maotoumao/MusicFreeThemePacks
几个主题包效果截图:
暗黑模式

背景图片

fliqlo

樱花

雨季

启动项目
下载仓库代码之后,在根目录下执行:
npm install
npm start
支持这个项目
如果你喜欢这个项目,或者希望我可以持续维护下去,你可以通过以下任何一种方式支持我;)
- Star 这个项目,分享给你身边的人;
- 关注公众号【一只猫头猫】获取最新信息;
截图


