【问题标题】:YouTube Api V3 - Videos.update - Forbidden errorYouTube Api V3 - Videos.update - 禁止错误
【发布时间】:2019-10-19 12:27:49
【问题描述】:

我正在尝试使用 Youtube API 更新视频的描述,但我只是收到了 Forbidden Error。

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' } ]

【问题讨论】:

    标签: javascript node.js youtube-api


    【解决方案1】:
    • 您想使用 Node.js 的“youtube-api”更新 YouTube 视频。
    • 您已经能够使用脚本插入新视频。
      • 在您的环境中,您已经能够使用 YouTube Data 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) => {
    

    参考资料:

    如果我误解了您的问题,我深表歉意。

    【讨论】:

    • 你搞定了,我看了很多时间这段代码,不知道我怎么没有意识到我错过了资源。谢谢你的帮助兄弟。最佳
    • @LuizAsFight 感谢您的回复。我很高兴你的问题得到了解决。在使用 Google API 的 Node.js 的 googleapis 中,请求正文设置为 resource 的属性。所以我可以确认在“youtube-api”中可以使用相同的请求正文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2015-04-19
    • 1970-01-01
    • 2014-09-03
    • 2016-11-28
    相关资源
    最近更新 更多