1、之前是从http://music.baidu.com/ 入手的,现在发现从此处入手已经找不到方法了。由于我又不是太懂JS语法,于是用了几十分钟,没分析到地址放弃。
2、灵光一闪,从http://fm.baidu.com/ 入手,在Chrome下抓包,细心分析后,果然发现蜘丝马迹,如下图所示:
见左图那个灰色的链接,我们打开[链接](http://music.baidu.com/data/music/fmlink?songIds=1181294,291890,620023,7329389,448152,7325038,2119209,309877, 7331713,2121730&type=mp3&rate=320&callback=jQuery1102037159983557648957_1407590773561&_=1407590773570 “百度无损音乐下载方法”)看下,嘿,发现了许多歌曲信息哦,如下图所示:
由于是FM,所以songIDs有一大串,咱们试试构造下,以黑蝙蝠中队为例,其有三种音乐格式,第一种是可以直接下载的,第二三种是收费的:
我们构造下不同格式的音乐试试看,以无损音乐flac格式和921kbps为例:
构造的链接为:[http://music.baidu.com/data/music/fmlink?songIds=966991&type=flac&rate=921](http://music.baidu.com/data/music/fmlink? songIds=966991&type=mp3&rate=921)
将songLink后的地址格式化为正常网页地址,如下所示:
http://yinyueshiting.baidu.com/data2/music/33809115/966991111600921.flac?xcode=a6ed00d30421e9bebbbef0f52f4938299d0fba1db032ff5f
下载下,发现可以正常下载,28.8M,flac格式的无损音乐。
所以,超高/无损音乐下载方法就是:
将此链接的:
[http://music.baidu.com/data/music/fmlink?songIds=966991&type=flac&rate=921](http://music.baidu.com/data/music/fmlink?songIds=966991& type=flac&rate=921 “百度无损音乐下载方法教程”)
songIds、type、rate改完你想下载的音乐就可以了。
如果只想下载无损音乐flac格式的(前提条件是百度下载里包含无损格式),这样就可以了,只需要更改歌曲songIds。
http://music.baidu.com/data/music/fmlink?songIds=966991&type=flac
用了2-3天时间,学了下前端开发方面的基础知识,没怎么看教程,就是想实现某些功能或者遇到问题就去搜索解决,遇到了一些坑,但是收获也挺大的,于是随手写了个Chrome插件,可用来下载百度无损音乐的,比较简单,原理如上。
程序地址
使用方法
本插件支持Chrome浏览器和UC桌面浏览器,其他Webkit内核的浏览器应该也支持,但是我没做测试。
Linux系统下安装方法
Linux下直接下载此插件,之后解压后,在BDMusicDownloader文件夹下发现一个src.crx文件,将其拖入到Chrome浏览器-设置-扩展程序界面即可,当打开如以 http://music.baidu.com/song/ 开头的链接时,即下载音乐地址,会自动弹出插件,点击下载即可。如图所示:
Windows下安装方法
从程序地址里下载安装插件,解压文件夹,注意,因为Chrome在Win下的安全限制,所以此文件夹不能删除,之后同上所示,但不是拖入src.crx文件,而是选中开发者模式-加载正在开发的插件-BDMusicDownloader,之后选中src文件,打开即可。如图以UC桌面浏览器为例:
说句题外话,UC桌面浏览器真的还蛮好用的,支持Chrome插件(废话,使用的都是同一个内核),但是自带科学上网,打开Github速度就挺快的,推荐使用。
需要改进的地方
因为我前端经验太少,所以一些小细节没处理好,比如当音乐名字太长时,样式就比较难看了。因我忙着在回家前要把孙钟秀的《操作系统教程》读完,并且之前部门给我的入职前作业我还没完成,所以不打算再做太多修改了,感兴趣的东西可以帮忙修改下。
源码地址
https://github.com/armsword/BDMusicDownloader
代码已注释,有时间和感兴趣的同学,可以帮忙优化下界面。