【问题标题】:YouTube API Upload Video as 'Unlisted' or 'Private'?YouTube API 将视频上传为“不公开”或“私人”?
【发布时间】:2023-04-03 08:58:01
【问题描述】:

我正在使用一个名为“YouTube Uploader”的 Wordpress 插件,它允许您从 WordPress 网站上传 YouTube 视频,它对我有用,但唯一的问题是它将视频上传为公开,我需要它们去设置为未列出或私有(两者都可以)。如果有人能告诉我要添加/更改什么来做到这一点,将不胜感激,谢谢!

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

谢谢!

【问题讨论】:

    标签: api upload youtube


    【解决方案1】:

    我对 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>
    

    希望这有一些用处。

    【讨论】:

    • 你的 xml 中有一个无关的 ''
    • 此外,类别必须是有效的现有 youtube 类别,例如“旅行”
    • @Danack57 - 修改了您的观察结果 - 感谢您通知我。
    【解决方案2】:

    我认为这种方法已经过时了。但是,如果您要使用普通 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

    【讨论】:

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