chciałbym przesłać film używając API v3 Youtube z zwinięcie w PHP, jak opisano tutaj: https://developers.google.com/youtube/v3/docs/videos/insertPrześlij film na Youtube za pomocą curl i API v3
Mam ta funkcja
function uploadVideo($file, $title, $description, $tags, $categoryId, $privacy)
{
$token = getToken(); // Tested function to retrieve the correct AuthToken
$video->snippet['title'] = $title;
$video->snippet['description'] = $description;
$video->snippet['categoryId'] = $categoryId;
$video->snippet['tags'] = $tags; // array
$video->snippet['privacyStatus'] = $privacy;
$res = json_encode($video);
$parms = array(
'part' => 'snippet',
'file' => '@'.$_SERVER['DOCUMENT_ROOT'].'/complete/path/to/'.$file
'video' => $res
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/upload/youtube/v3/videos');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parms);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$token['access_token']));
$return = json_decode(curl_exec($ch));
curl_close($ch);
return $return;
}
Ale zwraca ten
stdClass Object
(
[error] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[domain] => global
[reason] => badContent
[message] => Unsupported content with type: application/octet-stream
)
)
[code] => 400
[message] => Unsupported content with type: application/octet-stream
)
)
Plik jest MP4.
Ktoś może pomóc?
Dzięki! Próbowałem zrobić coś lżejszego, ale spróbuję oficjalnej biblioteki Google. – genna
W Google_YoutubeService.php nie mogę znaleźć funkcji wywoływania metody wstawiania, której potrzebuję. Wszystkie metody są na liście (kanały, listy odtwarzania, filmy ..) Muszę czekać na nowszą wersję biblioteki? – genna
Zdecydowałem się użyć Zend_Gdata_YouTube i drugiej wersji API, z powodu braku metod potrzebnych do – genna