抓取视频相关信息

/**
	 * 获取优化视频信息
	 * @param string $url 地址
	 * @return Array
	 */
	public static function getVideoInfo($url)
	{
		preg_match("#https?://v.youku.com/v_show/id_(?<video_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 < $key) {
			$value = 2147483647 & $value >> 1 | ($value & 1) << 31;
			++$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 $url		url 地址
	 * @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;
	}


你可能感兴趣的:(抓取视频相关信息)