您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
快速免费下载百度音乐
当前为
// ==UserScript== // @name baidu-music-download // @namespace [email protected] // @description 快速免费下载百度音乐 // @author thunderhit // @include http://music.baidu.com/song/* // @grant GM_xmlhttpRequest // @version 1.07 // @run-at document-end // ==/UserScript== var bdml = function(){ var baiduid = document.cookie.substring(8, 40); var songid = location.pathname.substr(6); var ajax = function(callback,url){ GM_xmlhttpRequest({ method:"GET", url:url, onload:callback, onerror:function(e){ console.log(url); //console.log(e); //console.log(callback.toString()); } }); }; var Eajax = function(callback,url){ var xhr = new XMLHttpRequest(); xhr.open("GET",url,true); xhr.onreadystatechange = function(){ if (xhr.readyState==4){ if(xhr.status == 200){ callback(xhr.response); } } } xhr.send(null); } var collect = function(callback){ var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?"+ "method=baidu.ting.favorite.addSongFavorite&format=json&from=bmpc&version=1.0.0&version_d=9.0.4.7&&baiduid=" + baiduid + "&songId=" + songid + "&time=" + (Math.round(new Date() .getTime() / 1000)); ajax(callback,url);//ajax回来的json待处理判断 }; var iscollect = function(callback){ var url = "http://music.baidu.com/data/user/isCollect?type=song&ids=" + songid + '&r=' + Math.round(Math.random() * 1e5) + (new Date).getTime(); Eajax(function(data){ callback(JSON.parse(data).data["isCollect"]);// },url); }; var getsong = function(callback){ var url = "http://yinyueyun.baidu.com/data/cloud/download?songIds=" + songid; ajax(function(data){ callback(JSON.parse(data.responseText)); },url); }; var hasrate = function(rate,callback){ getsong(function(json){ if(rate == 999 && json.data.data["flac"]){ callback(json.data.data["flac"]["rate"],json.data.data["flac"]["format"],true); } else if(json.data.data[rate]){ callback(json.data.data[rate]["rate"],json.data.data[rate]["format"],true); } else{ callback(null,null,false); } }); } var download = function(rate,target){ hasrate(rate,function(truerate,format,ishas){ if(ishas){ var finalurl = "http://yinyueyun.baidu.com/data/cloud/downloadsongfile?songIds=" + songid + "&rate=" + truerate + "&format=" + format; location.assign(finalurl); target.click = null; target.href = finalurl; } else{ target.click = null; target.text = "无资源"; alert("没有该资源!"); } }); }; var main = function(rate,target){ iscollect(function(collect_flag){ if(collect_flag){ download(rate,target); } else{ collect(function(data){ download(rate,target); }); } }); }; var init = function(){ location.assign("javascript:(" + function(){ var button = $(".add-song-btn") .clone().attr("id","dlbutton"); $(".btn.btn-b.down-song-btn") .after(button); $("#dlbutton i") .removeClass("icon btn-icon-add").addClass("icon btn-icon-down"); $("#dlbutton .txt") .html("<font color=\"pink\">下载</font>"); $("#dlbutton .addlayer") .attr("id","dlbutton-menu"); $("#dlbutton-menu a") .remove(); $("#dlbutton-menu") .append("<a class=\"dlbutton-rate\" rate=\"128\" href=\"javascript:void(0);\">128kbps</a><a class=\"dlbutton-rate\" rate=\"192\" href=\"javascript:void(0);\">192kbps</a><a class=\"dlbutton-rate\" rate=\"320\" href=\"javascript:void(0);\">320kbps</a><a class=\"dlbutton-rate\" rate=\"999\" href=\"javascript:void(0);\">无损</a>"); button .hover(function () { $("#dlbutton-menu") .toggle(); }); } + ")();void(0);"); }; init(); setTimeout(function(){ var elements = document.getElementsByClassName("dlbutton-rate"); for(var i=0;i<elements.length;i++){ elements[i].addEventListener("click",function(event){ var rate = event.target.getAttribute("rate"); main(rate,event.target); },false); } },1024); }; bdml();