前段时间帮朋友下歌放在车上听..结果好多都是ncm格式,伤心 ,搜索了下发现基本上这格式解密有好多昂,可惜UI我都不太想要..决定抄一下,自己做一个。 这里先记录下核心代码,回头补充个UI 做个小程序。
ncm是啥
ncm 是网易云音乐的音乐容器格式,并非是音乐格式,文件内带有meta cover audio 等信息,所以我们需要根据对应的加密算法,解密回来转成mp3 内容进行播放。
这个解密很多人都已经实现了,可惜要么是python
要么是c
要么是go
,有一个js实现的结果是浏览器的,当然浏览器跟nodejs
也没啥差别,不过写代码的意义就在于折腾嘛,准备做个nodejs
版本的,顺便再加个electron
的界面。
ncm 格式
借用下大神的图,现有的格式内容
ncm解密
由于所有的ncm的密钥都是相同的,所以这里就直接写死就可以了,如果不同..那就没办法了,可能更新了或有了其他的处理。出现的话就只能等待大神给密钥了。
直接上代码,注释都有记录的
const filePath = 'd:/nodejs/toy/网易云NCM2MP3/2.ncm';