API GData YouTube - PullRequest
       19

API GData YouTube

1 голос
/ 08 сентября 2011

Я использую Zend Framework (php) и пытаюсь получить список самых последних видео, загруженных всеми пользователями, на которых я подписан.Подобно тому, что вы увидите, если посетите страницу подписок на youtube.com.

Я могу сделать запрос, используя getSubscriptionFeed () для всех пользователей, на которых я подписан.Затем я могу перебрать каждый из них и сделать запрос для getUserUploads (), а затем выскочить из первого элемента, но это занимает вечно и кажется ненужной работой.Должен быть один запрос со всеми именами пользователей, которые я хочу найти.

Есть идеи?

Спасибо, Хауи

1 Ответ

2 голосов
/ 08 сентября 2011

На случай, если кому-то будет интересно:

Самая последняя версия Zend Framework (1.11.10) не включает крайне важный метод извлечения новейших видео из ваших подписок, как задокументировано здесь на сайте Google.

Поэтому я просто добавил:

/**
 * Retrieves a feed of a user's subscriptions
 *
 * @param string $user (optional) The username of interest
 * @param mixed $location (optional) The URL to query or a
 *         Zend_Gdata_Query object from which a URL can be determined
 * @return Zend_Gdata_YouTube_VideoFeed The newest video for each subscription
 */
public function getNewSubscriptionVideos($user = null, $location = null)
{
    if ($user !== null) {
        $uri = self::USER_URI . '/' . $user . '/newsubscriptionvideos';
    } else if ($location instanceof Zend_Gdata_Query) {
        $uri = $location->getQueryUrl();
    } else {
        $uri = $location;
    }
    return parent::getFeed($uri, 'Zend_Gdata_YouTube_VideoFeed');
}

в документ YouTube.php в каталоге Zend / GData в строке 561 (после метода getSubscriptionFeed ).

Теперь я могу вызвать getNewSubscriptionVideos и передать ему имя пользователя или значение по умолчанию, и он вернет массив VideoEntities, к которым можно получить доступ, используя:

$raw_new_subscription_videos = $_youtube->getNewSubscriptionVideos($username);

foreach ($raw_new_subscription_videos as $video)
{
  $title = $video->getVideoTitle();

  // etc.
}

Надеюсьпомогает всем, кто потерян так же, как и я в течение последних нескольких часов.

Хауи

...