PHP通过ajax+curl+开放API调用优酷视频详情信息 [ 未指定版本 ]
原文:http://www.icultivator.com/p/4409.html
优酷开放API接口:http://v.youku.com/player/getPlayList/VideoIDS/视频ID
比如在浏览器地址栏输入ID为XNjI0NDMxNDc2的视频
http://v.youku.com/player/getPlayList/VideoIDS/XNjI0NDMxNDc2
返回的json格式的结果数据如下(部分,不完整):
其中vidEncoded为编码的视频ID,本例中就是XNjI0NDMxNDc2;
logo为视频截图,title为视频标题,tags为视频标签,seconds为视频时长,等等。
本用例实现的思路如下:
1.用户输入一个视频的链接地址,然后给搜索按钮绑定一个click事件,调用ajax;
2.通过一个ajax传递视频url到后台,在PHP后台通过正则解析出url中的视频id,使用curl调用开放API,获取返回的json数据;
3.将后台返回的json数据拼接成视频播放代码显示到相应的div中。
代码实现:
前台代码youku.php:
<?php
/*
* @author:农夫庄园
* website:http://www.icultivator.com
* url:http://www.icultivator.com/p/4409.html
*/
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<input type="text" id="search_url" size="64"/><button onclick="getVideo();">搜索</button>
<div id="video_div">
</div>
<script type="text/javascript"></script>
后台代码video.php:
<?php
/*
* @author:农夫庄园
* website:http://www.icultivator.com
* url:http://www.icultivator.com/p/4409.html
*/
if (isset($_POST['url'])):
$url = rawurldecode($_POST['url']);
$pattern = "/http:\/\/v\.youku\.com\/v_show\/id_([\w]+)\.html.*/";
preg_match($pattern, $url, $arr);
$vid = $arr[1];
$yk_api = 'http://v.youku.com/player/getPlayList/VideoIDS/' . $vid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $yk_api);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');
$res = curl_exec($ch);
curl_close($ch);
echo $res;
endif;
?>
效果图:
icultivator 杭州
注册时间:2013-10-09
最后登录:2015-04-20
在线时长:6小时56分
最后登录:2015-04-20
在线时长:6小时56分
- 粉丝59
- 金钱550
- 威望240
- 积分3010
共 0 条评论