因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式

您所在的位置:网站首页 网易云格式转换后NP3拖到手机里面就不见了 因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式

因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式

#因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式| 来源: 网络整理| 查看: 265

目录

前言

一、appleMusic支持的音频格式有什么?

二、在CSDN上寻求帮助并加入自己的想法

1.找大神的现成代码

2.因为我突然想找点其他新鲜的(有没有小白用的exe)哈哈哈

3.发现如果不用大佬的py代码的话,有了flac格式怎么转换

        1.单个文件转换MP3方法:

        2.单个文件夹下的所有flac转换为MP3 

        3. 因为中间测试,好多文件都有重复,所以找了一个大佬的去重代码

        4. 又因为中间测试,好多文件都乱套了,所以就写了一个分类的方法

总结

前言

        出于想从网易云转换成appleMusic的user,发现网易云下载下来的文件格式都是ncm的,问题来了,无法导入到appleMusic,然后就有了后面的故事。。。。

一、appleMusic支持的音频格式有什么?

        AAC、Apple 保真压缩(ALAC)、MP3 及其他。很明显最常见的就是MP3,所以我就开始想办法转换格式为MP3

二、在CSDN上寻求帮助并加入自己的想法 1.找大神的现成代码

        经过不懈的努力终于找到一位大佬的代码!(你是俺哥)

传送门哈哈哈哈

2.因为我突然想找点其他新鲜的(有没有小白用的exe)哈哈哈

        找了好久发现,(1)ncm转flac或者MP3.exe;

(2)免费的ncm转MP3.exe(大佬下面灰色说明里有链接)

 

3.发现如果不用大佬的py代码的话,有了flac格式怎么转换

        1.单个文件转换MP3方法: # 单个文件转换 def file_transform(filepath): if '.flac' in filepath:#识别是不是flac格式文件 song = AudioSegment.from_file(filepath)#flac转MP3转换后存在song变量里 filepath_new = filepath.replace('.flac', '.mp3')#为下一句输出本地改目录文件后缀名 song.export(filepath_new, format="mp3")#存于本地,格式是MP3 if os.path.exists(filepath_new):#在本地查找是否存在刚存于本地的文件,有的也就成功了, # 没有的话,看一下输出地址是不是有问题 print('file completed!') else: print('failed!')

        2.单个文件夹下的所有flac转换为MP3 

         我用的函数嵌套,filepath是完整的路径+文件名, disfilepath只需要你想要的目标路径,自认为这段代码的优点是避免重复劳动(筛选出目的文件夹里没有的文件,再对这些文件转换)

# 一个文件夹下所有flac格式文件批量转换成MP3 def folder_all(filepath,disfilepath): sum = 0 # 用于计数需要转换的总任务量 count = 0 #已经进行的任务数 success=0# 用于计数转换成功的个数 failnum = 0 # 转换失败的个数 name_file_fail = []#存放失败的文件名 # 转化函数方法 def flac2mp3(filepath, name, after_filepathName, success, failnum,name_file_fail): name_new = name.replace('.flac', '.mp3')#更改转换后的文件后缀名 file_namepath_before = os.path.join(filepath, name)#拼接转换前文件的路径和文件名 song = AudioSegment.from_file(file_namepath_before)#老样子转换 song.export(after_filepathName, format="mp3")#导出到本地 if os.path.exists(after_filepathName):#存在,成功数+1 success +=1 else: failnum+=1 name_file_fail.append(name)#否则,失败数+1,并加入失败列表 filenames = os.listdir(filepath)#获取文件夹下所有文件的名字(包含后缀名) """ 先计算总共需要转换多少个文件,防止重复转换,毕竟批量处理需要的时间也不短 用于转换时知道转换总进度的进展。我一开始觉得这段循环无所谓,但是当我转换 300多个文件时,发现,这真他妈香!!! """ for filename in filenames:#遍历每个文件名 if '.flac' in filename:#如果文件名后缀为.flac,则进入一下循环体 after_filename= filename.replace('.flac', '.mp3')#更改原文件的后缀名为.mp3 after_filepathName= os.path.join(disfilepath, after_filename)#再把目标文件路径和改后的文件名组合拼接起来 if os.path.exists(after_filepathName):#核查你的目的文件夹里是否存在这个文件mp3格式的文件存在 pass else: sum += 1#不存在那就总任务量+1 for filename in filenames:#遍历每个文件名 if '.flac' in filename:#如果文件名后缀为.flac,则进入一下循环体 after_filename= filename.replace('.flac', '.mp3')#更改原文件的后缀名为.mp3 after_filepathName= os.path.join(filepath, after_filename)#再把文件路径和改后的文件名组合拼接起来 if os.path.exists(after_filepathName):#如果存在则跳过,进行下一个 continue else: flac2mp3(filepath, filename, after_filepathName, success, failnum, name_file_fail)#不存在则调用flac2mp3方法;初始文件路径,文件名, # 目的文件路径(包含文件名),成功数,失败数,失败的数组 这5个参数给它踢过去 count += 1 f = count / sum * 100#计算任务进度 print('进度{}%'.format('%.2f' % f))#输出是保留小数点后2位(四舍五入) else: continue#如果文件名后缀不是.flac,则进行下一个文件 print('文件夹下共{}个'.format(len(filenames)))#报告这个文件夹下所有文件数 print('总任务数:{}个'.format(sum))#报告总任务数 print('转换全部完成') print('共转换成功{}个'.format(success)) if failnum !=0: #如果有失败的,就输出失败数量,及失败名单 print('失败{}个'.format(failnum)) ';'.join(name_file_fail)

        3. 因为中间测试,好多文件都有重复,所以找了一个大佬的去重代码

传送门哈啊哈

        4. 又因为中间测试,好多文件都乱套了,所以就写了一个分类的方法 #筛选flac和MP3文件归类到各自文件夹 def file_sift(filepath, disfilepath1, disfilepath2):#参数:想要分类的文件夹,目的文件路径1,目的文件路径2 filenames = os.listdir(filepath) for filename in filenames:#获取所有文件名 if '.flac' in filename: shutil.move(os.path.join(filepath,filename), os.path.join(disfilepath1,filename))#组合路径和文件名,后移动 elif '.mp3' in filename: shutil.move(os.path.join(filepath,filename), os.path.join(disfilepath2,filename)) else: continue 总结

        对于网易云的操作能理解,毕竟里面有版权而且也要锁住用户。搬砖人搬砖魂,一切源于好奇,和对python的强烈的兴趣。如果对你有用,那是我的荣幸之至;如果没啥用,我就只是哈哈哈哈啊哈哈,分享一下我解决我实现想法难题的过程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3