Fetch 3 Последнее видео с канала YouTube - PullRequest
4 голосов
/ 25 марта 2012

Используя Youtube API , я создал класс для своих нужд.(Работает с Zend FW)

class youtube extends html {

    var $yt, $user;
    public function __construct($user) {
        require_once 'Zend/Loader.php';
        Zend_Loader::loadClass('Zend_Gdata_YouTube');
        $this->yt = new Zend_Gdata_YouTube();
        $this->yt->setMajorProtocolVersion(2);
        Zend_Loader::loadClass('Zend_Gdata_AuthSub');
        Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
        $this->yt->getHttpClient()->setConfig(array('timeout' => 180));
        $this->user = $user;
}

}

Проблема в том, что когда я использую

$this->yt->getuserUploads($this->user)

в других методах класса, он получает ALL видео.Я хочу получить 3 последних видео из $user.Как это сделать?

Ответы [ 2 ]

0 голосов
/ 07 мая 2012

Взгляните на:

$query = $yt->newVideoQuery();
$query->maxResults = 3;
$query->orderBy = 'published';
$query->author = 'ThisIsHorosho';
$query->startIndex  = 1;

$videoFeed = $yt->getUserUploads(null,$query);
foreach($videoFeed as $videoEntry)
{
    echo $videoEntry->getVideoWatchPageUrl() . PHP_EOL;
}
0 голосов
/ 26 марта 2012

Сейчас у меня очень мало времени, иначе я бы попробовал использовать ваш код.Это может помочь, если вы не можете решить это, или если никто не ответит с вашим кодом.

Я собрал быстрое и грязное решение в качестве ответа для того, кто хотел показать эскиз, соответствующийк последнему видео, загруженному на Youtube конкретным пользователем - я закодировал простое действие контроллера и просмотр, который отображал бы миниатюру видео, которая была ссылкой на само видео.

Пример можно легко настроить, чтобы показать определенное количество видео, изменив строку

if($i==1) break;

, однако, вероятно, есть более элегантные способы сделать это, чем я, - как яскажем, это было быстро и грязно, чтобы ответить на вопрос.

Я использовал класс Zend_Feed_Reader вместо класса Zend_Gdata_YouTube.В краткосрочной перспективе это может помочь.

Удачи, дайте мне знать, если это помогло.

Всего наилучшего, Дэйв :-D

Ссылка на вопрос с моим примером

...