php – 在数组中获取Youtube VideoID详细信息
作者:互联网
几个小时我一直在努力,我不知道为什么不工作.
我需要使用YouTube API和Zend从VideoID获取详细信息,因此我创建了这样的功能
function listYoutubeVideo($id) {
$videos = array();
try {
$yt = new Zend_Gdata_YouTube();
$videoFeed = $yt->getVideoEntry($id);
foreach ($videoFeed as $videoEntry) {
$videoThumbnails = $videoEntry->getVideoThumbnails();
$videos[] = 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) {
}
return $videos;
}
使用数组和函数执行此操作的原因是因为我想缓存该函数.
我不知道代码有什么问题,我使用完全相同的只是改变其他类型的feed的getVideoEntry它是有效的.
解决方法:
我复制了你的代码并运行它.现在getVideoEntry似乎正在返回单个视频的数据,但出于某种原因,你希望它是一个集合?此外,如果您缓存,您可能想要为空数据返回创建一些检查.
以下是一些适用于我的修改后的代码:
function listYoutubeVideo($id) {
$video = array();
try {
$yt = new Zend_Gdata_YouTube();
$videoEntry = $yt->getVideoEntry($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;
}
标签:php,youtube,zend-framework,api,zend-gdata 来源: https://codeday.me/bug/20190526/1157204.html