昨日通过Freebuf上某大神分析,实现了解析某狗音乐无损格式下载,那么今天这篇文章则使用PHP几十行代码实现某狗音乐无损格式营业的搜索+下载。当然了,本篇文章中所提供的一切代码资源,仅供学习交流,严禁用于商业用途,请于24小时内删除。
一。接口的准备
根据Freebuf上某大神分析出来的结果,一共得到4个接口,分别如下:
搜索地址:
- http://songsearch.kugou.com/song_search_v2?keyword={关键字}page=1
无损音乐下载地址:
- # V2版系统,pc版,加密方式为md5(hash +"kgcloudv2")
- Music_api_1 = ''http://trackercdnbj.kugou.com/i/v2/?cmd=23&pid=1&behavior=download''
- # V2版系统,手机版,加密方式为md5(hash +"kgcloudv2") (备用)
- Music_api_2 = ''http://trackercdn.kugou.com/i/v2/?appid=1005&pid=2&cmd=25&behavior=play''
- # 老版系统,加密方式为md5(hash +"kgcloud")(备用)
- Music_api_3 = ''http://trackercdn.kugou.com/i/?cmd=4&pid=1&forceDown=0&vip=1''
二。解析过程
![点击查看原图 1517725350802686.png](http://image109.360doc.com/DownloadImg/2018/06/2608/136787397_1_20180626082709755.png)
三。完整代码
- <?php
- /**
- * 解析酷狗无损音乐下载
- * @author Wigiesen - 心语难诉
- * @version v1.0
- * @link https://
- */
- class KuGou
- {
- # 下载url 加密方式md5(hash +"kgcloudv2")
- private $kugou_v2_pc = ''http://trackercdnbj.kugou.com/i/v2/?cmd=23&pid=1&behavior=download'';
- # 搜索url
- private $search_api = ''http://songsearch.kugou.com/song_search_v2'';
-
- public function search($song_name){
- # 搜索音乐资源,将返回的json歌曲信息解析
- $res = json_decode(file_get_contents($this->search_api.''?keyword=''.$song_name.''page=1''),true);
- # 判断搜索返回的列表是否为空,不为空则有资源。
- if (!empty($res[''data''][''lists''])) {
- $Songs = [];
- $SongsCount = 0;
- foreach ($res[''data''][''lists''] as $value) {
- # SQLFileHash = 32个0说明没有无损音质的资源,排除掉。
- if ($value[''SQFileHash''] != ''00000000000000000000000000000000'') {
- # 通过得到的SQFileHash加密key后去请求单个无损音质音乐的资源信息
- $Song_res = json_decode(file_get_contents($this->kugou_v2_pc.''&hash=''.$value[''SQFileHash''].''&key=''.md5($value[''SQFileHash''].''kgcloudv2'')),true);
- $Songs[$SongsCount] = [
- ''SongName'' => $value[''SongName''], //歌曲名称
- ''SingerName'' => $value[''SingerName''], //歌手名字
- ''SongExt'' => $Song_res[''extName''], //歌曲后缀
- ''SongSize'' => round($Song_res[''fileSize''] /1024/1024,2).'' MB'', //歌曲资源大小
- ''SongTime'' => ltrim(date(''i:s'', $Song_res[''timeLength'']),0), //歌曲的时长
- ''SongUrl'' => $Song_res[''url''] //下载URL
- ];
- $SongsCount++;
- }
- }
- echo json_encode([''status'' => true, ''message'' => ''加载资源成功'', ''count'' => count($Songs), ''data'' => $Songs]);
- }else{
- echo json_encode([''status'' => false, ''message'' => ''找不到相关匹配的资源'']);
- }
- }
- }
- $KuGou = new KuGou();
- $KuGou->search($_GET[''song_name'']);
- ?>
四。案例展示。
![QQ截图20180204142823.png](http://image109.360doc.com/DownloadImg/2018/06/2608/136787397_2_2018062608271067.png)
五。完结
案例上我用Bootstrap套了一个简易的搜索列表页,使用AJAX请求返回歌曲列表,可以看到资源的详细的参数+一键下载,与上面代码所用的代码是一模一样的。相关注释已经写入到代码中,这里就不再逐步分析了。当然还有一个问题是无法搜素英文歌曲,至于为什么,我也不知道咯~最后需要说的本篇文章中所提供的一切代码资源,仅供学习交流,严禁用于商业用途,请于24小时内删除。
原文转自:周武杰博客https:///skills/79.html
版权声明:若无特殊注明,本文皆为《
浮生若梦 》原创,转载请保留文章出处。
本文链接:使用PHP实现某狗音乐免费下载无损音乐 http://blog./?post=230
|