Добавление видео на Youtube

maximum7

Новичок
Добавление видео на Youtube

Добрый день,

Есть необходимость в добавлении видео с сайта напрямую. Есть код:

Код:
// отправляем данные
$data = "<?xml version='1.0'?>
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:media='http://search.yahoo.com/mrss/'
xmlns:yt='http://gdata.youtube.com/schemas/2007'>
<media:group>
<media:title type='plain'>test</media:title>
<media:description type='plain'>Video</media:description>
<media:category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Animals</media:category>
<media:keywords>test</media:keywords>
</media:group>
</entry>";

$boundary = $this->boundary();

if ($fp = fsockopen("uploads.gdata.youtube.com", 80, $errno, $errstr, 20))
{
$request ="POST /feeds/api/users/".$this->_user_name."/uploads HTTP/1.1\r\n";
$request.="Host: uploads.gdata.youtube.com\r\n";
$request.="Authorization: GoogleLogin auth=".$respons_key."\r\n";
$request.="X-GData-Client: ".$this->_source."\r\n";
$request.="X-GData-Key: key=".$this->_mykey."\r\n";
$request.="Slug: ".$_FILES['video_file']['name']."\r\n";
$request.="Content-Type: multipart/related; boundary=".$boundary."\r\n";
$request.="Content-Length: ".strlen($data)."\r\n";
$request.="Connection: close\r\n";
$request.="\r\n";

$request.=$boundary."\r\n";
$request.="Content-Type: application/atom+xml; charset=UTF-8\r\n";

$request.="\r\n";
$request.=$data."\r\n";
$request.=$boundary."\r\n";

$request.="\r\n";
$request.="Content-Type: video/*\r\n";
$request.="Content-Transfer-Encoding: binary\r\n";

$request.="\r\n";
$request.="/site/".$_FILES['video_file']['name']."\r\n";
$request.=$boundary."--\r\n";

socket_set_timeout($fp, 10);
fputs($fp,$request,strlen($request));
$response = fread($fp,3280);
fclose($fp);
}

, где $this->_user_name - имя пользователя
$respons_key - код, который был получен после авторизации в google
$this->_source - название моего приложения
$this->_mykey - ключ разработчика
$_FILES['video_file']['name'] - название файла
$boundary - буквы, цифры, используется как разделитель

Проблема в том, что при загрузке файлов и попытке отправить их на youtube получаю сообщение No file found in upload request. При этом, после кода выше я файл нормально сохраняю в папку у себя на сервере и всё нормально.
Код выше был взять из руководства разработчика на офф. сайте: http://code.google.com/intl/ru/apis/youtube/developers_guide_protocol.html#Direct_uploading]http://code.google.com/intl/ru/apis/youtub...irect_uploading
 

maximum7

Новичок
А вы первое сообщение читали? Мой код взят из их руководства, на него ссылка дана. То, что вы приводите в качестве примера не подходит.
 

Gas

может по одной?
maximum7
как минимум в коде 2 проблемы:
1. неправильно вычисляется Content-Length
2. вместо контента файла ты пишешь его имя
 
Сверху