探讨用python将uc缓存转换为MP3的可能性 |
您所在的位置:网站首页 › uc!格式 › 探讨用python将uc缓存转换为MP3的可能性 |
探讨 Python网易云音乐uc转MP3: 将网易云音乐pc版本地Cache文件夹里的缓存uc文件转换成可正常播放的mp3文件。 一、实现步骤1.cache文件夹1D:\CloudMusic\cache 2.获取uc文件打开网易云音乐pc版,在线播放一曲,获取该歌曲的uc文件 1D:\CloudMusic\cache\1357399743-320-8898af3182e7672da8c20394b6ad2a97.uc为了方便操作,将缓存文件名更改一下 1D:\CloudMusic\cache\cache.uc 3.下载mp3文件下载uc文件对应的mp3文件 (有16进制编辑器的朋友可以使用编辑器打开uc文件,如010Editor,可以直接看到16进制文件、二进制文件的内容 ) 4.2.2 编写程序对uc进行查看123456789101112131415# _*_ coding:utf-8 _*_from pprint import pprintuc_name = 'cache.uc'with open(uc_name, 'rb') as uc_obj: # 可以用pprint在run界面查看 pprint(uc_obj.read()) # 为了方便查看,保存成文本 # uc_txt_name = 'cache_file.txt' # with open(uc_txt_name, 'wt') as uc_text: # content = str(uc_obj.read()) # # 写入内容 # uc_text.write(content) # print('cache text done!')cache_file.txt 1b'\xea\xe7\x90\xa0\xa3\xa3\xa3\xa3\xa3\x80\xf7\xf0\xf0\xe6\xa3\xa3\xa3\xac\xa3\xa3\xa3\xef\xc2\xd5\xc5\x96\x94\x8d\x94\x92\x8d\x92\x93\x93\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\\XC\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xea\xcd\xc5\xcc\xa3\xa3\xa3\xac\xa3\xa3\x81\xbf\xa3我们发现一个很明显的特点——最多的数据是A3,所以可以推测A3就是加密过后的无意义字符0 一般来说音频的加密方式不会太复杂, 而最简单的异或加密, 且异或加密是可逆的,我们可以逆运算得到加密前的音乐mp3文件 所以只要选中所有的数据,将其每个字节进行二进制异或运算,应该就可以得到加密前的音乐。 1byte ^= 0xa3解密完成之后字符变得有意义。前三个字节是ID3,这个是MP3文件格式的头部(看2.1的图) 5. 编写python程序(因为希望用最简洁最少的代码编写,所以不考虑效率、优化、命名等) 123456789101112131415161718192021222324# _*_ coding:utf-8 _*_# uc文件路径+文件名uc_name = 'cache.uc'# mp3文件路径+文件名mp3_name = 'music.mp3'# 打开uc_name指向的uc文件,并赋值给文件对象uc_filewith open(uc_name, 'rb') as uc_file: # 打开(新建)mp3_name指向的mp3文件,并赋值给文件对象mp3_file with open(mp3_name, 'wb') as mp3_file: # 读取uc_file的二进制内容,保存到uc_content uc_content = uc_file.read() # 新建一个空的字节类型赋值给mp3_content,用以保存转换后的uc_content mp3_content = bytearray() # 将从uc_content中读取到的字节数据逐个进行0xa3异或运算 for byte in uc_content: byte ^= 0xa3 # 异或之后,添加该字节到mp3_content mp3_content.append(byte) # 将mp3_content里的数据写入到mp3_file指向的文件中 mp3_file.write(mp3_content) # 写入完成时 print('uc file transform to mp3 file, done!')运算过后的文件music.mp3,真就可以正常播放! 项目gitee地址 Python网易云音乐uc转MP3: 将网易云音乐pc版本地Cache文件夹里的缓存uc文件转换成可正常播放的mp3文件 体会: - 经过这次探讨,想了解的事情又多几点: 音频二进制编码是如何编码的 对二进制文件加密有几种方法 视频又是如何缓存的?如何解密?参考: 1.网易云音乐.uc格式的缓存文件转.mp3 2.三步教你手动破解网易云音乐加密 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |