使用CURL和API v3将视频上传到YouTube

时间:2013-07-15 03:41:03

标签: api video upload youtube

这是我正在使用的功能:

function uploadVideo($file, $title, $description, $tags, $categoryId, $privacy, $tokenacc){
$direccionvideo = $_SERVER['DOCUMENT_ROOT'].'/uploadyt/mp4/'.$file;
$video->snippet['title']         = $title;
$video->snippet['description']   = $description;
$video->snippet['categoryId']   = $categoryId;
$video->snippet['tags']       = array($tags); // array

$video->status['privacyStatus'] = $privacy;

$res = json_encode($video);

$parms = array(
'part'  => 'snippet, status',
    'file'  => '@'.$direccionvideo,
    'body' => $res
);

$cabeceras = array('Authorization: Bearer '.$tokenacc, 'Content-Type: video/mp4');

$ch = curl_init('https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status&key=AIXXXXXXXXXXXXXXXXX');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parms);
curl_setopt($ch, CURLOPT_HTTPHEADER, $cabeceras);
$return = curl_exec($ch);
curl_close($ch);

return $return;
}

但它返回了这个:

{ "kind": "youtube#video", "etag": "\"rFqCJSkEICLP3Hq6a4AADI7kf48/Ppz1_LDXz9KAv4eC-UouSKrhjn4\"", "id": "XXXXXXXXX", "snippet": { "publishedAt": "2013-07-15T03:06:45.000Z", "channelId": "UCWXN1EzwIl2clMliTxxO7ww", **"title": "unknown"**, **"description": ""**, "thumbnails": { "default": { "url": "https://i1.ytimg.com/vi/XXXXXXXX/default.jpg" }, "medium": { "url": "https://i1.ytimg.com/vi/XXXXXXXX/mqdefault.jpg" }, "high": { "url": "https://i1.ytimg.com/vi/XXXXXXXX/hqdefault.jpg" } }, "channelTitle": "ChannelYouTube", "categoryId": "2" }, "status": { "uploadStatus": "uploaded", "privacyStatus": "public", "license": "youtube", "embeddable": true, "publicStatsViewable": true } }

上传视频(无法处理),标题为“未知”,不含说明,标签和类别。

就好像API没有任何帖子字段。

有人可以帮忙吗?

0 个答案:

没有答案