YouTube Api V3-Videos.update-禁止的错误

时间:2019-06-04 00:33:16

标签: javascript node.js youtube-api

我正在尝试使用Youtube API更新视频的说明,但我只是遇到了禁止错误。

Videos.insert调用实际上正在工作,对两者的身份验证都以相同的方式进行(如我在代码上所示)。但是对于Videos.update来说,它是行不通的。 我并不是要立即执行这两个操作,而只是为了更好地说明情况并使代码更易于阅读。

const Youtube = require('youtube-api');
const request = require('request');

// test variables below
const accessToken = 'ASPODKODASP';
const title = 'test';
const description ='test';
const url = 'https://testvideo.url/sadokdas.mp4';
const youtubeId = 'm_23k21423';

Youtube.authenticate({
  type: 'oauth',
  access_token: accessToken
});

Youtube.videos.insert({
  resource: {
    snippet: {
      title: title,
      description: description
    },
    status: {
      privacyStatus: 'public'
    }
  },
  part: 'snippet, status',
  media: {
    body: request(url)
  }
}); // <- THIS WORKS

Youtube.videos.update({
  id: youtubeId,
  snippet: {
    title: title,
    description: description,
    categoryId: '22'
  },
  part: 'snippet'
}, (err, data) => {
  if (err) {
    console.log('error on updating youtube description');
    console.log(err);

    return;
  }
});

我希望视频说明能够得到更新,但我却得到了

code: 403,
errors: 
[ { domain: 'youtube.video',
reason: 'forbidden',
message: 'Forbidden' } ]

1 个答案:

答案 0 :(得分:1)

  • 您要使用Node.js的“ youtube-api”更新YouTube视频。
  • 您已经可以使用脚本插入新视频。
    • 在您的环境中,您已经可以使用YouTube数据API。
  • 您的脚本中,Youtube.videos.update()处发生错误。

如果我的理解是正确的,那么该修改如何?在此修改中,Youtube.videos.update()的请求正文已修改。

修改后的脚本:

从:
Youtube.videos.update({
  id: youtubeId,
  snippet: {
    title: title,
    description: description,
    categoryId: '22'
  },
  part: 'snippet'
}, (err, data) => {
至:
Youtube.videos.update({
  resource: { // Added
    id: youtubeId,
    snippet: {
      title: title,
      description: description,
      categoryId: '22'
    }
  },
  part: 'snippet'
}, (err, data) => {

参考文献:

如果我误解了你的问题,我表示歉意。