[有料组每日学习分享计划--00087]32行代码帮你导出IOS酷我音乐下载的无损音乐
需求与研究:
1.IOS的酷我音乐软件,还是不错滴,可以直接下载APE或是320K的MP3音乐,但是我发现PC上的酷我反而没这个功能,而且其他的音乐软件一般只能下载中低品质的音乐。所以能够从IOS中找到一个方法把它下载的东西导出来还是很有必要的。
2.在手机上下载一些无损音乐后将手机联机到PC,用PP助手或是itools等辅助工具能够打开酷我的文件目录。发现里面有一个music目录,里面的文件名都是纯数字地。我想iphone下载来马上转码肯定没那个速度,就算能转,估计现在也没有更好的格式可以保存音乐,尝试把这些文件直接拉倒PC上改名,恩,果然可以使用。但是问题是你不知道那个文件是什么音乐,那个应该是MP3那个应该是ape?这一个听过来肯定不是办法。
3.网上搜索了一下,真有个哥们捣鼓出一个工具,不过每次使用还要访问一下他的博客,他用vb写的,编译成了一个EXE放在网上供大家下载,估计得到了不少的认可,至少访问量已经上去了。但是他没公布是如何做到的。
4.对于IT宅来说,我猜应该不会很难,那个软件提示一定要把cloud.db文件也复制到pc,我用一文本编辑器打开看看是什么东西。哦,有戏,原来是sqlite数据文件啊。如果不是看到他写cloud.db那么我还是要做些分析工作,比如一个个打开每一个文件之类的,肯定能找到,但是他写了我就容易些,也要致敬一下。
5.打开来看看就非常容易了,这个数据库中有一个MusicResource表,其中存放了歌曲的全部信息,类型、封面地址、试听地址、存放的文件名啥的都有,这就非常easy了,读出来,把Music目录里的文件的文件名改名到数据库里的名称就可以了。
技术:
1.sqlite访问方法。
2.python基本的文件操作,主要是目录列表文件和改文件名,都是比较简单的。
实现:
1.用PP助手把cloud.db和music目录复制到硬盘的某个目录。
2.在跟cloud.db平级的目录里编写一个小程序,算上空行和注释一共才32行。源代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # encoding: utf-8 __author__ = 'jy@cjlu.edu.cn' import sqlite3 import os conn = sqlite3.connect( "cloud.db" ) def GetNewFilename(filename): cu = conn.cursor() cu.execute( "select artist,title,album,file,format from musicResource where file='%s'" % filename) r = cu.fetchone() if r is not None : artist,title,album,filename, format = r newfilename = "[%s-%s]-%s.%s" % (artist,album,title, format ) return newfilename.replace( "&" ," ").replace(" : "," ").replace(" / "," ") def ConvertFiles(path): if not os.path.exists(path): exit() pl = os.listdir(path) for file in pl: #如果不是目录就移动 #计算新文件名 if os.path.isfile(os.path.join(path, file )): newfilename = GetNewFilename( file ) print os.path.join(path, file ), "-->" ,os.path.join(path,newfilename) os.rename(os.path.join(path, file ),os.path.join(path,newfilename)) if __name__ = = "__main__" : ConvertFiles( "D:\projecting\Kuwo\Music" ) conn.close() |
运行效果:
1.KAKA,估计有版权风险,我就不放图片了;
2.速度超级快,一下子就好了,技术上成本接近与0,会python的都能写出来,娱乐一下。
有时候专注也能让人幸福,游戏读书莫不如此,专注之人必有动人之处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端