listen 1 下载歌单方案
打开listen1 Chrome Extension,添加需要下载的歌曲到当前播放列表 ;
F12打开控制台,复制黏贴以下JS代码后回车开始;
批量下载可以在Chrome下载设置里关闭下载前询问每个文件的保存位置,并设置好保存位置,避免每次选择位置;
// 下载函数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);
})}// 设置文件名:歌曲名_歌手.mp3function 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)}