我试图用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' } ]发布于 2019-06-04 02:54:02
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) => {参考文献:
如果我误解了你的问题,我道歉。
https://stackoverflow.com/questions/56436012
复制相似问题