php 抓取视频,抓取视频相关信息 - 张明杰_php的个人空间 - OSCHINA - 中文开源技术交流社区...

这段代码包含两个静态方法,分别用于从优酷和乐视获取视频信息。它们通过正则匹配视频ID,然后调用API获取播放列表、视频标题、缩略图等信息。此外,还包含了处理乐视视频图片大小的方法以及使用cURL获取URL内容的辅助函数。
摘要由CSDN通过智能技术生成

/**

* 获取优化视频信息

* @param string $url 地址

* @return Array

*/

public static function getVideoInfo($url)

{

preg_match("#https?://v.youku.com/v_show/id_(?[a-z0-9_=-]+)#i", $url, $matches);

$cnt = count($matches);

if ($cnt>0){

$link = "http://v.youku.com/player/getPlayList/VideoIDS/{$matches['video_id']}/timezone/+08/version/5/source/out?password=&ran=2513&n=3";

}else{

return false;

}

$cexecute = self::getUrlContents($link);

if ($cexecute) {

$result = json_decode($cexecute,true);

$json = $result['data'][0];

$data['img'] = $json['logo']; // 视频缩略图

$data['title'] = $json['title']; //标题啦

$data['url'] = $url;

$data['swf'] = "http://player.youku.com/player.php/sid/{$matches['video_id']}/v.swf"; // 视频地址

return $data;

} else {

return false;

}

}

/**

* 获取乐视视频信息

* @param string $url 视频地址

* @return Array

*/

public static function getLetvInfo($url)

{

preg_match('|vplay/(.*).html|U',$url,$id);

if(empty($id))

{

return false;

}

$time=self::letu_(time());

$turl='http://api.letv.com/mms/out/video/playJson?id='.$id[1].'&platid=1&splatid=101&format=1&nextvid=20262893&tkey='.$time.'&domain=www.letv.com';

$u = self::getUrlContents($turl);

if($u){

$json=json_decode($u,true);

$data['title'] = $json['playurl']['title'];  //视频标题

$data['img'] = $json['playurl']['pic']; //视频图片

$data['url'] = $url;

return $data;

}

return false;

}

public static function let_($value, $key)

{

$i = 0;

while ($i 

$value = 2147483647 & $value >> 1 | ($value & 1) <

++$i;

}

return $value;

}

public static function letu_($stime)

{

$key = 773625421;

$value = self::let_($stime, $key % 13);

$value = $value ^ $key;

$value = self::let_($value, $key % 17);

return $value;

}

/**

* 处理乐视图片

*/

function getLevtThumb($path, $width=200, $height=100)

{

if(empty($path))

{

return false;

}

$ext = '';

$res = explode('thumb', $path);

$filepath = $res[0].'thumb';

$ext = strrchr($path, '.');

$path2 = explode('_', $res[1]);

$filepath = $filepath.$path2[0].'_'.$width.'_'.$height.$ext;

return $filepath;

}

/**

* 获取信息

* @param unknown_type $urlurl 地址

* @return unknown

* yang 2012-10-24  2012-11-9 remove file_get_contents

*/

public static function getUrlContents($url, $connectTimeout = 10, $timeout = 30)

{

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

//超时设置

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connectTimeout); //链接超时

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); //curl最长执行时间

$result = curl_exec($ch);

curl_close($ch);

if ($result === false)

{

logger::warning("get $url failed", 0);

}

logger::notice("get $url success");

return $result;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值