豆瓣FM音乐累计收听下载办法

最近一直苦恼与如何下载豆瓣FM上的音乐,想装入SD卡放车上听。因为数量巨大实在不想一个个去搜索选择。研究了下具体操作办法。

如果仅仅是需要下载加心歌曲话请直接移步百度搜索豆瓣匠1.3.6,直接可以帮助你下载到红心歌曲,监听http包发现他是用了安卓版的豆瓣FM的接口,这个JSON文件内直接暴露了音乐的连接地址。我特地下载了安卓版豆瓣FM发现他并没有累计收听这个记录,所以我们也无法批量获取这些MP3的原始地址。这篇文章主要讲如何帮助大家下载豆瓣FM累计收听的成千上万首歌曲。

必备工具:Firefox(火狐浏览器),FireBug(火狐的调试软件,如直接附加不成功可以手动下载后手动附加插件),E音乐盒(用来下载歌曲的软件,它有个特殊的功能,能直接批量导入歌名就帮你下载歌曲)。

1.使用火狐,打开FireBug,登录豆瓣FM,点击累计收听,查看FireBug,可以发现,当每次访问累计收听或是在累计收听内翻页会发起一个AJAX的GET去获取列表,注意看参数ck、spbid需要记录下来这个是用户相关参数,type是类型played代表的是累计收听(其他类别可以成其他的参数),start是分页参数。

1

 

2.使用jq代码批量获取歌曲名称和歌手。注意看第1行,这个是具体操作的页码我这个例子上的只获取2页。第3行则是从第几页开始获取。请将之前用FireBug获取到的用户相关参数替换成你自己的。然后复制到记事本,在重新粘帖到刚才的浏览器窗口的地址栏,回车访问,如果跳转到搜索了请检查头部的javascript:是否被浏览器删除了,如删除请手动补回再访问。

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
javascript: var tpage = 2;
javascript: var tpage = 2;
var a = [];
var page = 1;
var n = 0;
for (page = 1; page <= tpage; page++) {
    n = (page - 1) * 15;
    $.ajax({
        type: "GET",
        url: url,
        async: false,
        dataType: "json",
        success: function(json) {
            if(!json.songs){
                a.push("----第"+page+"页出错!");
            }else{
                for (var i = 0; i < json.songs.length; i++) {
                    a.push(json.songs[i].artist + " - " + json.songs[i].title);
                }
            }
        }
    });
}
document.write(a.join("<b"+"r>"));

3.将浏览器获得的内容复制到E音乐盒,并使用“批量音乐名称添加歌曲”。

2
4.在E音乐盒内可全选右键批量下载。

35.最后说明下。E音乐盒已经停止更新了,数据源只能采用谷歌的,但是部分朋友网络翻墙问题请自行解决,或可以采用本方法的逻辑去把所有累计收听加心。