本
文
摘
要
今天正好有个小需求,需要获取qq音乐和网易云中的歌曲的歌词,并附带时间轴([min:s.ms])信息,就随手记录一下,希望能帮到你~
前言
网上搜索到的教程视频,一般都是从播放器里下载,但像qq音乐已经不提供下载歌词的功能了(至少我目前的电脑和手机端的版本没找到),想到之前有看到过网易云NodeJS版API,可以轻松搜索、查询到歌曲、专辑、艺人等信息。
网易云音乐 NodeJS 版 APIneteasecloudmusicapi.vercel.app/当然QQ音乐也有类似的API资源,链接里的是Google出来第一个,风格和网易云的很像,应对我们的需求已经绰绰有余了~
QQ音乐apijsososo.github.io/QQMusicApi(很多人也利用这些API进行自己的音乐流媒体程序开发,是个非常好用的资源,在此非常感谢开发者和维护者!)
文章先以“搜索歌曲——获取歌词”这个简单的流程出发,利用官方提供的API以及上述提到的API,就能轻松实现。之后针对获取到歌词之后制作成LRC格式的文件,会引用并总结一些搜索到的方法。
过程无需什么编码基础,希望你能一看就会!
搜索
首先,先确定你要搜的那首歌版权在哪个平台上。
以陈奕迅的「是但求其爱」为例(嘻嘻听一下新歌),发现网易云上有,于是打开电脑端软件页面,搜索相应歌曲,在对应歌曲后面点击「复制链接」
客户端搜索歌曲--复制链接在浏览器中粘贴该链接,这里是https://music.163.com/song?id=1496602290。(可以忽略后面的&userid)
复制id=后面的那串数字,就是这首歌的「身份证」,通过这个歌曲id就可以干很多事情!
我们要找歌词,所以就可以通过这个链接获取歌曲的信息 http://music.163.com/api/song/media?id= (记得收藏起来),把刚才复制的id填到最后上去,回车之后就能看到以下画面
返回了带有歌曲media信息的JSONok,本文完。
哈哈,其实见到这里基本就看到带有时间轴的歌词了,就包含在"lyric"字段里。这里显示的是JSON格式的数据,关于这种格式感兴趣的同学可以自行搜索,这里就不多赘述了。
诶这里弹幕就会有人说了,我就想找歌词,不想要时间轴怎么办?
那直接百度啊!
当然如果你使用Chrome浏览器,眼神又不太好的时候,可以安装一个叫JSON Viewer的插件(扩展程序),可以方便地阅读JSON格式的数据
稍微好看了点这时候可能又有人说了,我要听周杰伦怎么办!网易云没有!
别慌,qq音乐也有办法。像上述的方法我暂时没找到(有更简单的方法请留言~),但可以利用前言里提到的API:
QQ音乐apijsososo.github.io/QQMusicApi里面可以直接使用在线接口http://api.qq.jsososo.com ,无需部署。(当然爱学习的小伙伴可以自己安装部署来玩一玩~)
我们以周杰伦的「晴天」为例,直接在浏览器中输入https://api.qq.jsososo.com/search?key=晴天 (搜其他歌时把key=后面的字换了就行)
能看到网页是这样的
还好是中文歌这里我们要找的关键词是songmid,对应网易云的id,直接ctrl+F(cmd+F),搜索songmid,
JSON Viewer这是「叶惠美」原版那首,拿到并复制songmid后面那串数字和英文
打开链接https://api.qq.jsososo.com/lyric?songmid=0039MnYb0qxYhV (收藏起来,其他歌替换掉songmid=后面的字符串)
ps. API的详细用法见文档
制作
知乎搜了一下就有制作LRC歌词的方法总结
为歌曲制作歌词 - 超简版85 赞同 · 12 评论文章写到这里我才发现,已经有不少前人做了这些工作了,比如lrc歌词在线编辑,就全是网易云的歌曲歌词信息,直接搜索就完了
lrc歌词在线编辑lrc.opqnext.com/至于制作成lrc后缀文件,只需要稍微排版,
把歌词复制粘贴到word中,使用「查找替换」功能,把\n字符替换成^l字符即可实现换行效果,
这是WPS,Office应该也一样换行效果最后,保存为txt文件,然后把后缀改成lrc,就可以生成lrc文件了~
总结
最后总结一下步骤
确定搜索歌曲所在的平台获取歌曲的id(网易云)或songmid(qq音乐)网易云:通过在客户端里复制链接,浏览器打开链接即可查看歌曲idqq音乐:通过搜索https://api.qq.jsososo.com/search?key=晴天 ,在返回的信息中搜索songmid关键词获取带时间轴的歌曲信息网易云:打开http://music.163.com/api/song/media?id= ,填写歌曲idqq音乐:打开 https://api.qq.jsososo.com/lyric?songmid= , 填写歌曲songmid这是我第一篇分享的文章,就以一个很简单的小案例作为起点了~
感谢收看!
再会~