我尝试使用Node.js中的googleapi
模块(YouTube API V3)将视频上传到我的YouTube频道
视频上传得很好 - 我无法找到如何将标题和说明传递给上传命令。
这是我的代码:
//Authorization stuff above
fs.readFile('./youtube_videos/in.avi', function(err, content){
if(err){
console.log('read file error: '+err);
} else {
yt.videos.insert({
part: 'status,snippet',
autoLevels: true,
media: {
body: content
}
}, function(error, data){
if(error){
console.log('error: '+error);
} else {
console.log('https://www.youtube.com/watch?v='+data.id+"\r\n\r\n");
console.log(data);
}
});
}
})
我知道如何传递一些snippet
对象,如
snippet: {
title: 'test upload2',
description: 'My description2',
}
但是我无法找到它应该在哪里 - 我尝试了每一种(几乎)可能的组合
谢谢!
答案 0 :(得分:1)
我找到了答案
如果有人正在寻找它 -
该代码段应该是请求选项中resource
对象的一部分
(我还将fs.readFile
转换为fs.createReadStream
)
function uploadToYoutube(video_file, title, description,tokens, callback){
var google = require("googleapis"),
yt = google.youtube('v3');
var oauth2Client = new google.auth.OAuth2(clientId, appSecret, redirectUrl);
oauth2Client.setCredentials(tokens);
google.options({auth: oauth2Client});
return yt.videos.insert({
part: 'status,snippet',
resource: {
snippet: {
title: title,
description: description
},
status: {
privacyStatus: 'private' //if you want the video to be private
}
},
media: {
body: fs.createReadStream(video_file)
}
}, function(error, data){
if(error){
callback(error, null);
} else {
callback(null, data.id);
}
});
};