Youtube v3 API:上传字幕文件时出现错误 500 (BackendError)

Youtube v3 API: Error 500 (BackendError) when uploading a caption file

我正在编写一些概念验证代码来自动将字幕上传到现有视频。这是我的相关代码:

var file = $('input[type=file]').get(0).files[0];

var metadata = {
    snippet: {
        videoId: 'xKE5LG5Xd9o',
        language: 'english',
        name: 'test'
    }
};
var uploader = new MediaUploader({
    baseUrl: 'https://www.googleapis.com/upload/youtube/v3/captions',
    file: file,
    token: gapi.auth.getToken().access_token,
    metadata: metadata,
    params: {
        part: 'snippet'
    }
});

uploader.upload();

当我 运行 此代码时,我得到以下 JSON 响应:

{
    "error": {
        "errors": [{
            "domain": "global",
            "reason": "backendError",
            "message": "Backend Error"
        }],
        "code": 500,
        "message": "Backend Error"
    }
}

我找不到关于此错误响应的任何最新信息。有 this old thread 表明这是一个 API 错误,等待一段时间再重试将解决它。但是,这对我来说似乎不起作用。

根据我使用图书馆的经验,您需要将语言设置为 BCP-47 语言标签。所以这意味着将 "English" 更改为 "en".

var metadata = {
    snippet: {
        videoId: 'xKE5LG5Xd9o',
        language: 'en',
        name: 'test'
    }
};