php计算QQ音乐guid,php实现网易云音乐 QQ音乐 酷狗音乐直链获取 搜索音乐及歌词...
抓取方法来源于
其中酷狗与QQ来源于网络上的Meting.php
访问形式为GET
参数:
method
值:
netease //网易
tencent //QQ
kugou //酷狗
参数:
types
值:
search //搜索单曲曲名
lrc //获取歌词
detailed //网易云音乐与酷狗音乐单曲详细信息
hash //酷狗音乐单曲详细用到的hash
参数:
MusicId //网易云音乐ID//仅网易云音乐获取歌词与单曲详细信息用到
选填参数:
参数:
pagesize //酷狗音乐用到 一次取几条数据
参数:
p //页码 QQ音乐用到
n //一次取几条数据 QQ音乐用到
limit://一次取几条数据 网易云音乐用到
上代码
/**
* [httpRequest description]
* @param [type] $sUrl [url]
* @param [type] $aHeader [aHeader]
* @param [type] $aData [请求数据]
* @return [type] [json]
*/
function httpRequest($sUrl, $aHeader, $aData){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $sUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($aData));
$sResult = curl_exec($ch);
if($sError=curl_error($ch)){
die($sError);
}
curl_close($ch);
return $sResult;
}
//网易
function netease(){
if(!empty($_GET)){
switch($_GET['types']){
case 'search':
//搜索音乐
if(empty($_GET['name'])){
echo '{"msg":"参数缺失","code":"-1"}';
}
if(empty($_GET['limit'])){
$_GET['limit']=30;
}
//请求地址
$sUrl = 'http://music.163.com/api/search/get/web';
//post数据
$aData = array(
"s"=> $_GET['name'],
"csrf_token"=> "",
"type"=> 1,
"offset"=> 0, //从第几条数据开始取
"limit"=> $_GET['limit'],//返回条数
"total"=> true
);
//header数据
$aHeader = array('Referer: http://music.163.com/search/');
//curl请求
$sResult = httpRequest($sUrl, $aHeader, $aData);
//转数组
$aResData = json_decode($sResult, true);
foreach ($aResData['result']['songs'] as $key => $value) {
$aResData['result']['songs'][$key]['mUrl']='https://music.163.com/song/media/outer/url?id='.$value['id'].'.mp3';
}
//转json显示返回数据
$json=json_encode($aResData['result']['songs'], JSON_UNESCAPED_UNICODE);
$json=str_replace('\/','/',$json);
echo ($json);
break;
case 'lrc':
//歌词获取
$url='http://music.163.com/api/song/lyric?os=pc&id='.$_GET['MusicId'].'&lv=-1&kv=-1&tv=-1';
$html = file_get_contents($url);
$arrObj=json_decode($html,TRUE);
echo ($arrObj['lrc']['lyric']);
break;
case 'detailed':
//单曲详细信息获取
$url='http://music.163.com/api/song/detail?id='.$_GET['MusicId'].'&ids=%5B'.$_GET['MusicId'].'%5D';
$html = file_get_contents($url);
$arrObj=json_decode($html,TRUE);
$json=json_encode($arrObj['songs'], JSON_UNESCAPED_UNICODE);
$json=str_replace('\/','/',$json);
echo ($json);
break;
}
}
}
//腾讯
function tencent(){
switch($_GET['types']){
case 'search':
$w=$_GET['name'];
$p=1;
$n=30;
if(!empty($_GET['p'])){
$p=$_GET['p'];
}
if(!empty($_GET['n'])){
$n=$_GET['n'];
}
$url='https://c.y.qq.com/soso/fcgi-bin/client_search_cp?';
$url.='p='.$p.'&n='.$n.'&w='.$w.'&aggr=1&lossless=1&cr=1&new_json=1';
$html = file_get_contents($url);
//删除影响转为数组的文本
$html = str_replace('callback(','',$html);
$html = str_replace(')','',$html);
$html = str_replace('','',$html);
$html = str_replace('','',$html);
//转数组
$arrObj=json_decode($html,TRUE);
//转json显示返回数据
$json=json_encode($arrObj['data']['song']['list'], JSON_UNESCAPED_UNICODE);
$json=str_replace('\/','/',$json);
echo ($json);
break;
}
}
//酷狗
function kugou(){
switch($_GET['types']){
case 'search':
$pagesize=30;
if(!empty($_GET['pagesize'])){
$pagesize=$_GET['pagesize'];
}
$url='http://mobilecdn.kugou.com/api/v3/search/song?api_ver=1&area_code=1&correct=1&pagesize='.$pagesize.'&plat=2&tag=1&sver=5&showtype=10&page=1&keyword='.$_GET['name'].'&version=8990';
$html = file_get_contents($url);
$arrObj=json_decode($html,TRUE);
$json=json_encode($arrObj['data']['info'], JSON_UNESCAPED_UNICODE);
echo ($json);
break;
case 'detailed':
if(empty($_GET['hash'])){
echo '{"msg":"参数缺失","code":"-1"}';
}
$url='http://www.kugou.com/yy/index.php?r=play/getdata&hash='.$_GET['hash'];
$html = file_get_contents($url);
$arrObj=json_decode($html,TRUE);
$json=json_encode($arrObj['data'], JSON_UNESCAPED_UNICODE);
$json=str_replace('\/','/',$json);
$json=str_replace('\r','',$json);
$json=str_replace('\n','',$json);
echo ($json);
break;
}
}
if(empty($_GET['method'])||empty($_GET['types'])){
echo '{"msg":"参数缺失","code":"-1"}';
}else {
switch($_GET['method']){
case 'netease':
netease();
break;
case 'tencent':
tencent();
break;
case 'kugou':
kugou();
break;
}
}
?>
标签: php
顶一下
(111)
91.7%
踩一下
(10)
8.3%
php计算QQ音乐guid,php实现网易云音乐 QQ音乐 酷狗音乐直链获取 搜索音乐及歌词...相关推荐
- 怎么在网易云或者QQ音乐上上传自己翻唱的歌
假期无聊,在全民K歌上唱了几首歌,有朋友想下载来听,我就找了一下怎么将翻唱的歌曲上传到网易云或者QQ音乐.就弄了一下,发现目前只能做到自己听,其他人搜索不到(可以直接把音频发给其他人下载保存)看看以后 ...
- 网易云与QQ音乐共享了99%乐库,那么这个工具解决剩下的百分之一--SDMUSIC(开源命令行音乐搜索下载软件)...
4-17 修复qq音乐平台无法下载的BUG 4-15 修改了部分BUG,美化了结果输出.非常感谢raawaa. 新增(3-5) 批量下载UK榜,美国Billboard周榜,Beatport全球电子舞曲 ...
- 极客日报:日本的首颗 5nm 芯片公布;虾米音乐正式关停;网易云音乐再次喊话酷狗...
一.互联网快讯 1.虾米音乐正式关停 一个月前,虾米音乐发布官方声明表示,虾米音乐2月5日关停:3月5日0点后除网页端音乐人授权服务维持运营,其他运营均停止并关闭服务器,届时及以后将无法登录. 目前进 ...
- 极客日报第 67 期:日本的首颗 5nm 芯片公布;虾米音乐正式关停;网易云音乐再次喊话酷狗
文章目录 一.互联网快讯 二.程序员专属 三.Github 每日精选 四.CSDN 社区优质博文精选 一.互联网快讯 1.虾米音乐正式关停 一个月前,虾米音乐发布官方声明表示,虾米音乐2月5日关停:3 ...
- ubuntu18.10安装网易云音乐,并解决网易云音乐图标无法启动的问题
ubuntu18.10安装网易云音乐,并解决网易云音乐图标无法启动的问题 ubuntu18.10安装网易云音乐 解决网易云音乐图标无法启动的问题 ubuntu18.10安装网易云音乐 网易云音乐官网下 ...
- 网易云音乐管理系统c语言,网易云音乐v2.5.3.197601官方版
网易云音乐v2.5.3.197601官方版是一款专注于发现与分享的音乐播放器,网易云音乐操作简单便捷,你可以使用它来听自己喜欢的高品质音乐.不仅如此网易云音乐还有着很多特色的功能,为大家提供个性化推荐 ...
- 在线音乐哪个支持linux,网易云音乐上线国内在线音乐应用中首个Linux版
原标题:网易云音乐上线国内在线音乐应用中首个Linux版 最近,国内Linux用户乐开了花,因为他们终于可以在Linux系统内听在线音乐了. 5月25日,网易云音乐Linux版正式上线,这也是国内在线 ...
- 虾米播播音乐墙html,WordPress音乐播放器插件Hermit X(支持网易云、QQ音乐、虾米等)...
Hermit X,使用 APlayer 前端播放器,Meting Framework & LWL API 后端支持的全新 WordPress 播放器 现已问世! 特性 支持直接调用网易云音乐. ...
- 牛皮!竟然有大佬基于 Spring Boot + Vue 开发了一套网易云amp;QQ音乐(附源码)。。。...
来源:segmentfault.com/a/1190000021376934 # 前言 虽然 B/S 是目前开发的主流,但是 C/S 仍然有很大的市场需求.受限于浏览器的沙盒限制,网页应用无法满足某些 ...
最新文章
- php可以定义数组的常量吗
- rtsp发送主流和辅流
- 软件分享大会之Bonny使用感想
- ASCII码对照表(不可见字符)
- Android Studio开发基础之Activity之间参数传递
- E1 PCM复用设备作用
- 时间序列趋势分解 seasonal_decompose
- 《统计学习方法》代码全解析——第十三部分无监督学习概论
- d2rq java,知识图谱学习与实践(6)——从结构化数据进行知识抽取(D2RQ介绍)...
- robotium例子
- 移动支付深入我们的生活,行业态势又如何?
- 人生感悟:欲望适度则为利,欲望过度则为害
- deeplabv3+ 跑 cityscape 数据集
- liunx命令大全建议粘贴到word文档可方便查询
- 金山毒霸11,更新内容,问题修复了什么?
- Java集成融云服务端
- 【EasyExcel导入、导出(百万数据量测试)粘贴即用】
- 走近计算机,走进二进制,爪哇国的诞生
- MarkDown渲染无法显示
- C:\KEIL\C51\intrins.h包含不正确的路径。Keil 头文件路径错误
热门文章
- @PreAuthorize注解
- web前端:main、header、footer、nav、article、section标签的用法
- [ZT]程序员的用户界面设计手册1-9章(作者: Joel Spolsky 译: 梅普华 MSWord繁简转换)
- Matlab:动态正则表达式
- 获取钉钉花名册接口和枚举类
- 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1
- lol观战服务器中未能,lol观战服务器数据请求失败的解决方法
- 用计算机牙模,取模制作戴牙一次搞定 患者分不出真牙假牙
- Python 读写文件详解 with open() as
- Java面试大厂名企高频真题--02并发篇