YouTube API Загружать видео как «Не в списке» или «Приват»? - PullRequest
0 голосов
/ 27 января 2012

Я использую плагин Wordpress под названием «YouTube Uploader», он позволяет загружать видео YouTube с вашего сайта WordPress, он работает для меня, но единственная проблема заключается в том, что он загружает видео как общедоступные, и мне нужно, чтобы они пошли как незарегистрированные или частные (либо подойдет). Если бы кто-то мог сказать мне, что добавить / изменить, чтобы он сделал это, это было бы очень признательно, спасибо!

Я загрузил код в Pastebin, так как не хотел заполнять весь этот пост кодом, вот ссылка: http://pastebin.com/GfQjhiiq

Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 января 2013

Я думаю, что этот метод довольно устарел. Но есть обходной путь, если бы вы использовали простой API-метод PHP ...

Эта часть делает свое дело:

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

Весь Gist здесь: https://gist.github.com/1044349

3 голосов
/ 15 февраля 2012

Я не особо разбираюсь в 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>

Надеюсь, что это будет полезно.

...