会飞的鱼

FS - RM
谁能反抗生命随波逐流的离合
首页 » 源码代码 » 使用PHP实现某狗音乐免费下载无损音乐

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

昨日通过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

三。完整代码

<?php
/**
* 解析酷狗无损音乐下载
* @author Wigiesen - 心语难诉
* @version v1.0
* @link https://xinyu19.com
*/
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

五。完结

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


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


文章如无特别注明均为原创! 作者: 浮生若梦, 转载或复制请以 超链接形式 并注明出处 浮生若梦's Blog
原文地址《 使用PHP实现某狗音乐免费下载无损音乐》发布于2018-5-22

分享到:
0 打赏

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册