保存云音乐

保存云音乐

二月 17, 2019 阅读 174 字数 1624 评论 1 喜欢 0

这个工程工作量不多,字符匹配挺多的,就采用c来写了
前往GitHub

程序流程

读取歌单,查找是否本地已下载的音乐,若果不是,则读取缓存的音乐,异或后保存到指定文件夹

Mac中对应文件的位置

日志缓存位置
/Users/xxx/Library/Containers/com.netease.163music/Data/Library/Caches/online_play_cache/
音乐缓存位置
/Users/xxx/Library/Containers/com.netease.163music/Data/Documents/storage/Logs/

音乐的加密方式

异或 0xa3,0xa3换为二进制是1010 0011,它的十进制数是163
一个数异或同一个数两次得到这个数本身

匹配歌单的过程

举个例子:
歌单长这样:(这里可以获取到歌曲的信息)

{“playid”:”31134451_1_710563″,”volumeDelta”:-5.33,”songName”:”心做し”,”albumName”:”心做し”,”artistName”:”まじ娘”,”albumId”:”album3112341″,

“url”:”http://p3.music.126.net/CJ7olt52TMdqvamN7EhkIQ==/7735064301958473.jpg”,

“starttime”:0,”duration”:274.024,”bitrate”:320,”playbrt”:320,”type”:4,

“md5″:”a2df4077da5c5187840ba934c449396d”,

“format”:”mp3″,”songId”:”31134451″,”fileSize”:10963112,

“musicurl”:”http://m8c.music.126.net/20181006013039/3d8f4e2473eb438a9b9f84ab7337908f

/ymusic/5679/35e1/4a37/a2df4077da5c5187840ba934c449396d.mp3″,

“songType”:”normal”}

`
缓存长这样: 31134451-_-320–_a2df4077da5c5187840ba934c449396d.uc!
知道缓存名字的构成就慢慢凑字段了

避免重复下载

如果已经下载了一部分了,再次执行的时候会跳过已经转换的那些歌曲
如果已经在本地下载过了,歌单长这样:(会有file这个key,通过这个key来避免下载正常下载过的歌曲)
{"playid":"33522489_1_710563","volumeDelta":0,"songName":"Summer Vibe (Pegato Remix)",

"albumName":" Summer Vibe (Pegato Remix)","artistName":"Pegato/Walk off the Earth","albumId":"album3222204",

"url":"http://p4.music.126.net/Va_olgI_wJlGIgwu57abug==/7935175419222495.jpg",

"starttime":0,"duration":213.449,"bitrate":320,"playbrt":320,"type":0,

"file":"/Users/Lanquanshan/Music/iTunes/iTunes Media/Music/Pegato_Walk off the Earth/_Summer Vibe (Pegato Remix)/Summer Vibe (Pegato Remix).mp3",

"songType":"normal"}
然后就是一堆匹配的过程了

TODO

加入封面等信息
如果有什么bug,欢迎联系

如果是windowns的,自己找找路径替换下,重新编译也一样可以用的

评论列表

  1. Your style is really unique compared to other people I
    have read stuff from. I appreciate you for posting when you have the opportunity, Guess I’ll just book mark
    this site. http://oncetech.com/__media__/js/netsoltrademark.php?d=elkds.com%2F__media__%2Fjs%2Fnetsoltrademark.php%3Fd%3Dmy272709.panpages.my

发表评论

电子邮件地址不会被公开。