多亏了Youtube Data API文档,我能够使用Javascript (使用XMLHttpRequest
)执行可恢复的视频上传。这是有据可查的。但是有一个Javascript函数(youtube.videos.insert
) (在我个人看来)文档很少。在网上研究了两天后,我不得不在这里寻求一些帮助。
下面是一个代码示例
function defineRequest() {
if (!isAuthorized) {
alert("You need to authorize the request to proceed.");
return;
}
var file = document.querySelector('input[type=file]').files[0];
if (!file) {
alert("You need to select a file to proceed.");
return;
}
var reader = new FileReader();
reader.onloadend = function() {
alert("file load completed");
var data = reader.result;
var fileStream = new Blob([new Uint8Array(data)], {type: 'application/octet-stream'});
//var fileStream = new Blob([data], {type: 'application/octet-stream'});
alert(fileStream.size);
alert(fileStream.type);
var request = gapi.client.youtube.videos.insert({
media: {
mimeType: 'application/octet-stream',
body: fileStream
},
part: 'id,snippet,status',
notifySubscribers: true,
resource: {
snippet: {
categoryId: 22,
title: $('#title').val(),
description: $('#description').text(),
tags: ['hello']
},
status: {
privacyStatus: $('#privacy-status option:selected').text()
}
}
});
request.execute(function (response) {
alert(JSON.stringify(response));
console.log(JSON.stringify(response));
if (response === false) {
alert("cannot upload video");
console.log("Cannot upload video");
return;
} else {
if (response.code != 0) {
alert("cannot upload video");
console.log("Cannot upload video");
return;
}
var result = response.result;
alert(JSON.stringify(result));
alert("upload completed");
}
});
}
reader.readAsArrayBuffer(file);
}
下面是我收到的错误400 (mediaBodyRequired)。有没有人能提供一些线索?
{
"code":400,
"data":[{
"domain":"youtube.video",
"reason":"mediaBodyRequired",
"message":"The request does not include the video content.",
"locationType":"other",
"location":"body"
}],
"message":"The request does not include the video content.",
"error": {
"code":400,
"data":[{
"domain":"youtube.video",
"reason":"mediaBodyRequired",
"message":"The request does not include the video content.",
"locationType":"other",
"location":"body"
}],
"message":"The request does not include the video content."
}
}
发布于 2018-05-18 17:16:33
你读过the docs吗?它看起来和你的代码有很大的不同。
https://stackoverflow.com/questions/50407605
复制相似问题