DEVELOPER · UPDATE API

Update API

官网即更新服务器。所有接口都是公开 GET 请求,返回 JSON、允许跨域,不需要任何 Token。 当前线上版本 v1.2.1。

这里只讲客户端更新接口。歌曲、歌单、搜索、播放地址等数据来自本地运行的开源项目 KuGouMusicApi, 接口用法请查阅它的仓库文档。

BASE URL https://moin.shrtxs.cn/api.php

快速开始

接口只做三件事:告诉你「有没有新版本」、新版本在哪下载、以及官网的基础信息。 客户端按下面这个节奏调用即可:

  1. 启动后延时 10–15 秒调用 action=check,带上当前版本号。
  2. hasUpdate 为 true 时弹窗展示 latest.notes,引导下载。
  3. 下载完成后运行安装包;安装版覆盖升级,便携版替换自身 exe。

约定:版本号用 1.2.3 三段式,比较时逐段按数字比,越大越新。 请求带任意 UA 即可,服务端不校验来源。

GET

检查更新

/api.php?action=check

这是更新功能的核心接口。服务端按 version 与后台「已发布」的最高版本比较, 返回是否有更新以及完整的新版本信息。

请求参数

参数必填说明
action是固定为 check
version是客户端当前版本,如 1.2.0
platform否平台标识,默认 win
channel否stable(默认)或 beta

返回示例

{
  "code": 0,
  "msg": "ok",
  "data": {
    "hasUpdate": true,
    "current": "1.2.0",
    "platform": "win",
    "channel": "stable",
    "force": false,
    "site": { "name": "萌萌音乐", "url": "https://moin.shrtxs.cn" },
    "latest": {
      "version": "1.2.1",
      "versionCode": 1210,
      "title": "修复重启后续播卡在后台",
      "notes": ["修复 重启后上一首在后台继续播放的问题"],
      "force": false,
      "size": "107 MB",
      "releasedAt": "2026-11-07",
      "installerUrl": "https://moin.shrtxs.cn/downloads/mengmeng-music-1.2.1-setup.exe",
      "portableUrl": "https://moin.shrtxs.cn/downloads/mengmeng-music-1.2.1-portable.exe",
      "pageUrl": "https://moin.shrtxs.cn/download.php"
    },
    "checkedAt": "2026-11-07T05:30:00+08:00"
  }
}

字段说明

字段类型说明
hasUpdatebooltrue 表示有可更新的版本
forcebool强制更新,客户端应禁止关闭弹窗
latest.versionstring最新版本号
latest.notesstring[]更新说明,按条目返回
latest.installerUrlstring安装版(NSIS)直链
latest.portableUrlstring便携版直链
latest.sizestring安装包体积,展示用

调用示例

curl "https://moin.shrtxs.cn/api.php?action=check&version=1.2.0&platform=win&channel=stable"
const res = await fetch(
  'https://moin.shrtxs.cn/api.php?action=check&version=' + encodeURIComponent(currentVersion)
);
const { data } = await res.json();
if (data.hasUpdate) console.log('新版本', data.latest.version);
$url = 'https://moin.shrtxs.cn/api.php?action=check&version=1.2.0&platform=win';
$json = json_decode(file_get_contents($url), true);
if (!empty($json['data']['hasUpdate'])) {
    echo '有新版本:' . $json['data']['latest']['version'];
}
GET

站点信息

/api.php?action=site

返回站点配置、最新版本、功能列表与最近 10 条更新日志,适合做第三方展示页或 Badge。

{
  "code": 0,
  "data": {
    "site": { "name": "萌萌音乐", "logo": "https://moin.shrtxs.cn/assets/img/logo.png", "download": "https://moin.shrtxs.cn/download.php" },
    "latest": { "version": "1.2.1", "notes": ["..."] },
    "features": [{ "icon": "library", "title": "双源曲库", "desc": "..." }],
    "changelog": [{ "version": "1.2.1", "releasedAt": "2026-11-07" }]
  }
}
GET

版本列表

/api.php?action=versions

返回全部已发布版本(新到旧),字段与 check 的 latest 一致, 可用于做历史版本归档或自建更新器。

GET

健康检查

/api.php?action=ping

用于探活与监控,返回服务器时间与当前线上版本号。

{ "code": 0, "msg": "pong", "data": { "time": "2026-11-07T05:30:00+08:00", "version": "1.2.1" } }

错误码

code含义处理建议
0成功正常解析 data
404action 不存在检查参数拼写
429请求过于频繁退避 60 秒后重试

HTTP 状态码与 body 里的 code 一致。网络异常时建议客户端静默失败, 不要打扰用户——更新检查属于「有则提示」的后台任务。

接入流程

客户端启动
   │  15s 后静默检查
   ▼
GET /api.php?action=check&version=当前版本
   │
   ├── hasUpdate = false ──▶ 继续放歌,什么都不用做
   │
   └── hasUpdate = true
          │  弹窗展示 latest.notes
          ▼
      下载 installerUrl / portableUrl  ──▶ 校验完整性
          │
          ▼
      安装版:运行 NSIS 覆盖升级
      便携版:退出后替换 exe 并重启

本站源码与客户端均可在 GitHub 项目主页 查看;有问题欢迎提 Issue。

想直接用? 下载客户端即可,更新是内置的。
下载客户端