如何在单个API调用中从多个Youtube频道获取最新视频

时间:2013-05-28 10:14:58

标签: php youtube youtube-api

使用以下PHP代码从用户频道获取最新视频

$feedURL = 'http://gdata.youtube.com/feeds/api/users/USER-ID/uploads?max-results=50'; $sxml = simplexml_load_file($feedURL);

有什么方法可以调用Youtube API并在单个API调用中从不同的用户频道获取视频。并在页面上以desc顺序列出视频。

2 个答案:

答案 0 :(得分:2)

对不起,你的回答并不是很清楚。

首先通过以json格式调用api来获取上传的视频总数:

   http://gdata.youtube.com/feeds/api/users/LinusTechTips/uploads?v=2&alt=jsonc

使用:

   $json = json_decode($jsonString); 
   print($json->data->totalItems . "\n");

获取viewcount,然后你可以计算剩下的!

   $totalItems = $json->data->totalItems;
   $maxResults = 50
   $xmlResults = array();
   for($i = $maxResults > $totalItems-50; $i+$maxResults) {
          $xmlResults[] = simplexml_load_file(
             'http://gdata.youtube.com/feeds/api/users/LinusTechTips/uploads?max-results=' . $i
          );
   }

要清楚;这没有经过测试。所以我不确定它是否有效;但这是做到这一点的方法。

注意:XML比json慢很多,我强烈建议你使用json格式化!

答案 1 :(得分:0)

您可以尝试使用usernames / ids设置一个数组并预先设置它们。例如:

$usernames = array(
   'xeonnnnn',
   'LinusTechTips'
);

$xmlResults = null;
foreach ($usernames as $user) {
   $xmlResults[] = simplexml_load_file(
     'http://gdata.youtube.com/feeds/api/users/' . $user .'/uploads?max-results=50'
   );
}