之前由于个人的需求依据歌词生成 ass 字幕文件,使用了 phantomjs 的框架当作爬虫用去扒网易云音乐播放页的数据,结果发现框架并没有截取资源文件 http-body 的接口。
于是用各种奇巧淫技去拿歌词和歌曲信息 (具体可以看这个版本), 最终发现一个歌词需要五六秒的时间去下载。
这不能忍受啊。
本来打算偷懒用框架去解决问题的,结果体验更加糟糕了。于是在 chrome 中调试前端代码来把网易云音乐 webapi 接口参数加密方式提取出来了,直接请求 webapi。
顺便还把 qq 音乐的 webapi 接口封装了下,根本没有加密,财大气粗。
项目 Github 地址: https://github.com/frimin/lyric-dl
安装 npm 之后可用命令安装:
npm install lyric-dl -g
下载搜索结果的第一个歌词:
lyric-dl search <name> --url | sed 1q | lyric-dl dl -
或者:
lyric-dl search <name> --range 0,1 --url | lyric-dl dl -