我正在尝试使用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' } ]
答案 0 :(得分:1)
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) => {
如果我误解了你的问题,我表示歉意。