跳到主要内容

开放 API 服务

从 v2.7.0 起支持开放 API 服务。启用该功能后,将会在本地启动一个 HTTP 服务,提供以下接口供第三方软件调用。

提示

若你要实时获取播放器状态,我们强烈建议使用 SSE 接口来获取状态,而不是通过轮询的方式重复调用状态接口。

获取播放器状态

接口地址:/status

请求方法:GET

请求入参:

参数名称描述
filter过滤返回的字段,可选,可用字段看下方「响应数据格式」的字段名,多个字段用 , 分隔。
默认值:status,name,singer,albumName,lyricLineText,duration,progress,playbackRate

响应数据格式:JSON

字段名描述
status播放器状态,可能的值为 playingpausederrorstoped
name歌曲名
singer艺术家
albumName专辑名
duration歌曲总时长(秒)
progress歌曲播放进度(秒)
playbackRate播放速率
picUrl歌曲封面图片链接,可能为 HTTP 链接或 Data URL
lyricLineText当前播放歌词文本
lyricLineAllText当前播放歌词及扩展歌词文本
扩展歌词包含翻译、罗马音等,使用换行符分割
lyric当前歌曲 LRC 歌词文本
tlyric当前歌曲翻译 LRC 歌词文本(如果有)
rlyric当前歌曲罗马音 LRC 歌词文本(如果有)
lxlyric当前歌曲 Any Listen 歌词文本(如果有)
collect当前歌曲是否已收藏
volume音量
mute是否静音

响应数据例子:

{
"status": "playing",
"name": "天使的翅膀",
"singer": "徐誉滕",
"albumName": "李雷和韩梅梅",
"duration": 214.543673,
"progress": 5.051338,
"playbackRate": 1,
"picUrl": "http://xxx",
"lyricLineText": "徐誉滕 - 天使的翅膀"
}

获取当前 LRC 歌词

接口地址:/lyric

请求方法:GET

响应数据格式:UTF-8 编码的 LRC 文本

响应数据例子:

[ar:安琥]
[ti:天使的翅膀]
[by:]
[al:全年伤感歌曲大盘点2]
[offset:0]
[00:00.0]徐誉滕 - 天使的翅膀
[00:05.50]词:徐誉滕
[00:10.100]曲:徐誉滕
[00:15.150]落叶随风将要去何方
[00:21.503]只留给天空美丽一场
[00:27.561]曾飞舞的声音
[00:30.723]像天使的翅膀
[00:33.632]划过我幸福的过往
[00:40.799]爱曾经来到过的地方
[00:47.345]依昔留着昨天的芬芳

获取当前歌曲所有类型歌词

接口地址:/lyric-all

请求方法:GET

响应数据格式:UTF-8 编码的 JSON 数据

响应数据例子:

{
"lyric": "...",
"tlyric": "...",
"rlyric": "...",
"lxlyric": "...",
}

播放器状态订阅

SSE 事件流接口。本接口接受一个普通的 HTTP GET 请求,只是请求会保持长链接状态。播放器的状态在变更时通过文本事件流的形式将其实时返回。你可以使用以下命令测试该接口:

curl -N http://127.0.0.1:23330/subscribe-player-status

其他语言使用该接口的例子:lx-music-desktop/1824#issuecomment-2027888681

更多详情请阅读 MDN

接口地址:/subscribe-player-status

请求方法:GET

请求入参:

参数名称描述
filter过滤返回的字段,可选,可用字段看下方「响应数据格式」的字段名,多个字段用 , 分隔。
默认值:status,name,singer,albumName,lyricLineText,duration,progress,playbackRate

响应数据格式:SSE 文本事件流

事件名称描述
status播放器状态,可能的值为 playingpausederrorstoped
name歌曲名
singer艺术家
albumName专辑名
duration歌曲总时长(秒)
progress歌曲播放进度(秒)
playbackRate播放速率
picUrl歌曲封面图片链接,可能为 HTTP 链接或 Data URL
lyricLineText当前播放歌词文本
lyricLineAllText当前播放歌词及扩展歌词文本
扩展歌词包含翻译、罗马音等,使用换行符分割
lyric当前歌曲 LRC 歌词文本
tlyric当前歌曲翻译 LRC 歌词文本(如果有)
rlyric当前歌曲罗马音 LRC 歌词文本(如果有)
lxlyric当前歌曲 Any Listen 歌词文本(如果有)
collect当前歌曲是否已收藏
volume音量
mute是否静音

响应数据例子:

event: status
data: "playing"

event: name
data: "交换余生"

event: singer
data: "林俊杰"

event: albumName
data: "幸存者 Drifter"

播放器控制

接口地址描述
/play播放
/pause暂停
/skip-next下一曲
/skip-prev上一曲
/seek调整播放进度,参数 offset
/volume调整音量,参数 volume,值: 1-100
/mute调整静音,参数 mute,值: true / false
/collect收藏当前歌曲
/uncollect取消收藏当前歌曲

你还可以配合 Scheme URL 控制播放器的其他操作,例如搜索并播放某歌曲的操作。

若你想要提供更多 API,可以到 GitHub 提交 Issue 进行讨论。:)