Я использую Zend Framework для доступа к API данных YouTube.Приведенная ниже функция просматривает все видео в определенном плейлисте на моем аккаунте и подсчитывает количество просмотров.Прямо сейчас у меня есть только одно видео.
Когда количество просмотров достигает определенного числа (для моих целей тестирования - 5 просмотров), я бы хотел установить для видео значение Private.
Я использую этот пример кода: https://developers.google.com/youtube/2.0/developers_guide_php#Updating_Video_Information
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, null, $developerKey);
$playlistVideoFeed = $yt->getPlaylistVideoFeed('http://gdata.youtube.com/feeds/api/playlists/XXXXXX');
function playCount($playlistVideoFeed, $yt) {
$count = 1;
$totalViews = 0;
foreach ($playlistVideoFeed as $videoEntry) {
// ensure the video entry is not private
if(!$videoEntry->isVideoPrivate()) {
// add this episode's play count to the total view count
$totalViews = $totalViews + $videoEntry->getVideoViewCount();
// if views are X and I can edit this video, set it to private
if($totalViews >= 5) {
$vidID = $videoEntry->getVideoId();
$videoEntryToEdit = $yt->getFullVideoEntry($vidID);
if($videoEntryToEdit->getEditLink() !== null) {
$putUrl = $videoEntryToEdit->getEditLink()->getHref();
$videoEntryToEdit->setVideoPublic();
$yt->updateEntry($videoEntryToEdit, $putUrl);
}
}
$count++;
}
}
return $totalViews;
}
* РЕДАКТИРОВАТЬ **
Часть 1 моего выпускабыла решена путем включения global $yt
.Приведенный выше код больше не возвращает следующую ошибку: Fatal error: Call to a member function updateEntry() on a non-object
.
Теперь остающаяся проблема: это не делает видео закрытым.Тестирование с примером setVideoDescription
также ничего не делает ... без ошибок, без изменений.Также да, у меня более 5 просмотров:).
Есть идеи?
* РЕДАКТИРОВАТЬ v2 **
Решил мою собственную проблему.Я обновил приведенный выше код, чтобы отразить мое решение, на случай, если кто-нибудь еще столкнется с этим.