百度网盘音乐外链源码
一、使用方法
复制下面的php代码,另存为文件baidupan.php
,然后放到网站根目录。
baidupan.php1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <?php
$uri = $_SERVER["REQUEST_URI"]; preg_match('|\/(\d+)\/(\d+)\.|', $uri, $res); if ($res) { list($shareid, $uk) = array_slice($res, 1, 2); $url = "http://pan.baidu.com/share/link?shareid=$shareid&uk=$uk"; } else { preg_match('|\/.+\/(\w+)\.|', $uri, $res); $url = "http://pan.baidu.com/s/".$res[1]; }
$src = curl_get_contents($url); preg_match('|http://.+file.+sign[^"]+|', $src, $res); $songurl = html_entity_decode($res[0]); header("location:$songurl");
function curl_get_contents($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_USERAGENT, "Iphone"); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $src = curl_exec($curl); curl_close($curl); return $src; } ?>
|
二、获取网盘分享链接
上传音乐到百度网盘,分享并创建公开链接。
三、构造外链地址
例如音乐《神木村》的公开分享地址是:
http://pan.baidu.com/share/link?shareid=785331966&uk=1562437020
则外链地址为:
http://www.poboke.com/baidupan.php/785331966/1562437020.mp3
百度网盘新版的分享地址为:
http://pan.baidu.com/s/1zeurs
则外链地址为:
http://www.poboke.com/baidupan.php/1zeurs.mp3
四、自动转换外链
下面是自动转换外链的代码,另存为html文件后用浏览器打开:
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 26 27 28 29
| <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8"> <title>百度音乐外链转换——破博客</title> </head> <script type="text/javascript">
function Change() { var filepath = "http://" + window.location.host + "/baidupan.php/"; var url = document.getElementById("text1").value; if (url.indexOf("?") > 0) { eval(url.split("?").pop().replace("&", ";")); var songurl = filepath + shareid + "/" + uk + ".mp3"; } else { var key = url.split("&")[0].split("/").pop(); var songurl = filepath + key + ".mp3"; } document.getElementById("text2").value = songurl; } </script> <body> 分享地址:<input id="text1" type="TEXT" value="" size="100"/><br /> 外链地址:<input id="text2" type="TEXT" value="" size="100"/><br /> <input type="BUTTON" value="转换" onclick="Change()"/> </body> </html>
|
五、防止盗链的方法
1、加密shareid
和uk
的值,例如可以把数字加密为英文字母,在baidupan.php
中再解密。
2、如果只想让自己帐号里的歌曲可以外链,可以判断uk
的值。
因为每个百度帐号的uk
的值都是不同的,比如我的帐号是1562437020
,所以可以在baidupan.php
第6行后加入判断,如果传进来的uk
值不等于自己帐号的uk
值就退出:
1 2 3
| if ($uk != "1562437020") { exit(0); }
|
3、百度网盘更新分享地址后,分享地址里面没有uk
值了,可以用两种方法解决。
(1)在baidupan.php
文件中获取源码,然后匹配出源码里面的uk
值。
(2)把新的分享地址转换为旧的分享地址,比如新的地址是:http://pan.baidu.com/s/1zeurs,
先获取网页源码,可以看到网页源码里面有一段代码为:
1
| FileUtils.share_uk="1562437020";FileUtils.share_id="785331966";
|
这就是uk和shareid的值了,拼成旧分享地址后可以正常访问,地址为:
http://pan.baidu.com/share/link?shareid=785331966&uk=1562437020
六、其它问题
问:播放音乐会不会消耗空间流量?
答:播放一次音乐会消耗一次访问百度网盘网页的流量,大概6Kb。