如何通过php 获取Youtube某个User所有Video信息

jacklove
发布: 2023-03-31 08:08:01
原创
1959 人浏览过

php 获取Youtube某个User所有Video信息

因工作需要,获取Youtube上某个用户的所有视频信息,写了这个类,分享给大家。

YTUserVideo.class.php

_user = $user; }else{ throw new Exception("user is empty", 1); } } /** 获取user所有视频信息 * @return Array */ public function getVideosInfo(){ $info = array(); // 获取视频数量 $videonum = $this->getVideoNum(); // 获取视频信息 for($i=1; $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-results=1&start-index=1'); $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-results=1&start-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; // Embed return $info; } /** 获取视频简介 * @param String $content 内容 * @return String */ private function getContent($content){ preg_match('/(.*?)<\/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

getVideosInfo(); echo '
'; print_r($videosInfo); echo '
'; ?>
登录后复制


输出:

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 ) .....
登录后复制

本文讲解了如何通过php 获取Youtube某个User所有Video信息,更多相关内容请关注php中文网。

相关推荐:

php 字符编码转换类的相关内容

对php implode/explode, serialize, json, msgpack 之间性能的讲解

关于php flock 使用实例的讲解

以上是如何通过php 获取Youtube某个User所有Video信息的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!