Прямая загрузка Zend PHP: как отключить комментарии к загружаемым видео? - PullRequest
0 голосов
/ 30 октября 2010

Вот пример моего кода:

$httpClient = Zend_Gdata_ClientLogin::getHttpClient( $username, $password, $service, $client, $source, $loginToken, $loginCaptcha, $authenticationURL);
$httpClient->setHeaders('X-GData-Key', "key=${myDeveloperKey}");

$yt = new Zend_Gdata_YouTube($httpClient);

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

$filesource = $yt->newMediaFileSource($filename);
$filesource->setContentType('video/quicktime');
$filesource->setSlug($filename);

$myVideoEntry->setMediaSource($filesource);

$mediaGroup = $yt->newMediaGroup();
$mediaGroup->title = $yt->newMediaTitle()->setText(POST("title"));
$mediaGroup->description = $yt->newMediaDescription()->setText(POST("description"));
$mediaGroup->category = array(
    $yt->newMediaCategory()->setText(POST("category"))->setScheme('http://gdata.youtube.com/schemas/2007/categories.cat'),
    $yt->newMediaCategory()->setText('mydevelopertag')->setScheme('http://gdata.youtube.com/schemas/2007/developertags.cat')
);
$mediaGroup->keywords = $yt->newMediaKeywords()->setText(POST("tags"));

$myVideoEntry->mediaGroup = $mediaGroup;
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/users/default/uploads';
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');

$youtube_id = $newEntry->getVideoID();

Обратите внимание, что это просто пример кода для простоты. Полный код намного сложнее и протестирован для работы.

Да ладно, ребята, это, вероятно, всего одна строка кода. Я не смог найти никакой документации по нему.

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Этому разделу 7 месяцев, и похоже, что Zend API все еще не поддерживает параметры yt: accessControl из коробки.Хотя есть решение!Проверьте это, это не так уж плохо на самом деле, и это работает для меня.

http://gdatatips.blogspot.com/2008/12/creating-extension-elements-in-php.html http://groups.google.com/group/youtube-api-gdata/msg/2346e9c0a2cb223d/

$newVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$newVideoEntry->setVideoTitle( 'test title' );
$newVideoEntry->setVideoDescription( 'test description' );
$newVideoEntry->setVideoCategory( 'Music' );

$accessControlElement = new Zend_Gdata_App_Extension_Element('yt:accessControl', 'yt', 'http://gdata.youtube.com/schemas/2007', ''); 
$accessControlElement->extensionAttributes = array(array('namespaceUri' => '', 'name' => 'action', 'value' => 'comment'), array('namespaceUri' => '', 'name' => 'permission', 'value' => 'denied')); 
$newVideoEntry->extensionElements = array($accessControlElement); 
1 голос
/ 30 октября 2010

Google для Zend_Gdata_YouTube_VideoEntry disable comments появляется это :

Я не уверен, что последний выпуск библиотеки клиента Zend добавил Встроенной поддержки для настройки yt:accessControl пока нет. Вы должны быть возможность вручную создать соответствующий элемент XML Atom на основе не зависящая от языка документация: ....

похоже, вам нужно изменить исходные данные, которые отправляются. Я не знаю, насколько это сложно. Может быть, это все равно поможет.

...