Hoi iedereen,

Ik ben bezig om een youtube api te gebruiken zonder Zend :))

Google zelf geeft een prachtige uitleg waar ik geen hol van snap omdat het niet wil werken :(
Uploading the video file

Het is me echter wel gelukt om een Authenticatie code op te vragen met een SID en een LSID code, maar het uploaden doet echt heel erg vaag en raar.

Mijn code tot nu:
<?php
[...]
function upload() {
$files = $_FILES;
$name = $files['file']['name'];
$type = $files['file']['type'];
$size = $files['file']['size'];
$tmp_nm = $files['file']['tmp_name'];

$data = array('name' => 'Foo', 'file' => '@'.$tmp_nm);

print_r($_POST);
print_r($_FILES);

echo 'Size '.$size;

$headers = array(
"Authorization: AuthSub token=".$this->auth,
"GData-Version: 2",
"X-GData-Key: key=".$this->dev_key,
"Content-length: ".$size,
"API_XML_request"
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://gdata.youtube.com/action/GetUploadToken');
curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_REFERER,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER,0);

if($this->get_info)
{
$this->curlget_info($ch);
}
$output = curl_exec($ch);

print_r($output);

return $output;
}
[...]
?>

Output 1:

[ignore]
Array ( [token] => TOKEN ) Array ( [file] => Array ( [name] => 0016.png [type] => image/png [tmp_name] => D:\wamp\tmp\php178D.tmp [error] => 0 [size] => 4216 ) ) Size 4216
[/ignore]
Google
Error

Length Required

POST requests require a Content-length header.


Output 2:

[ignore]
Array ( [token] => TOKEN ) Array ( [file] => Array ( [name] => Film.wmv [type] => video/x-ms-wmv [tmp_name] => D:\wamp\tmp\php11D3.tmp [error] => 0 [size] => 96589 ) ) Size 96589
[/ignore]
Google
Error

Length Required

POST requests require a Content-length header.

Ik hoop dat iemand me ermee kan helpen
Nope, nice try maar werkt ook niet :P
Hmm, dit gaat nooit lukken zo :(
Als niemand antwoord, dan doe je het fout of niemand heeft zin om je te helpen denk ik.
Waarom doe je het niet gewoon op de manier die Webmakerij aangaf?
Webmakerij schreef op 18.09.2009 19:10
Effe tussen twee haakjes; browser based (http://code.google.com/intl/nl-NL/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html) is veel simpelere te implementeren


maar goed je mag moeilijk doen



goed tijd voor actie
1) curl kan de content length zelf bepalen dus geef die liever maar niet mee!
2) ik zou die timeout niet meegeven
3) misschien kan je beter eerste je file nog even moooooven naar een echte locatie

Reageren