获取qq音乐外链方法+源码

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代码:
  • <?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+):[ {]?((?<YinHao>”?).*?\k<YinHao>[,}]?)/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


转自:http://www.heirui.cn/11283.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值