NCM转MP3-python

#感谢@小何爱编程2024分享的NCM格式转MP3代码。
#对此我做出了一些改进

运行后第一个选择框为保存地址的选择(选择文件夹)
第二个选择框为选择要进行格式转化的文件(请选择ncm格式)

from ncmdump import NeteaseCloudMusicFile
import os
from tkinter import filedialog

class NCM2MP3:
    def __init__(self):
        self.save_dir = filedialog.askdirectory()  # 选择保存地址
        self.files = filedialog.askopenfilenames()  # 选择要操作的文件,可多选
        self.cz()

    def cz(self):
        for file in self.files:  # 循环拿到单个文件的路径
            try:
                mp3_name = self.get_filename(file)  # 通过get_filename方法得到mp3格式的文件名称
                new_save_path = self.save_dir + '/' +mp3_name  # 得到保存地址
                ncmfile = NeteaseCloudMusicFile(file)
                ncmfile.decrypt()
                print(ncmfile.music_metadata)  # show music metadata
                ncmfile.dump_music(new_save_path)  # auto detect correct suffix
            except:
                print(f'出现错误   {file}')

    def get_filename(self,filepath:str):
        name = ''

        qiege_filepath = filepath.split('/') 
        for i in qiege_filepath:
            if '.ncm' in i:
                name = i
                break
        mp3name = name.replace('.ncm','.mp3')
        return mp3name

if __name__ == '__main__':
    NCM2MP3()

可以使用以下两种方法实现使用Pythonncm文件换为mp3文件。 ### 单个文件换 创建一个`convert_ncm.py`文件,输入以下代码,若只换单个ncm文件,需将导入文件和输出文件中的`filename`改成相应的音乐名: ```python from ncmdump import NeteaseCloudMusicFile ncmfile = NeteaseCloudMusicFile("filename.ncm") ncmfile.decrypt() print(ncmfile.music_metadata) # show music metadata ncmfile.dump_music("filename.mp3") # auto detect correct suffix # Maybe you also need dump metadata or cover image # ncmfile.dump_metadata("filename.json") # ncmfile.dump_cover("filename.jpeg") ``` 此方法借助`ncmdump`库对单个ncm文件进行解密,并将其换为mp3文件,同时还能选择导出音乐的元数据和封面图片[^1]。 ### 批量文件换 将脚本命名为`convert_ncm_to_mp3_script.py`并放置在`convert_ncm_to_mp3`文件夹下: ```python import argparse import os import convert_ncm_to_mp3 as convert if __name__ == '__main__': # 创建参数解析器 parser = argparse.ArgumentParser(description='Process input and output files.') # 添加输入文件路径参数 parser.add_argument('input', help='Input file path.') # 添加输出文件路径参数 parser.add_argument('output', help='Output file path.') # 解析命令行参数 args = parser.parse_args() # 获取输入文件路径和输出文件路径 input_path = args.input output_path = args.output # 确保输出文件所在的目录存在 os.makedirs(os.path.dirname(output_path), exist_ok=True) convert.run(input_path, output_path) ``` 该方法可实现批量将ncm文件换为mp3文件,通过命令行参数指定输入文件路径和输出文件路径,同时保证输出目录存在[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值