Skip to content

Subsonic 客户端

V1 提供 Subsonic/OpenSubsonic 兼容接口,可连接音流、LMP、Feishin 等客户端。不同客户端实现的接口和搜索语法可能不同,出现客户端特有问题时应同时确认服务端日志和客户端支持情况。

连接参数

默认配置:

项目
服务器地址http://服务器IP:9527
Subsonic 路径/rest
用户名音云同步账户用户名
密码该账户同步密码

大多数客户端只需要填写服务器根地址,客户端会自动追加 /rest。如果客户端要求完整 API 地址,再填写包含 /rest 的地址。

反向代理必须支持 Range 请求,否则可能长时间缓冲、跳到下一首或无法拖动进度。

客户端能看到什么

  • 当前账户的同步歌单和歌曲。
  • /music/<用户名> 中已下载并被曲库识别的文件。
  • 歌手、专辑、封面、歌词、随机歌曲和分类浏览。
  • 开启在线搜索后,可搜索音源中的网络歌曲。

/cache 主要用于服务端播放复用,不等同于用户下载曲库。客户端缓存由音流、LMP 等应用自行管理,位置和保留时间取决于客户端设置。

在线与本地搜索

搜索前缀:

前缀行为
tx:关键词只搜索腾讯
wy:关键词只搜索网易
kw:关键词只搜索酷我
kg:关键词只搜索酷狗
mg:关键词只搜索咪咕
online:关键词强制在线搜索
local:关键词强制本地搜索

部分客户端会自行解析或过滤冒号,例如某些版本的 LMP 无法使用 tx:,而音流可以。这类输入兼容问题需要客户端修复,服务端在收到完整关键词时能够处理这些前缀。

服务端搜索模式:

  • fallback:优先本地,无结果时在线搜索。
  • merge:合并本地与在线结果。
  • local_only:只搜索本地曲库。

播放与缓存

客户端请求歌曲时,服务端优先复用本地下载或缓存文件;没有可用文件时才解析在线地址。流接口支持 HTTP Range,以便客户端快速开始播放和跳转进度。

首次播放在线歌曲可能需要等待音源解析。后续命中缓存时应明显更快。如果每次都重新换源下载,通常是本地文件缺少平台 ID、来源标记错误或匹配信息不一致。

歌词

服务端支持传统 getLyrics、OpenSubsonic 的歌词接口,以及可选翻译歌词。客户端是否显示取决于其调用的接口:

  • LMP 能显示而音流不能显示,可能是两个客户端请求的歌词接口不同。
  • 服务端会尽量从外置 .lrc、内嵌歌词或在线源返回歌词。
  • subsonic.lyricTranslation=true 时可包含翻译。

常见问题

歌单歌曲数量较少

确认歌单记录含有效平台 ID,且本地曲库扫描完成。无 ID 的手动音频不能稳定映射为同步歌单歌曲。

播放等待十秒以上

检查 Range 请求是否被反向代理破坏、音源是否首次解析、客户端是否先探测多个格式,以及服务端是否命中已有本地文件。

重复歌曲

通常是同一歌曲同时以歌单在线记录和本地文件记录出现,且两者 ID 未能归一。先批量更新本地元数据,再重新扫描曲库。

所有音质显示 999k

某些客户端只接受数字码率,而 FLAC、Hi-Res、Atmos 和母带没有可靠的固定 kbps。服务端可能使用兼容占位值;它不代表实际文件码率。实际规格以音频文件探测和音质标签为准。

Released under the Apache-2.0 License.