网易云NCM格式转换器

借鉴了GitHub上的ncmdump 项目代码并使用PYQT做了一个界面出来

百度云下载链接

链接:https://pan.baidu.com/s/13KX4at8jOq49DZgCc3p13A 
提取码:s5v3 
复制这段内容后打开百度网盘手机App,操作更方便哦

如果可用麻烦各位给个赞喔,或者留言一下


用java重写了一个新的ncm格式转换器2.0版本

闪退异常时能知道报错信息

能知道进度,不会一直卡着

链接:https://pan.baidu.com/s/1kh_wWprOd0FneT0H5eBKUg 
提取码:p1yw
复制这段内容后打开百度网盘手机App,操作更方便哦

 

有啥问题可以加我q(这是一个免费的学习用小软件)


 

import binascii, struct
import base64, json
import os, traceback

from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from Crypto.Util.strxor import strxor as XOR
from mutagen import mp3, flac, id3

def dump(input_path, output_path = None, skip = True):

    output_path = (lambda path, meta: os.path.splitext(path)[0] + '.' + meta['format']) if not output_path else output_path
    output_path = (lambda path, meta: path) if not callable(output_path) else output_path

    core_key = binascii.a2b_hex('687A4852416D736F356B496E62617857')
    meta_key = binascii.a2b_hex('2331346C6A6B5F215C5D2630553C2728')

    f = open(input_path, 'rb')

    # magic header
    header = f.read(8)
    assert binascii.b2a_hex(header) == b'4354454e4644414d'

    f.seek(2, 1)

    # key data
    key_length = f.read(4)
    key_length = struct.unpack(' 1024 ** 2 * 16 else 'mp3'}

    f.seek(5, 1)

    # album cover
    image_space = f.read(4)
    image_space = struct.unpack(' 1:
        files = sys.argv[1:]
    else:
        files = [name for name in os.listdir('.') if os.path.splitext(name)[-1] == '.ncm']
    
    if sys.version[0] == '2':
        files = [path.decode(sys.stdin.encoding) for path in files]

    if not files:
        print('please input file path!')
        
    for path in files:
        try:
            dump(path)
            print(os.path.split(path)[-1])
        except Exception as e:
            print(traceback.format_exc())
            pass

 

你可能感兴趣的:(资源类)