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

jacklove
Libérer: 2023-03-31 08:08:01
original
1959 Les gens l'ont consulté

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 ?>
Copier après la connexion


demo.php

getVideosInfo(); echo '
'; print_r($videosInfo); echo '
'; ?>
Copier après la connexion


输出:

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 ) .....
Copier après la connexion

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

相关推荐:

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

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

关于php flock 使用实例的讲解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!