直接上传Zend PHP:如何禁用正在上传的视频的评论?

时间:2010-10-30 11:11:57

标签: php api zend-framework video youtube

以下是我的代码示例:

$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 个答案:

答案 0 :(得分:2)

本主题已有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 :(得分:1)

Google Zend_Gdata_YouTube_VideoEntry disable comments的Google搜索显示this

  

我不确定最新的Zend客户端库版本是否已添加   对yt:accessControl设置的原生支持。你应该   能够手动构建基于的相关Atom XML元素   语言中立的文件:....

看起来您必须更改正在发送的原始数据。我不知道这有多难。也许它有帮助。