Youtube api, не могу загрузить ролик праямой загрузкой.

W
На сайте с 10.05.2009
Offline
114
691

ВОбщем перепробывал и так и сяк, и все равно не получается загрузить файл. Может у кого есть опыт в этом деле и подскажет где ошибка у меня -

<?php

$newfile=$_SERVER['DOCUMENT_ROOT']."/uploads/trailer.flv";
$data = <<<HTML
--f93dcbA3
Content-Type: application/atom+xml; charset=UTF-8

<?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">$film</media:title>
<media:description type="plain">Трейлер к фильму {$film}</media:description>
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Video</media:category>
<media:keywords>film, trailer</media:keywords>
</media:group>
</entry>
--f93dcbA3

Content-Type: video/x-flv
Content-Transfer-Encoding: binary


HTML;
$data .= file_get_contents ($newfile);

$eq = "accountType=HOSTED_OR_GOOGLE&Email=$mail&Passwd=$pass&service=youtube&source=$apiname";
if ($fp = fsockopen ("ssl://www.google.com", 443, $errno, $errstr, 20))
{
$request ="POST /youtube/accounts/ClientLogin HTTP/1.0\r\n";
$request.="Host: www.google.com\r\n";
$request.="Content-Type:application/x-www-form-urlencoded\r\n";
$request.="Content-Length: ".strlen($eq)."\r\n";
$request.="\r\n\r\n";
$request.=$eq;
fwrite($fp,$request,strlen($request));
while (!feof($fp))
$response.=fread($fp,8192);
fclose($fp);
}
preg_match("!(.*?)Auth=(.*?)\n!si",$response,$ok);

echo $ok[2];
$token = $ok[2];

$data .= "\r\n--f93dcbA3--";
//echo $data;
$len = strlen($data);
echo "длинна запроса = $len <br>";
if ($fp = fsockopen ("uploads.gdata.youtube.com", 80, $errno, $errstr, 20))
{
$request =<<<HTML
POST /feeds/api/users/$login/uploads HTTP/1.1
Host: uploads.gdata.youtube.com
Authorization: GoogleLogin auth=$token
X-GData-Client: $apiname
X-GData-Key: key=$apikey
Slug: trailer.flv
Content-Type: multipart/related; boundary=--f93dcbA3
Content-Length: $len
Connection: close

$data
HTML;

socket_set_timeout($fp, 180);

fputs($fp,$request,strlen($request));
$response = fread($fp,3280);
fclose($fp);
echo $response;

}

Вобщем логинимся нормально, токен получаю, файл с трейлером, сто процентов грузится в память (проверял определяя размер переменной data), формат пост запроса тоже вроде бы соответствует формату апи ютуба, но в результате все время приходит один и тотже ответ -

HTTP/1.1 400 Bad Request
Server: Upload Server Built on Nov 30 2009 13:21:18 (1259616078)
Content-Type: text/plain; charset=utf-8
Date: Mon, 07 Dec 2009 08:27:54 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Connection: close
Content-Length: 32
X-XSS-Protection: 0

No file found in upload request.

вобщем не пойму где моя ошибка...

Может кто сталкивался с подобным, и подскажет в чем я не прав.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий