在线获取外链的php源码,y.qq.com-php获取QQ音乐外链源码
作者:matrix
被圍觀: 8,000 次
發布時間:2015-05-18
分類:零零星星 |
22 條評論 ?
💡NOTICE:這是一個創建于 2123 天前的主題,其中的信息可能已經有所發展或是發生改變。
MP3接口
http://tsmusic24.tc.qq.com/{音樂ID}.mp3
http:/ /stream.qqmusic.tc.qq.com/{音樂ID}.mp3
http:/ /stream{1-30都可以}.qqmusic.qq.com/{音樂ID}.mp3
http://tsmusic128.tc.qq.com/{音樂ID+30000000}.mp3 (請計算出結果)
QQ音樂高品質ogg
http://tsmusic128.tc.qq.com/{音樂ID+40000000}.ogg (請計算出結果)
M4A接口
http://tsmusic24.tc.qq.com/{音樂ID}.m4a
http://thirdparty.gtimg.com/{音樂ID}.m4a?fromtag=38
http://thirdparty.gtimg.com/C100{音樂MID}.m4a?fromtag=38
http://cc.stream.qqmusic.qq.com/C200{音樂MID}.m4a?vkey={VKEY的值}&guid=1830679348
過程
示例獲取單曲頁面的MP3或M4A文件鏈接
http://y.QQ.com/#type=song&mid=002G0sJY2wThyx
其中的002G0sJY2wThyx就是歌曲的mid
打開上面的URl瀏覽器會加載iframe框架http://s.plcloud.music.QQ.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songmid=002G0sJY2wThyx
Ctrl +U查看源碼
var g_SongData = { id: 7168586, songmid: '002G0sJY2wThyx', songname: '喜歡你', singer:'G.E.M. 鄧紫棋', singerid:13948,singermid:'001fNHEf1SFEFN',albumname:'喜歡你', albumid:654246,albummid:'000cFPKx3ZGzks', status:31, fnote:0};/*status:非0(true)表示正常歌曲,0(false)表示下架歌曲或者歌曲不存在*/
說明:其中的7168586就是對應歌曲的id,而002G0sJY2wThyx是歌曲的mid,每首歌曲的信息都不同,這需要使用正則匹配數據
php代碼:
$u = $_GET['u'];
$type = $_GET['t']?$_GET['t']:'mp3';
$con = 'http://s.plcloud.music.qq.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songmid='.$u;
preg_match('|var g_SongData = ({.*});|',file_get_contents($con),$data);
$obj = json_decode(format_ErrorJson(iconv('GBK', 'UTF-8', $data[1])));
$id = $obj->id;
//$mid = $obj->songmid;
$url = 'http://tsmusic24.tc.qq.com/'.$id.'.'.$type;
header('Location: '.$url);
function format_ErrorJson($data)
{
$con = str_replace('\'','"',$data);//替換單引號為雙引號
$con = preg_replace('/(\w+):[ {]?((?"?).*?\k[,}]?)/is', '"$1": $2',$con );//若鍵名沒有雙引號則添加
return $con;
}
說明:
上面代碼只是用了MP3和M4A的第一種接口
代碼保存為php文件,調用/xxx.php?u=音樂ID&t=格式
例如001yJypt4E8GW0歌曲的m4a地址
/xxx.php?u=001yJypt4E8GW0&t=m4a
MP3和M4A的前三種接口只需要知道歌曲MID即可,但是M4A接口的第4種還需要vkey
vkey的獲取只是多個步驟:
打開http://base.music.qq.com/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=1830679348&g_tk=938407465&loginUin=0&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=GB2312¬ice=0&platform=yqq&jsonpCallback=&needNewCode=0
可以看到
jsonCallback({"code":0,"sip":["http://cc.stream.qqmusic.qq.com/","http://ws.stream.qqmusic.qq.com/","http://110.188.3.18/streamoc.music.tc.qq.com/"] ,"thirdip":["http://110.188.2.204/abcd1234/", "http://110.188.2.204/abcd1234/"],"key": "AC783A806083897C7C94F8376DD7BA17A37DB5BC3E28CEC35E065092C0E5F46AE0C1F2548CD6CD3048963926B361AC4F7EA62F51A98854F3"});
里面的key對應的值就是vkey
MP3 試聽:
/**
* author: pang
* 舉例:/?qq=107763168&format=mp3
* 舉例:/?qq=107763168&format=m4a
* BUT:有些MP3地址是無法獲取的
*
*/
error_reporting(0);
function curl_get($url )
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$get_url = curl_exec($ch);
curl_close($ch);
return $get_url;
}
if($qqMusic = $_GET['qq']){//qq音樂
function mid2idObj($mid)
{
//20160806 修改
/*$array = array();
$url = 'http://i.y.qq.com/s.plcloud/fcgi-bin/fcg_list_songinfo_cp.fcg?url=2&callback=&midlist='.$mid;
$con = curl_get($url);
$o = json_decode($con);
$array['id'] = $o->data[0]->songid?$o->data[0]->songid:tui('NOT FOUND ->data[0]->songid');
$array['320kbps'] = $o->data[0]->size320?true:false;//檢測320kbos資源是否存在
$array['mp3'] = $o->url1->$array['id'];
$array['m4a'] = $o->url->$array['id'];
return $array;*/
if(is_numeric($mid)){
return $mid;
}
$url = 'http://i.y.qq.com/v8/playsong.html?songmid='.$mid;
$con = curl_get($url );
preg_match('~songlist=(.*?)}catch~',$con,$json_);
$o = json_decode($json_[1]);
//$o[0]->songid;
return $o[0];
}
$id_ARR = mid2idObj($qqMusic);
$id = is_numeric($qqMusic)?$qqMusic:$id_ARR->songid;
$url_mp31 = "http://tsmusic24.tc.qq.com/{$id}.mp3";//為320kbps
$url_mp32 = "http://stream.qqmusic.tc.qq.com/{$id}.mp3";//為320kbps
//http://stream.qqmusic.tc.qq.com/C200002HPwXB1sTJG8.mp3 //320kbps 002HPwXB1sTJG8為mid
// $url_mp33 = $id_ARR['mp3'];//為128kbps
$url_m4a1 = "http://thirdparty.gtimg.com/C100{$qqMusic}.m4a?fromtag=38";
$url_m4a2 = "http://thirdparty.gtimg.com/{$id}.m4a?fromtag=38";
$url_m4a3 = "http://tsmusic24.tc.qq.com/{$id}.m4a";
$url_m4a4 = $id_ARR->m4aUrl;
if('mp3' == $_GET['format'])
{
//if('320' == $_GET['kbps'] )
//{
$dl = ${'url_mp3'.mt_rand(1,2)};
$dl .= '?&return=320kbps';
//}
/*else
{
$dl = $url_mp33.'&return=128kbps';
}*/
}
else
{
$dl = ${'url_m4a'.mt_rand(1,4)};
}
header('location: '.$dl);
}
總結
以上是生活随笔為你收集整理的在线获取外链的php源码,y.qq.com-php获取QQ音乐外链源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于创业的两个方向
- 下一篇: 【秋招备战计划第一弹】今天就开始备战秋招