我是youtube API的新手,想要上传视频,但我不知道如何使用insert
,
fileStream = r.result;
var request = gapi.client.youtube.videos.insert({
part: 'snippet, status',
resource: {
snippet: {
title: 'my video',
description: 'Description',
categoryId: "22"
},
status: {
privacyStatus: "private"
}
}
}, fileStream);
console.log("after request")
request.execute(function(response) {
var result = response.result;
console.log(response);
if (result) {
console.log("execute completed");
}
});
}
但它会出错:
domain: "youtube.video"
location: "body"
locationType: "other"
message: "Bad Request"
reason: "mediaBodyRequired"
我阅读了文档here,但没有发现女巫属性代表视频正文。 有人知道怎么修这个东西吗?感谢
答案 0 :(得分:1)
最可行的方法可能是使用AJAX在Javascript中实现可恢复的上传协议,而不是谷歌客户端库。可恢复上传协议意味着您首先使用JSON元数据和特殊参数提交请求,并且响应的Location
标头为您提供了一个辅助临时URL,用于将文件内容上传到。
文档中建议使用可恢复的上传协议,文档中的其他代码示例(JS中没有代码示例)使用它。
我得到了一个非RUP版本的API"工作"但没有上传的内容会被处理。
我尝试使用Google客户端库实现RUP,并且第一步响应对象为undefined
,即使基础HTTP请求/响应是正确的。
此处有示例代码,使用jQuery AJAX调用实现RUP:https://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html
据我所知,API文档并没有真正说明你应该如何在Javascript中进行插入。
参考文献:
https://developers.google.com/youtube/v3/guides/using_resumable_upload_protocol
https://developers.google.com/api-client-library/javascript/dev/dev_jscript
https://developers.google.com/youtube/v3/guides/uploading_a_video