Я использую Zend_Gdata_YouTube для взаимодействия с API YouTube для загрузки видео с моего сайта. Видео загружено как "личное":
$myVideoEntry->setVideoPrivate();
... и имеют уникальные теги и теги разработчика. Затем администратор может зайти в пользовательскую CMS и утвердить личные отправленные пользователем записи и сделать их общедоступными - по крайней мере, это то, что я хочу сделать.
В CMS я подключаюсь к API как аутентифицированный пользователь (Zend_Gdata_AuthSub). Я могу вытащить видео аутентифицированного пользователя так:
$videoFeed = $yt->getuserUploads('default');
Это потянет все видео, как частные, так и публичные. Но когда я пытаюсь найти конкретное видео с поисковым запросом:
$query = $yt->newVideoQuery();
$query->setSafeSearch('none');
$query->setVideoQuery('puppies');
$videoFeed = $yt->getVideoFeed($query->getQueryUrl(2));
Или по тегу:
$query = $yt->newVideoQuery();
$query->setOrderBy('viewCount');
$query->setRacy('include');
$query->setCategory('People/sometag');
// obtain a feed with videos matching the provided tag
$videoFeed = $yt->getVideoFeed($query);
Или по тегу разработчика:
$devTagUrl = 'http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com' .
'%2Fschemas%2F2007%2Fdevelopertags.cat%7D' . $some_dev_tag;
$videoFeed = $yt->getVideoFeed($devTagUrl);
Частные видео вернут пустой результат. Однако, если я сделаю это видео общедоступным, то смогу извлечь его из любого из трех методов, описанных выше, причем все они выполняются при проверенном соединении.
Как я могу получить личное видео на основе тега или тега разработчика? Я что-то пропустил? Большое спасибо !!