我是 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 , 但没有发现 witch 属性代表视频的正文。 有人知道怎么修这个东西吗?谢谢
最佳答案
最可行的方法可能是使用 AJAX 在 Javascript 中实现可续传上传协议(protocol),而不是 Google 客户端库。可恢复上传协议(protocol)意味着您首先提交带有 JSON 元数据和特殊参数的请求,响应的 Location
header 为您提供一个辅助的临时 URL 以将您的文件内容上传到。
文档中推荐使用断点续传协议(protocol),文档中的其他代码示例(JS 没有)使用它。
我得到了一个非 RUP 版本,API 可以“正常工作”,但所有上传都不会处理。
我尝试使用 Google 客户端库实现 RUP,但在第一步响应对象是
未定义
,即使基础 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
关于javascript - 通过 API 将视频上传到 Youtube,出现 mediaBodyRequired 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24743741/