YouTube API将视频上传为“不公开”或“私有”?

时间:2012-01-27 06:17:13

标签: api upload youtube

我正在使用名为“YouTube上传器”的Wordpress插件,它允许您从WordPress网站上传YouTube视频,它对我有用,但唯一的问题是它将视频上传为公开,我需要它们去作为不公开或私人(或将做)。如果有人可以告诉我要添加/更改的内容,请执行此操作,非常感谢,谢谢!

我将代码上传到Pastebin,因为我不想用代码填写整个帖子,继承人链接:http://pastebin.com/GfQjhiiq

谢谢!

2 个答案:

答案 0 :(得分:3)

我不是在Wordpress上找到了,但你要找的是一个名为<yt:private/>的标签

<yt:private/> media:group 的孩子,因此示例xml架构可能如下所示。 (注意<yt:private/>位于代码块中的位置):

<media:group>
   <media:title type="plain">Title here</media:title>
   <media:description type="plain">Description here</media:description>
   <media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Travel</media:category>
   <media:keywords>keyword1</media:keywords>
   <yt:private/>
</media:group>

希望这有一些用处。

答案 1 :(得分:3)

我认为这种方法已经过时了。但是,如果您使用Plain PHP API方法,那么有一个解决方法......

这部分可以解决问题:

// unlisted upload
    $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'
        ));
    $myVideoEntry->extensionElements = array($accessControlElement);

在更大的计划中:

    $this->Zend->loadClass('Zend_Gdata_ClientLogin');
    $this->Zend->loadClass('Zend_Gdata_YouTube');

    $client = Zend_Gdata_ClientLogin::getHttpClient(ZEND_GDATA_CLIENT_EMAIL, ZEND_GDATA_CLIENT_PASS, 'youtube');
    $client->setHeaders('X-GData-Key', "key=".ZEND_GDATA_YOUTUBE_DEVELOPER_KEY);
    $yt = new Zend_Gdata_YouTube($client);
    $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

    // unlisted upload
    $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'
        ));

    $myVideoEntry->extensionElements = array($accessControlElement);

    $myVideoEntry->setVideoTitle('My Test Movie');
    $myVideoEntry->setVideoDescription('My Test Movie');
    $myVideoEntry->setVideoCategory('Sports');

整个要点都在这里: https://gist.github.com/1044349