Open Catofes opened 9 years ago
整个playlist json文件如下: https://paste.xinu.at/r8Lso/
还有http登陆也是醉了
wine运行网易云音乐太蛋疼了。首先你要吧gpu进程kill掉,这样不会黑屏,然后在设置里吧cpu加速关掉。基本就可以运行了,听音乐一顿一顿的超赞(貌似要替换一个dll库)。焦点不再它的时候还有下面这个问题
MUSIC_U 应该是类似于csrf_token的东西,我之前分析Android客户端API的时候也发现过,应该是反跨站攻击用的
HTTP登陆的问题在 #48 有讨论,起码我确认Android客户端是HTTPS登录的
我们现在的api.py是不保留cookie的(就是没有session), 我正在chaserhkj:cloud这个分支上面试图实现一些修改和收藏歌单的功能,现在这边分支上的api.py版本已经换成使用保留cookie的session http请求了,并且还加了个auth=True的选项用来自动往api请求里添加csrf_token/MUSIC_U,有需要可以看看 = =
以及我根本就wine不起来网易云音乐Orz, 直接崩溃退出什么的.
我这里都是抓手机客户端的包来分析API……
@chaserhkj 咋回事。。我这边ARCH默认就wine的起来啊 要不你来我这看看怎么回事?
@Catofes 我已经换Gentoo了……不知道和这个有没有关系 wine版本是 wine-1.7.38
2333 @chaserhkj 抽空见个面调调看?
学长机智地提出了面基的建议 (=゚ω゚)= 可以一试……
@Catofes @chaserhkj 你俩原来是校友啊,好基2333
另外感觉云盘这功能很鸡肋有木有?而且网易承担了一部分未知的侵权风险啊。
最重要的是,Mac 版居然没这功能😓
害我找了一圈= =
是我校的hkj? On Mar 31, 2015 11:14 PM, "Huang, Kang-Jing" notifications@github.com wrote:
以及我根本就wine不起来网易云音乐Orz, 直接崩溃退出什么的.
我这里都是抓手机客户端的包来分析API……
— Reply to this email directly or view it on GitHub https://github.com/darknessomi/musicbox/issues/56#issuecomment-88128298.
@draplater 不啊,上面两位是 PKU 的物理大神啦
看来确实是我校的……
2015-04-01 17:17 GMT+08:00 ZHANG RT notifications@github.com:
@draplater https://github.com/draplater 不啊,上面两位是 PKU 的物理大神啦
— Reply to this email directly or view it on GitHub https://github.com/darknessomi/musicbox/issues/56#issuecomment-88409002.
233~
侵权应该谈不上,比较像Google play music 可以自己上传音乐,不过也只有你自己能访问。无法分享。用处我觉得不小,一些自己收集的曲子也可以在云端用了。
不过感觉v2 api迟早会上线替换掉现行的啊。 On Apr 1, 2015 17:38, "draplater" notifications@github.com wrote:
看来确实是我校的……
2015-04-01 17:17 GMT+08:00 ZHANG RT notifications@github.com:
@draplater https://github.com/draplater 不啊,上面两位是 PKU 的物理大神啦
— Reply to this email directly or view it on GitHub https://github.com/darknessomi/musicbox/issues/56#issuecomment-88409002.
— Reply to this email directly or view it on GitHub https://github.com/darknessomi/musicbox/issues/56#issuecomment-88415486.
好久没来了~~~ @darknessomi @Catofes @chaserhkj 感谢感谢,把我改的代码没填的坑都填好啦
54cc33d 不知为何,有些歌曲的❤加不上 = =
网易云音乐客户端提供了一个叫做云盘的东西,可以手工上传曲子,并且播放。不过现在只支持客户端。不知道要不要添加到这个项目里。如图: 图中的Mirai Miracle 就是手工上传的曲子。这个在网页版的api中得不到相关的信息。
用Anyproxy分析了一下PC端的api,大概有以下的结果:
原来api是 http://music.163.com/api/playlist/detail?id=30391223&offset=0&total=true&limit=1001&csrf_token=358c82d006c539e72c6f68583a95ceb9
测试发现新的api变成了 http://music.163.com/api/v2/playlist/detail?id=30391223&offset=0&total=true&limit=1001&csrf_token=358c82d006c539e72c6f68583a95ceb9
当携带Cookie
的时候即可得到结果。测试得到只有携带os=pc 的cookie就可以返回不含云网盘数据的playlist, 也就是等同于现在的api,不过具体的参数以及定义都有所改变。如果想要得到云网盘的数据,需要携带MUSIC_U参数。这个参数还不知道时怎么得到的。貌似正常网页版登陆后也会有这个参数。
然后返回的数据大概如下,做了json的解析:
做了一定的删减,所以数据不完全。可以看出新版本api(毕竟有v2的标识)对于普通曲子的返回结果也变了,直接返回了多个品质的曲子,对应的不同的mp3文件。然后也包涵了自己上传的曲子的相关信息。
重要的有两个信息,一个应该是曲子的id: "id": 29881275, 一个我猜是用户uid "uid": 37734080,
访问 http://music.163.com/api/cloud/media/url?id=29881275&uid=37734080&quality=h
既可以得到对应的曲子地址。这个Cookie 只需要 os=pc 这一个存在即可 {"url":"http://m3.music.126.net/20150331230203/a053fee8eb3543bc430d356caffbb1e7/NTMxMzgxODA=/d251a331521f3cfa7618c67ad1c5a54f.mp3","bitrate":320000,"size":8776247,"code":200}
得到的链接应该就是播放链接。
至于本身是网易云的音乐文件,重要的参数是: "h": { "br": 320000, "fid": 7852712045676580, "size": 8062179, "vd": -2.36 }, 里面的fid。
随后pc会请求
/2LrzOopZvDTHbpM-LJm86w==/7852712045676588.mp3?v=17509840 (这是另一个曲子的链接,和另外一个曲子的fid对应,原来曲子的连接地址被我刷掉了。)测试了一下前面的字符串和现行api.py里面的encrypted_id(id)函数返回的是一样的。