【问题标题】:Upload video to YouTube as unlisted将视频上传到 YouTube 作为不公开
【发布时间】:2011-09-09 11:50:24
【问题描述】:

所以,我可以使用 PHP 客户端库将视频上传到 YouTube(直接上传)并将其设置为私有,但是否可以将其设置为不公开?

【问题讨论】:

  • 我问的是完全相同的问题,为什么这“不是一个真正的问题”? babonk 询问是否可以将上传的视频设置为“不公开”。如果您有通过 PHP 上传到 youtube 的经验,这是一个可以接受的问题。
  • 我不认识。 5 人认为这是一个糟糕的问题。
  • 这是一个非常合理的问题,答案如下:groups.google.com/group/youtube-api-gdata/browse_thread/thread/…
  • 我来自谷歌搜索“zend 上传未列出的视频”。我也同意这是一个合理的问题。
  • 是的,这不应该被关闭

标签: php zend-framework youtube


【解决方案1】:

您必须将此代码用作请求的 XML 元素的子元素:

<yt:accessControl action="list" permission="denied"/>

如果你不能手动添加(通常使用zend)你可以使用这个代码来添加对应的zend入口:

//Creates an extension to Zend Framework
$element = new Zend_Gdata_App_Extension_Element('yt:accessControl', 'yt', 'http://gdata.youtube.com/schemas/2007', ''); 

//Adds the corresponding XML child/attribute
$element->extensionAttributes = array(array('namespaceUri' => '', 'name' => 'action', 'value' => 'list'), array('namespaceUri' => '', 'name' => 'permission', 'value' => 'denied')); 

//Adds this extension to you video entry where "$myVideo" is your video to be uploaded
$myVideo->extensionElements = array($element); 

希望这会有所帮助:D

【讨论】:

    【解决方案2】:

    这样做.. 使用 API 版本 2 和 ZEND GDATA。 如果您查看 $videoEntry 的内容,您会注意到 $_extensionElements 和 $_extensionArributes。 所以从 VideoEntry 的扩展类向后看 你会发现抽象类 Zend_Gdata_App_Base 它有一个函数 setExtensionElements(array)。 所以只做别人说的来创建访问控制元素 并将其传递给该函数.. 而且它有效。

    $videoEntry = $yt->getFullVideoEntry($id);
    
    if ($videoEntry->getEditLink() !== null) {
    
        echo "<b>Video is editable by current user</b><br />";
    
        $putUrl = $videoEntry->getEditLink()->getHref();
    
        //set video to unlisted
        $accessControlElement = new Zend_Gdata_App_Extension_Element(
            'yt:accessControl', 'yt', 'http://gdata.youtube.com/schemas/2007', ''
        );
        $accessControlElement->extensionAttributes = array(
            array(
                'namespaceUri' => '',
                'name' => 'action',
                'value' => 'list'
            ),
            array(
                'namespaceUri' => '',
                'name' => 'permission',
                'value' => 'denied'
            ));
    
        // here is the hidden function 
        // it´s on a abstract class Zend/Gdata/App/Base/Base.php 
        // Where ZEND/Gdata/Youtube/VideoEntry.php extends
    
        $videoEntry->setExtensionElements(array($accessControlElement));
    
        $yt->updateEntry($videoEntry, $putUrl);
    
    }else{
    
        echo "<b>EL Video no es editable por este usuario</b><br />";
    
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2011-10-09
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 2012-01-12
      • 2021-07-29
      相关资源
      最近更新 更多