Как загрузить видео на Youtube с помощью Zend Gdata - PullRequest
0 голосов
/ 08 декабря 2011

Я вошел в систему пользователя.Я нашел его любимые видео.Но когда я пытаюсь загрузить видео, я получаю сообщение об ошибке

Fatal error File to be uploaded at does not exist or is not readable.

. Этот код я использую для загрузки видео.

1 Ответ

1 голос
/ 08 декабря 2011

Edit: с информацией о том, что ваш realpath () возвращает false, мы можем предположить, что вы, вероятно, правильно настраиваете Zend Gdata и просто передаёте неверный файл.(): http://php.net/manual/en/function.realpath.php

Часть, которая имеет значение:

realpath() returns FALSE on failure, e.g. if the file does not exist.

Note:

The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.

Итак, на этом этапе я бы продолжил:

  1. Проверьте, что файлсуществует, и ваш URL правильный - возможно, попробуйте сначала использовать абсолютный URL для постепенного тестирования и наращивания до относительного
  2. Проверьте права доступа к файлу, убедитесь, что он исполняется всеми (755 разрешений Unix, ядумаю)

Удачи!

Zend Gdata Youtube Doc:

Загрузка видео может осуществляться одним из двух способов: либо путем загрузки видео напрямую, либо с помощьюотправка только метаданных видео и предоставление пользователю возможности загружать видео через HTML-форму.

Для прямой загрузки видео необходимо сначала создать новый объект »Zend_Gdata_YouTube_VideoEntry и спецификациюЕсли требуются некоторые метаданные.

Приведенный ниже код создает пустую »Zend_Gdata_YouTube_VideoEntry для загрузки.Затем объект Zend_Gdata_App_MediaFileSource используется для хранения фактического видеофайла.Под капотом объект »Zend_Gdata_YouTube_Extension_MediaGroup используется для хранения всех метаданных видео.$ UploadUrl - это место, где публикуется новая запись.Это можно указать либо с помощью $ userName текущего аутентифицированного пользователя, либо, альтернативно, вы можете просто использовать строку «default» для ссылки на текущего аутентифицированного пользователя.

$yt = new Zend_Gdata_YouTube($httpClient);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

$filesource = $yt->newMediaFileSource('mytestmovie.mov');
$filesource->setContentType('video/quicktime');
$filesource->setSlug('mytestmovie.mov');

$myVideoEntry->setMediaSource($filesource);

$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// Note that category must be a valid YouTube category !
$myVideoEntry->setVideoCategory('Comedy');

// Set keywords, note that this must be a comma separated string
// and that each keyword cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');

// Optionally set some developer tags
$myVideoEntry->setVideoDeveloperTags(array('mydevelopertag',
                                           'anotherdevelopertag'));

// Optionally set the video's location
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$where = $yt->newGeoRssWhere();
$position = $yt->newGmlPos('37.0 -122.0');
$where->point = $yt->newGmlPoint($position);
$myVideoEntry->setWhere($where);

// Upload URI for the currently authenticated user
$uploadUrl =
    'http://uploads.gdata.youtube.com/feeds/users/default/uploads';

// Try to upload the video, catching a Zend_Gdata_App_HttpException
// if available or just a regular Zend_Gdata_App_Exception

try {
    $newEntry = $yt->insertEntry($myVideoEntry,
                                 $uploadUrl,
                                 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
    echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
    echo $e->getMessage();
}

Чтобы загрузить видео какзакрытый, просто используйте: $ myVideoEntry-> setVideoPrivate ();до выполнения загрузки.$ videoEntry-> isVideoPrivate () можно использовать для проверки того, является ли запись видео приватной или нет.

Источник: http://framework.zend.com/manual/en/zend.gdata.youtube.html

...