搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

egoist/mygo-music

多媒体与设计

用 Go 编写的原生桌面音乐播放器,本地文件开箱即用,并通过 JavaScript 插件扩展在线曲库与账号。

230
49
Go
AGPL-3.0
创建于 2 天前

项目介绍

MyGo Music 是一个用 Go 和 MyGo 原生 UI 工具包编写的桌面音乐播放器,不带 WebView。本地文件可以直接播放;账号、在线曲库、播客、电台、评论和自定义页面等能力都由插件提供。

内置播放支持带标签、封面和 .lrc 歌词的本地文件,以及播放列表、喜欢的歌曲、搜索、专辑和艺术家。正在播放页提供歌词舞台样式、封面墙、队列、随机和循环;另有音频缓存、暂停与跳转淡入淡出、响度归一化、会话恢复、macOS 刘海播放器、托盘和媒体键,界面支持英文和简体中文(功能列表)。

播客字幕会在播放时用 sherpa-onnx 和 Qwen3-ASR 在设备上转写,相关组件由应用在用户主动请求时下载。

快速使用

从源码构建需要 Go 和 MyGo 工具链:

go tool mygo dev     # 开发模式运行
go tool mygo build   # 打包到 build/
go test ./internal/...

README 没有说明如何获取预编译版本,因此源码构建是当前有文档的路径(构建命令)。

想试用插件,可把 examples/demo-plugin 复制到应用的插件目录(Settings > Plugins > + > Show Plugins Folder),也可以在 Settings > Plugins 中点击 +,从 GitHub 仓库或压缩包安装。插件就是一个包含 plugin.json 和一个 JavaScript 或 TypeScript 文件的文件夹,无需构建,同一插件可在所有平台运行。

编写与发布插件

插件按能力导出函数,例如 search、stream、home、lyrics 或 remote* 远程播放系列。完整导出表和 JSON 结构见 internal/music/music.go。navigation 决定插件在侧边栏中的入口,minAppVersion 指定兼容的最旧应用版本。

JavaScript 标准库之外的能力需要在 plugin.json 中申请权限:network 列出 fetch 可访问的主机,process 列出 host.spawn 可启动的程序。host 对象还提供持久存储、设置、翻译、登录辅助和加密工具(权限与 host API)。

发布时,把 plugin.json 放在公共 GitHub 仓库根目录,可在 Release 中附上按平台命名的 zip,并给仓库加上 mygo-music-plugin 标签,即可出现在插件页。mygo-music://install-plugin?repo=owner/repo 形式的安装链接会打开应用,并在安装前询问用户。

使用约束

  • 插件权限在安装或更新时校验;新版本申请更多权限会再次提示用户。process 权限尤其敏感,因为启动的程序拥有与用户相同的权限。
  • 涉及原生程序时,需要按平台分别提供二进制,并通过 host.platform 和 host.arch 选择。
  • 插件翻译放在 locales/<language>.json;内置语言为英文和简体中文。
  • 项目使用 AGPL-3.0 许可证(许可证)。

HotRepo 点评

MyGo Music 首次出现在 HotRepo 新项目榜 2026-11-06 的快照中:观测点为 147 stars、28 forks,报告在约一小时的窗口内新增 42 stars 和 8 forks。该项目没有记录到全语言日榜最好名次,所以这只是一次早期快照,不足以判断趋势。值得关注的设计点是插件边界:Go/MyGo 原生外壳加带显式权限的 JavaScript 插件并不常见,而 README 对这套边界的描述比播放器 UI 本身更详细。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。