【发布时间】:2013-05-29 05:31:29
【问题描述】:
我可以授权。
我的页面上有 2 个这样的按钮:
<input type="file" id="fileToSend"/>
<input type="button" onclick="upload()" value="Upload" id="btnSend"/>
我想在单击“上传”按钮时将所选文件上传到 youtube。我调用这样的函数:
function upload() {
var fileStream;
var video = document.getElementById("fileToSend");
var file = video.files[0];
console.log(file);
console.log("Nombre: " + file.name);
var r = new FileReader();
r.onload = function () {
console.log("fileStream creado");
fileStream = r.result;
//console.log("FileStream: " + fileStream);
};
console.log("Creando fileStream..");
r.readAsBinaryString(file);
gapi.client.load('youtube', 'v3',
function() {
var request = gapi.client.youtube.videos.insert({
part: 'snippet, status',
resource: {
snippet: {
title: 'Video Test Title 5',
description: 'Video Test Description',
tags: ['Tag 1', 'Tag 2'],
categoryId: "22"
},
status: {
privacyStatus: "private"
}
}
}, fileStream);
request.execute(function (response) {
console.log("executing..");
var result = response.result;
console.log(response);
if (result) {
console.log("execute completed");
document.write(result);
}
});
});
}
问题是我在响应对象“mediaBodyRequired”上出现错误,就像我没有正确发送 fileStream。
【问题讨论】:
-
你找到问题了吗?如果是这样,请分享您的完整代码,因为这正是我想要做的。
-
我收到错误:“未捕获的 ReferenceError:未定义 gapi。”为什么?
-
我最终使用了 v2 API。如果我找到使用 v3 的解决方案,我会发布它。
-
我会很高兴的。谢谢。
-
不应该在媒体的onload函数中完成gapi调用吗?否则 fileStream 不需要全部加载,并且 youtube API 不喜欢这样。
标签: javascript upload youtube-api youtube-javascript-api