分享

使用PHP实现某狗音乐免费下载无损音乐

 黄三岁大爱人生 2018-06-26

  昨日通过Freebuf上某大神分析,实现了解析某狗音乐无损格式下载,那么今天这篇文章则使用PHP几十行代码实现某狗音乐无损格式营业的搜索+下载。当然了,本篇文章中所提供的一切代码资源,仅供学习交流,严禁用于商业用途,请于24小时内删除。

一。接口的准备
根据Freebuf上某大神分析出来的结果,一共得到4个接口,分别如下:
搜索地址:

  1. http://songsearch.kugou.com/song_search_v2?keyword={关键字}page=1


无损音乐下载地址:

  1. # V2版系统,pc版,加密方式为md5(hash +"kgcloudv2")
  2. Music_api_1 = ''http://trackercdnbj.kugou.com/i/v2/?cmd=23&pid=1&behavior=download''
  3. # V2版系统,手机版,加密方式为md5(hash +"kgcloudv2") (备用)
  4. Music_api_2 = ''http://trackercdn.kugou.com/i/v2/?appid=1005&pid=2&cmd=25&behavior=play''
  5. # 老版系统,加密方式为md5(hash +"kgcloud")(备用)
  6. Music_api_3 = ''http://trackercdn.kugou.com/i/?cmd=4&pid=1&forceDown=0&vip=1''

二。解析过程

1517725350802686.png

三。完整代码

  1. <?php
  2. /**
  3. * 解析酷狗无损音乐下载
  4. * @author Wigiesen - 心语难诉
  5. * @version v1.0
  6. * @link https://
  7. */
  8. class KuGou
  9. {
  10. # 下载url 加密方式md5(hash +"kgcloudv2")
  11. private $kugou_v2_pc = ''http://trackercdnbj.kugou.com/i/v2/?cmd=23&pid=1&behavior=download'';
  12. # 搜索url
  13. private $search_api = ''http://songsearch.kugou.com/song_search_v2'';
  14. public function search($song_name){
  15. # 搜索音乐资源,将返回的json歌曲信息解析
  16. $res = json_decode(file_get_contents($this->search_api.''?keyword=''.$song_name.''page=1''),true);
  17. # 判断搜索返回的列表是否为空,不为空则有资源。
  18. if (!empty($res[''data''][''lists''])) {
  19. $Songs = [];
  20. $SongsCount = 0;
  21. foreach ($res[''data''][''lists''] as $value) {
  22. # SQLFileHash = 32个0说明没有无损音质的资源,排除掉。
  23. if ($value[''SQFileHash''] != ''00000000000000000000000000000000'') {
  24. # 通过得到的SQFileHash加密key后去请求单个无损音质音乐的资源信息
  25. $Song_res = json_decode(file_get_contents($this->kugou_v2_pc.''&hash=''.$value[''SQFileHash''].''&key=''.md5($value[''SQFileHash''].''kgcloudv2'')),true);
  26. $Songs[$SongsCount] = [
  27. ''SongName'' => $value[''SongName''], //歌曲名称
  28. ''SingerName'' => $value[''SingerName''], //歌手名字
  29. ''SongExt'' => $Song_res[''extName''], //歌曲后缀
  30. ''SongSize'' => round($Song_res[''fileSize''] /1024/1024,2).'' MB'', //歌曲资源大小
  31. ''SongTime'' => ltrim(date(''i:s'', $Song_res[''timeLength'']),0), //歌曲的时长
  32. ''SongUrl'' => $Song_res[''url''] //下载URL
  33. ];
  34. $SongsCount++;
  35. }
  36. }
  37. echo json_encode([''status'' => true, ''message'' => ''加载资源成功'', ''count'' => count($Songs), ''data'' => $Songs]);
  38. }else{
  39. echo json_encode([''status'' => false, ''message'' => ''找不到相关匹配的资源'']);
  40. }
  41. }
  42. }
  43. $KuGou = new KuGou();
  44. $KuGou->search($_GET[''song_name'']);
  45. ?>

四。案例展示。

QQ截图20180204142823.png

五。完结

案例上我用Bootstrap套了一个简易的搜索列表页,使用AJAX请求返回歌曲列表,可以看到资源的详细的参数+一键下载,与上面代码所用的代码是一模一样的。相关注释已经写入到代码中,这里就不再逐步分析了。当然还有一个问题是无法搜素英文歌曲,至于为什么,我也不知道咯~最后需要说的本篇文章中所提供的一切代码资源,仅供学习交流,严禁用于商业用途,请于24小时内删除。


原文转自:周武杰博客https:///skills/79.html


本文标签:
版权声明:若无特殊注明,本文皆为《 浮生若梦 》原创,转载请保留文章出处。
本文链接:使用PHP实现某狗音乐免费下载无损音乐 http://blog./?post=230

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多