首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Javascript的Youtube数据API:直接上传视频

使用Javascript的Youtube数据API:直接上传视频
EN

Stack Overflow用户
提问于 2018-05-18 17:03:31
回答 1查看 321关注 0票数 0

多亏了Youtube Data API文档,我能够使用Javascript (使用XMLHttpRequest)执行可恢复的视频上传。这是有据可查的。但是有一个Javascript函数(youtube.videos.insert) (在我个人看来)文档很少。在网上研究了两天后,我不得不在这里寻求一些帮助。

下面是一个代码示例

代码语言:javascript
运行
复制
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)。有没有人能提供一些线索?

代码语言:javascript
运行
复制
{
"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."
}

}

EN

回答 1

Stack Overflow用户

发布于 2018-05-18 17:16:33

你读过the docs吗?它看起来和你的代码有很大的不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50407605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档