千千静听歌词服务器 本地运行,数据来自qq音乐和网易云音乐
软件架构说明 Springboot
- 下载源代码
- 运行 mvn package 打包成jar文件
- 运行jar文件
- 修改千千静听的 AddIn/ttp_lrcsh.dll 文件,使其中一个服务器地址指向 Localhost:8098
- 启动千千静听,选择你修改过的哪个服务器即可搜索歌词
- 默认每个接口查询50条结果(如果支持的话,目前两个接口都支持),如果需要修改,修改application.yml文件里面的pageNum即可,目前不支持单个接口修改
- 网易云的接口在未登录的情况下只能返回20条结果,如果需要更多的返回结果,需要登录自己的网易云账号,提起cookie里面的MUSIC_U放到application.yml文件里面
- 关于有效性,该程序实现了从本地直接调用音乐平台的接口来给千千静听续命,不依托第三方服务器,只相当代替你去搜索歌词,理论上只要你还能访问qq音乐、网易云这些网站就能一直续下去
- 设计上支持更多的搜索引擎,只需要实现MusicLrcSearch这个接口就会自动调用,目前不支持搜索引擎排序
- 目前为了解决千千静听查询歌曲返回数据的歌词id不支持英文,使用了一个数据类 BuffData 来转义、存放临时的搜索结果,每记录到一首新歌曲就会占用一点内存空间,如果需要修改成在线服务,请自行设计解决方案。(重启程序会清空BuffData,作为单机运行影响不大)
- 接口支持双语lrc的话,可以选择继承LRCDispose这个类,里面有合并双语歌词的方法doTrans
- 例如:原文lrc
[00:21.74]長い長い2秒間のため\n[00:27.40]あたしは口を閉じた\n[00:33.09]少し経って波音が響く\n[00:38.85]かき消されない様に勇気出した\n[00:44.71]-\n[01:07.62]うだる暑さと詰まらない声\n[01:13.13]窓から見える青さ\n[01:18.79]まどろんでは頑張ってるフリで\n[01:24.60]何気なくきみを見る\n[01:30.40]誰もが欲しがる\n[01:33.17]愛と恋の答え\n[01:36.05]何度考えても解らない\n[01:40.85]きみと全力疾走手をとって\n[01:47.26]ふたり逃げ出した帰り道\n[01:52.62]胸が鳴って顔が熱くて\n[01:58.57]どうかどうか手を離さないで\n[02:10.27]-\n[02:52.99]苦しくなって\n[02:58.64]くすぐったくて\n[03:04.35]でも優しくて\n[03:10.05]出てくる言葉がいっぱいで\n[03:15.81]ため息が出ちゃう\n[03:21.31]息を切らして立ち止まる\n[03:27.23]青に滲んだ赤い絵の具\n[03:32.53]きみの満点の笑顔向けて\n[03:38.69]背伸びした\n[03:40.97]好きよ\n[03:42.08]-\n[03:42.64]きみと全力疾走手をとって\n[03:50.01]ふたり逃げ出して遠くまで\n[03:55.37]答えがたとえ違ってても\n[04:01.54]どうかどうか手を離さないで\n[04:12.59]そう\n[04:15.78]まだ\n[04:17.30]走っていく\n[04:19.67]きみと\n[04:21.18]-\n
- 例如:译文lrc
[by:Yukkuri_b]\n[00:21.74]为这长长的二秒\n[00:27.40]我紧闭双唇\n[00:33.09]过了一会响起浪声\n[00:38.85]为不被抹消 鼓起了勇气\n[00:44.71]♪\n[01:07.62]闷热的夏日和千篇一律的声音\n[01:13.13]透窗映入满眼的青\n[01:18.79]打盹装作有在努力\n[01:24.60]看着若无其事的你\n[01:30.40]无论谁都渴求\n[01:33.17]爱与恋的答案\n[01:36.05]考虑多少次都得不出来\n[01:40.85]与你牵手全力疾跑\n[01:47.26]一起逃出的归路\n[01:52.62]心跳加速 脸颊发热\n[01:58.57]请千万千万 别把手放开\n[02:10.27]♪\n[02:52.99]有些难受起来\n[02:58.64]心痒难耐\n[03:04.35]却如此温柔\n[03:10.05]积了那么多想要倾诉\n[03:15.81]叹了出来\n[03:21.31]气息慌乱 停下脚步\n[03:27.23]沁了青的红水彩\n[03:32.53]向着你满分的笑颜\n[03:38.69]踮起脚\n[03:40.97]喜欢喔\n[03:42.08]♯\n[03:42.64]与你牵手全力疾走\n[03:50.01]一起逃到世界尽头\n[03:55.37]就算得出了错误答案\n[04:01.54]也千万千万 别把手放开\n[04:12.59]对\n[04:15.78]再次\n[04:17.30]放开脚步\n[04:19.67]和你一起\n[04:21.18]♪\n
- 例如:输出lrc
[00:21.74]長い長い2秒間のため 为这长长的二秒
[00:27.40]あたしは口を閉じた 我紧闭双唇
[00:33.09]少し経って波音が響く 过了一会响起浪声
[00:38.85]かき消されない様に勇気出した 为不被抹消 鼓起了勇气
[00:44.71]- ♪
[01:07.62]うだる暑さと詰まらない声 闷热的夏日和千篇一律的声音
[01:13.13]窓から見える青さ 透窗映入满眼的青
[01:18.79]まどろんでは頑張ってるフリで 打盹装作有在努力
[01:24.60]何気なくきみを見る 看着若无其事的你
[01:30.40]誰もが欲しがる 无论谁都渴求
[01:33.17]愛と恋の答え 爱与恋的答案
[01:36.05]何度考えても解らない 考虑多少次都得不出来
[01:40.85]きみと全力疾走手をとって 与你牵手全力疾跑
[01:47.26]ふたり逃げ出した帰り道 一起逃出的归路
[01:52.62]胸が鳴って顔が熱くて 心跳加速 脸颊发热
[01:58.57]どうかどうか手を離さないで 请千万千万 别把手放开
[02:10.27]- ♪
[02:52.99]苦しくなって 有些难受起来
[02:58.64]くすぐったくて 心痒难耐
[03:04.35]でも優しくて 却如此温柔
[03:10.05]出てくる言葉がいっぱいで 积了那么多想要倾诉
[03:15.81]ため息が出ちゃう 叹了出来
[03:21.31]息を切らして立ち止まる 气息慌乱 停下脚步
[03:27.23]青に滲んだ赤い絵の具 沁了青的红水彩
[03:32.53]きみの満点の笑顔向けて 向着你满分的笑颜
[03:38.69]背伸びした 踮起脚
[03:40.97]好きよ 喜欢喔
[03:42.08]- ♯
[03:42.64]きみと全力疾走手をとって 与你牵手全力疾走
[03:50.01]ふたり逃げ出して遠くまで 一起逃到世界尽头
[03:55.37]答えがたとえ違ってても 就算得出了错误答案
[04:01.54]どうかどうか手を離さないで 也千万千万 别把手放开
[04:12.59]そう 对
[04:15.78]まだ 再次
[04:17.30]走っていく 放开脚步
[04:19.67]きみと 和你一起
[04:21.18]- ♪
[by:Yukkuri_b]
1.千千静听在搜索的时候,会采用GET请求访问 ttp_lrcsh.dll 里面存放的地址,发送参数为
{"ci":"...电脑特征码...","sh?Artist":"...歌手...","Title":"...歌曲名...","Flags":"...服务器序号(1/2)..."}
其中,歌手和歌曲名会经过UNICODE编码,需要自己解码。响应数据格式为
<?xml version="1.0" encoding="UTF-8"?>
<result>
<lrc id='歌曲id' artist='歌手' title='歌曲名称'></lrc>
<lrc id='1' artist='君と一緒にいればいい、佐天Tamako' title='さくら ~あなたに出会えてよかった~(樱花樱花想见你)(Cover RSP)'></lrc>
</result>
3.千千静听在下载歌词的时候,会采用GET请求访问 ttp_lrcsh.dll 里面存放的地址(与上一个地址相同,发送参数不同),发送参数为
{"dl?Id":"...歌曲id...","ci":"...电脑特征码...","Code":"...歌曲特征码..."}
下载接口目前本项目只使用了id字段。响应数据直接返回lrc歌词文本即可