/Ncm2Music

a tool to convent ncm,qmc0,qmc3,qmcflac file to Music file and add it's tags and picture

Primary LanguagePython

Netease Cloud Music And QQMusic Copyright Protection File Dump (Python version)

注意: 建议使用新的经过重构的Go语言版本,功能支持解密ncm与QQ音乐部分文件,优化了数倍的速度,增加了多线程运行的功能,使用体验远超此项目。同时此项目永久停更

点击前往新替代项目NqdumpGO

简介

Python版本解密网易云音乐加密音乐文件和QQ音乐加密音乐文件,根据Github大神们分析的解密原理再开发而来,加了很多实用功能,比如给网易云的音乐文件嵌入歌曲tags和封面图片,下载歌词啥的。

投稿了使用教程在B站上的: https://www.bilibili.com/video/av59847987/ 仅网易云的音乐文件正常内嵌图片和写入歌曲信息,这是因为QQ音乐的文件里不包含歌曲封面信息 一个在Win10上编译好的版本(使用源码和编译时间: 2020.05.10) : https://lanzous.com/ich1mli

安装

依赖 pycrypto库

使用pip install -i https://pypi.douban.com/simple pycryptodome mutagen pillow requests urllib3来安装依赖库

使用方法:

直接将Ncm2Music.py复制到有对应被加密的音乐文件的文件夹里运行即可。

您可以将NCM文件任意更名,就算更名也能输出正常的音乐文件歌手和歌曲名,因为这些数据被保存在ncm文件内了

推荐在转换前将ncm文件全部更名为1.ncm,2.ncm,3.ncm.....这样可以防止因文件名内含有特殊字符导致的转换出错!这样改名并没有害处!

QQ音乐文件重命名程序可能会失败,请酌情重命名QQ音乐的加密音乐文件!

高端操作
<<<<<<< HEAD

开一个Ncm2Muaic线程只能占用1个CPU核心的50%,将主程序(Ncm2Music.py)的第12行的变量AllTheardNumber的值更改为(CPU核心数 - 1)*2,速度最快!!!

=======

文件列表:

-----Ncm2Music.py 程序主体,使用pyinstaller编译出来使用更方便,必须使用版本大于3.3的pyinstaller编译,否则多进程模块会出问题。主程序仅运行于python3中

-----SongList_LRC_Getter.py 获取一个网易云音乐歌单里所有歌曲的歌词,可以单独使用来获取歌词,普通歌词保存为lrc翻译歌词保存为tlc

-----Song_LRC_Tlyric_copy.py 合并lyric和tlyric文件的脚本,用于旧版Ncm2Music生成的文件合并

-----SongFilesLRC_Get.py 可以为目录下所有没有歌词的歌曲下载歌词的脚本,放在歌曲目录下运行就好了,自动合并中外文歌词。(歌词来源:网易云音乐)

-----qmc.py 是解密QQ音乐的函数,单独放在一个脚本方便其他人查阅

-----README.md 说明文件

编译使用命令: pyinstaller -F Ncm2Music.py -n "Ncm2Music" --clean

copyright 2020-2021 KGDSAVE SOFTWARE STUDIO - CRMMC

更新日志

2018.10.12
第一次更新---项目出生的日子,完成了程序主体和主要功能加入
2018.10.20
第二次更新---加入了下载中外文歌词,修复了flac文件无法内嵌歌曲图片的bug,添加了获取整个歌单的歌词的脚本,重新优化了界面,修复了无法在python3中运行的bug
2018.12.1
第三次更新---修复了在windows上由于编码不同导致的部分文件转换失败的bug,删除引用了部分无用库。加入错误文件日志功能,更方便找到错误文件。
2019.1.2
第四次更新---修复了在winxp上由于python2函数原因导致程序无法运行的bug,加入了将转换出错文件归类到文件夹方便再次转换的功能,进一步修复无法在winxp上使用python2转换文件的bug,再祝大家新年快乐/开心
2019.1.6
第五次更新---加入了合并歌词的功能,能将外语歌词和原版歌词合并到一个lrc文件
2019.4.13
第6次更新---主程序加入多线程功能,并行转换效率提高,建议线程数=(CPU核心数 - 1) * 2,效率最高!
2019.7.18
第7次更新---重大更新!!在了解到Python有GIL(全局资源锁)机制后,立马寻找解决方法。重构部分代码,现在是真正的并行转换了,能充分利用好每个CPU核心,大幅度加快转换速度!!!无敌的存在!
2019.7.19
第8次更新---删除了项目里没用的文件,所有脚本更新迁移至Python3
2019.8.7
第9次更新---增加了SongFilesLRC_Get.py,优化了一些脚本里的操作。
2019.12.28
第10次更新---修复了不能获取歌词的bug,修复了歌曲图片格式判断的bug
2020.5.1
第11次更新---增加了转换qmc0,qmc3,qmflac文件的功能,现在也可以转换QQ音乐文件了