青岛网上房地产网站,软件外包项目网,wordpress 雅黑,类似淘宝的购物网站 建设php 获取Youtube某个User所有Video信息 因工作需要#xff0c;获取Youtube上某个用户的所有视频信息#xff0c;写了这个类#xff0c;分享给大家。 YTUserVideo.class.php ?php
/** 获取Youtube某个User所有Video信息
* Date: 2015-01-08
* Author: fdipzone
* …php 获取Youtube某个User所有Video信息 因工作需要获取Youtube上某个用户的所有视频信息写了这个类分享给大家。 YTUserVideo.class.php ?php
/** 获取Youtube某个User所有Video信息
* Date: 2015-01-08
* Author: fdipzone
* Ver: 1.0
*
* Func:
* public getVideosInfo 获取用户所有视频信息
* private getVideoNum 获取用户视频数量
* private getVideoInfo 获取视频信息
* private getContent 视频简介整理
* private unescape unicode转中文
*/class YTUserVideo{ // class startprivate $_user ; // 用户名称/** 初始化* param String $user 用户名称*/public function __construct($user){if($user!){$this-_user $user;}else{throw new Exception(user is empty, 1);}}/** 获取user所有视频信息* return Array*/public function getVideosInfo(){$info array();// 获取视频数量$videonum $this-getVideoNum();// 获取视频信息for($i1; $i$videonum; $i){$videoInfo $this-getVideoInfo($i);array_push($info, $videoInfo);}return $info;}/** 获取用户视频数量* return int*/private function getVideoNum(){$videos simplexml_load_file(http://gdata.youtube.com/feeds/base/users/.$this-_user./uploads?max-results1start-index1);$videonum $videos-children(openSearch, true)-totalResults;return $videonum;}/** 获取视频信息* param String $index 视频的序号* return Array*/private function getVideoInfo($index){// 获取视频id及简介$video simplexml_load_file(http://gdata.youtube.com/feeds/base/users/.$this-_user./uploads?max-results1start-index.$index);$videoId str_replace(http://gdata.youtube.com/feeds/base/videos/, , (string)($video-entry-id));$videoContent $this-getContent($video-entry-content);$videoPublish strtotime($video-entry-published);// 根据视频id获取视频信息$content file_get_contents(http://youtube.com/get_video_info?video_id.$videoId);parse_str($content, $ytarr);$info array();$info[id] $videoId;$info[thumb_photo] $ytarr[thumbnail_url]; // 缩略图$info[middle_photo] $ytarr[iurlmq]; // 中图$info[big_photo] $ytarr[iurl]; // 大图$info[title] $ytarr[title]; // 标题$info[content] $videoContent; // 简介$info[publish_date] $videoPublish; // 发布时间$info[length_seconds] $ytarr[length_seconds]; // 视频长度(s)$info[view_count] $ytarr[view_count]; // 观看次数$info[avg_rating] $ytarr[avg_rating]; // 平均评分$info[embed] //www.youtube.com/embed/.$videoId; // Embedreturn $info;}/** 获取视频简介* param String $content 内容* return String*/private function getContent($content){preg_match(/span(.*?)\/span/is, $content, $matches);return $this-unescape($matches[1]);}/* unicode 转 中文* param String $str unicode 字符串* return String*/private function unescape($str) {$str rawurldecode($str);preg_match_all(/(?:%u.{4})|#x.{4};|#\d;|./U,$str,$r);$ar $r[0];foreach($ar as $k$v) {if(substr($v,0,2) %u){$ar[$k] iconv(UCS-2BE,UTF-8,pack(H4,substr($v,-4)));}elseif(substr($v,0,3) #x){$ar[$k] iconv(UCS-2BE,UTF-8,pack(H4,substr($v,3,-1)));}elseif(substr($v,0,2) #) {$ar[$k] iconv(UCS-2BE,UTF-8,pack(n,substr($v,2,-1)));}}return join(,$ar);}} // class end?
demo.php ?php
require YTUserVideo.class.php;$obj new YTUserVideo(GOtriphk); // 用户名称GOtriphk https://www.youtube.com/user/GOtriphk/videos
$videosInfo $obj-getVideosInfo();echo pre;
print_r($videosInfo);
echo /pre;
?
输出 Array
([0] Array([id] jYDwFozp6PY[thumb_photo] http://i.ytimg.com/vi/jYDwFozp6PY/default.jpg[middle_photo] http://i.ytimg.com/vi/jYDwFozp6PY/mqdefault.jpg[big_photo] http://i.ytimg.com/vi/jYDwFozp6PY/hqdefault.jpg[title] 【比卡超ssss突襲尖咀】香港比卡超展[content] 香港有比卡超展同場會展出全球最大、高13米嘅「比卡超立體飛船」仲會有700隻唔同角色嘅精靈現身當然亦唔小得又勁多期間限定紀念品可以優先搶以及由橫濱專程到港嘅聖誕版比卡超同粉絲全接觸總之飛唔飛都一樣有得玩The ONE x 寵物小精靈 聖誕夢想飛行日期:2014年11月9日至2015年1月4日時間:10am-10pm地點:The ONE UG2 中庭[publish_date] 1415257662[length_seconds] 124[view_count] 603[avg_rating] 0.0[embed] //www.youtube.com/embed/jYDwFozp6PY)
.....