使用方法
1.下载插件安装包,拖进chrome浏览器的扩展程序内,这个操作需要打开chrome的开发者模式。安装完成之后应该是这样的:
2.无需特殊设置,打开喜马拉雅网站,进入某个专辑,点击某个声音查看进入明细页面,比如:
http://www.ximalaya.com/7712455/sound/2272558
注意URL里面的sound单词,这个在后面的插件原理里面会讲
你会发现多出来两个链接“下载32kps音频” “下载64kps音频”,点击链接下载音频即可,是不是很简单…
应用图标是银河护卫队里面勇度的乐高版头像,希望以此纪念这位好父亲…
这里要注意的是
(1)下载后的文件格式为.m4a(一般的PC播放器都可以播放)
(2)32kps的音频可能只有24kps,这个是喜马的问题
(3)下载的文件名是一串乱码,最好自己改一下名字
插件原理
记得我上面说到的声音明细页面URL中的sound吗,后面跟着的数字就是这个声音在喜马拉雅上面的唯一ID。
喜马拉雅在播放声音前会请求一个URL,比如:
http://www.ximalaya.com/tracks/2272558.json
获取一个包涵音频文件实际地址的json:
1 | { |
其中的play_path_64 play_path_32 就是64kps和32kps音频的实际服务器存放地址
然后事情就简单了,在chrome插件中注入一段js,根据这个id请求到实际地址,然后添加下载的链接即可
核心代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16console.log("inject success!");
//音频Id
var track_id = $(".shareLink").attr("track_id");
console.log("track_id="+track_id);
var dataUrl = "http://www.ximalaya.com/tracks/"+track_id+".json";
$.get(dataUrl, function(result){
var href32 = result.play_path_32;
var href64 = result.play_path_64;
//增加按钮
$('.sound_bottom .fr').append("<a class='forwardBtn link1 down32' download href='"+href32+"'>下载32kps音频</a>")
.append("<a class='forwardBtn link1 down64' download href='"+href64+"'> 下载64kps音频</a>");
});
开发背景
1.用了喜马好几年了,最近的广告越来越烦人,比如“XX老道勾引小妖精”这种声音广告特别烦人,而且即使不是在线听,缓存到手机,在联通网络的情况下还是会插播广告
2.所在company封网络,ximalya.com还有music.163.com都无法打开,让在线听歌也成了问题
基于以上两点,就花了点时间写出这个插件,可以提前将喜欢的有声读物下载到电脑上或者拷入手机
希望对您的生活和学习有帮助,enjoy~