这是我的youtube tube URL,来自facebook Id。我在Zend框架中使用facebook中的FQL查询获取此url
这是我的url = "http://www.youtube.com/attribution_link?a=AbE6fYtNaa4&u=%2Fwatch%3Fv%3DNbyHNASFi6U%26feature%3Dshare"
现在我需要获取它的ID,这样我就可以把它传递给这个代码,这样我就可以生成它的视频细节。
function listYoutubeVideo($id) {
$video = array();
try {
$yt = new Zend_Gdata_YouTube();
$videoEntry = $yt->getVideoEntry($id);
$videoEntry = $yt->getQueryUrl($id);
$videoThumbnails = $videoEntry->getVideoThumbnails();
$video = array(
'thumbnail' => $videoThumbnails[0]['url'],
'title' => $videoEntry->getVideoTitle(),
'description' => $videoEntry->getVideoDescription(),
'tags' => implode(', ', $videoEntry->getVideoTags()),
'url' => $videoEntry->getVideoWatchPageUrl(),
'flash' => $videoEntry->getFlashPlayerUrl(),
'dura' => $videoEntry->getVideoDuration(),
'id' => $videoEntry->getVideoId()
);
} catch (Exception $e) {
echo $e->getMessage();
exit();
}
return $video;
}
所以我只需要找到它的youtube ID从youtube URL在Zend框架。请提供解决方案。是否有任何方法存在于"Zend_Gdata_YouTube"
类从那里我可以得到它的ID形式传递它的youtube URL
您有唯一的视频ID。在您的情况下(https://www.youtube.com/watch?v=NbyHNASFi6U&feature=share) ID等于NbyHNASFi6U。
$url = 'http://www.youtube.com/attribution_link?a=AbE6fYtNaa4&u=%2Fwatch%3Fv%3DNbyHNASFi6U%26feature%3Dshare';
$url = urldecode($url);
$query_string = end(explode('?',$url));
parse_str($query_string);
$videoID = $v;
print $videoID;
// OUTPUT
NbyHNASFi6U
视频观看页面的URL总是这样的格式:
http://www.youtube.com/watch?v=XXXXXXXXXXX其中XXXXXXXXXXX是唯一的视频ID,由11个字母和数字组成(如果没记错,还可以加上连字符和下划线)。
public function get_id($url)
{
$ytshorturl = 'youtu.be/';
$ytlongurl = 'www.youtube.com/watch?v=';
if (strpos($url, $ytshorturl) !== false) {
$url = str_replace($ytshorturl, $ytlongurl, $url);
}
$components = parse_url($url);
parse_str($components['query'], $results);
return $results['v'];
}
$url = "https://youtu.be/oeg192rQ1xE"; //sample url
print(get_id($url));