kuwo等腾讯系音乐软件更新了接口,付费音乐全都不可用,Listen1暂时已失效!
好像更新了接口,但音质大不如前。
Listen1让你用一个网页就能听到多个网站的在线音乐(现已包括网易云音乐,QQ音乐,虾米音乐,豆瓣音乐)。你可以非常的简单的访问和收听在线音乐,而不用受到单个音乐网站资源不全的限制了。
它不仅能搜索多家在线音乐提供商的资源,还能方便的整理你喜欢的音乐,制作自己的歌单。尽兴的享受音乐吧!
可能出于版权考虑,listen1 不提供下载功能,但互联网中所见即所得,本文提供一种将音乐缓存下载为mp3的解决方案,结合listen1 Chrome Extension可以批量下载音乐。
说明
- 打开listen1 Chrome Extension,添加需要下载的歌曲到
当前播放列表
; -
F12
打开控制台,复制黏贴以下JS代码后回车开始; - 批量下载可以在Chrome下载设置里关闭
下载前询问每个文件的保存位置
,并设置好保存位置
,避免每次选择位置;
JS代码
// 下载函数
function download(url, title){
axios.get(url, {responseType: "blob"})
.then(resp => {
if(resp.status !== 200) console.log('get file failed.');
else return resp.data;
})
// 用blob方式来设置下载文件名为歌曲名
.then(blob => {
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = title;
link.click();
window.URL.revokeObjectURL(link.href);
})
}
// 设置文件名:歌曲名_歌手.mp3
function get_name(idx){
let obj = threadPlayer.playlist.filter(obj=>obj.id==idx)[0]
return obj.title+'_'+obj.artist+'.mp3';
}
// 修改原播放器获取歌曲链接函数,增加获取链接时下载歌曲
threadPlayer.setMediaURI = function setMediaURI(uri, url) {
if (url) {
this._media_uri_list[url] = uri;
// 插入下载函数
download(uri, get_name(url));
}
}
// 循环播放列表所有歌,获得每首歌的地址同时触发下载
for(let i=0; i<threadPlayer.playlist.length; i++){
threadPlayer.retrieveMediaUrl(i,false)
}