Javascript 将视频添加到Youtube播放列表NodeJS
我目前正在编写代码,使用我从中收到的nodejs服务器以编程方式创建youtube播放列表,并使用下面的工作代码执行此操作:Javascript 将视频添加到Youtube播放列表NodeJS,javascript,node.js,youtube,youtube-api,youtube-data-api,Javascript,Node.js,Youtube,Youtube Api,Youtube Data Api,我目前正在编写代码,使用我从中收到的nodejs服务器以编程方式创建youtube播放列表,并使用下面的工作代码执行此操作: var google = require('googleapis'); var Lien = require("lien"); var OAuth2 = google.auth.OAuth2; var server = new Lien({ host: "localhost" , port: 5000 }); var oauth2Client = new
var google = require('googleapis');
var Lien = require("lien");
var OAuth2 = google.auth.OAuth2;
var server = new Lien({
host: "localhost"
, port: 5000
});
var oauth2Client = new OAuth2(
'YOUR_CLIENT_ID',
'YOUR_CLIENT_SECRET',
'http://localhost:5000/oauthcallback'
);
var scopes = [
'https://www.googleapis.com/auth/youtube'
];
var youtube = google.youtube({
version: 'v3',
auth: oauth2Client
});
server.addPage("/", lien => {
var url = oauth2Client.generateAuthUrl({
access_type: "offline",
scope: scopes
});
lien.end("<a href='"+url+"'>Authenticate yourself</a>");
})
server.addPage("/oauthcallback", lien => {
console.log("Code obtained: " + lien.query.code);
oauth2Client.getToken(lien.query.code, (err, tokens) => {
if(err){
return console.log(err);
}
oauth2Client.setCredentials(tokens);
youtube.playlists.insert({
part: 'id,snippet',
resource: {
snippet: {
title:"Test",
description:"Description",
}
}
}, function (err, data, response) {
if (err) {
lien.end('Error: ' + err);
}
else if (data) {
lien.end(data);
}
if (response) {
console.log('Status code: ' + response.statusCode);
}
});
});
});
var google=require('googleapis');
var留置权=要求(“留置权”);
var OAuth2=google.auth.OAuth2;
var服务器=新留置权({
主机:“本地主机”
,港口:5000
});
var oauth2Client=新的OAuth2(
“您的客户ID”,
“你的客户的秘密”,
'http://localhost:5000/oauthcallback'
);
变量作用域=[
'https://www.googleapis.com/auth/youtube'
];
var youtube=google.youtube({
版本:“v3”,
授权:oauth2Client
});
server.addPage(“/”,lien=>{
var url=oauth2Client.generateAuthUrl({
访问类型:“脱机”,
范围:范围
});
留置权。结束(“”);
})
server.addPage(“/oauthcallback”,lien=>{
log(“获取代码:+lien.query.Code”);
oauth2Client.getToken(lien.query.code,(err,tokens)=>{
如果(错误){
返回console.log(err);
}
oauth2Client.setCredentials(令牌);
youtube.playlists.insert({
部分:'id,snippet',
资源:{
片段:{
标题:“测试”,
description:“description”,
}
}
},函数(错误、数据、响应){
如果(错误){
结束('错误:'+err);
}
else if(数据){
留置权。结束(数据);
}
如果(答复){
console.log('状态代码:'+响应.statusCode);
}
});
});
});
我现在转到我的项目的一部分,我需要一种方法,一旦我创建了这个播放列表,就可以将视频添加到这个播放列表中。只是用JS编写的,没有详细介绍nodejs,因此我一直在研究如何用nodejs实现这个实现。我如何创建这样的方法(从上面链接的JS实现接收):
函数addToPlaylist(id、startPos、endPos){
变量详细信息={
视频id:id,
种类:“youtube#视频”
}
if(startPos!=未定义){
详细信息['startAt']=startPos;
}
如果(endPos!=未定义){
详细信息['endAt']=endPos;
}
var request=gapi.client.youtube.playlitems.insert({
部分:'代码片段',
资源:{
片段:{
playlid:playlid,
resourceId:详细信息
}
}
});
请求.执行(函数(响应){
$('#status').html(''+JSON.stringify(response.result)+'';
});
}
使用NodeJS语言,使用我已经启动的实现?如果要将结果呈现为HTML,首先需要使用视图引擎(如jade或pug),然后创建模板,最后将其与响应一起呈现 根据您的示例,您可以这样做: 首先创建模板(Im使用Pug)并将其另存为results.Pug
var google = require('googleapis');
var Lien = require("lien");
var OAuth2 = google.auth.OAuth2;
var pug = require('pug')
var server = new Lien({
host: "localhost"
, port: 5000,
views:{
path:__dirname,
name:'pug'
}
});
var oauth2Client = new OAuth2(
'YOUR_CLIENT_ID',
'YOUR_CLIENT_SECRET',
'http://localhost:5000/oauthcallback'
);
var scopes = [
'https://www.googleapis.com/auth/youtube'
];
var youtube = google.youtube({
version: 'v3',
auth: oauth2Client
});
server.addPage("/", lien => {
var url = oauth2Client.generateAuthUrl({
access_type: "offline",
scope: scopes
});
lien.end("<a href='"+url+"'>Authenticate yourself</a>");
})
server.addPage("/oauthcallback", lien => {
console.log("Code obtained: " + lien.query.code);
oauth2Client.getToken(lien.query.code, (err, tokens) => {
if(err){
return console.log(err);
}
oauth2Client.setCredentials(tokens);
youtube.playlists.insert({
part: 'id,snippet',
resource: {
snippet: {
title:"Test",
description:"Description",
}
}
}, function (err, data, response) {
if (err) {
lien.end('Error: ' + err);
}
else if (data) {
//lien.end(data);
lien.render('results',data.snippet)
}
if (response) {
console.log('Status code: ' + response.statusCode);
}
});
});
});
然后更新下面的代码:
var server = new Lien({
host: "localhost"
, port: 5000,
views:{
path:__dirname,
name:'pug'
}
});
及
我现在明白你的意思了。如果你想在你的播放列表中添加视频,那么你可以在节点中使用这个
我想你误解了这个问题或者我误解了你的答案,我没有试图用HTML呈现任何东西,我没有在这里使任何东西可视化。我想知道的是,如何使用nodejsDid将视频添加到youtube上的播放列表代码成功了吗?如果没有OAuth令牌生成,我无法找到如何使用Youtube api。谢谢
var google = require('googleapis');
var Lien = require("lien");
var OAuth2 = google.auth.OAuth2;
var pug = require('pug')
var server = new Lien({
host: "localhost"
, port: 5000,
views:{
path:__dirname,
name:'pug'
}
});
var oauth2Client = new OAuth2(
'YOUR_CLIENT_ID',
'YOUR_CLIENT_SECRET',
'http://localhost:5000/oauthcallback'
);
var scopes = [
'https://www.googleapis.com/auth/youtube'
];
var youtube = google.youtube({
version: 'v3',
auth: oauth2Client
});
server.addPage("/", lien => {
var url = oauth2Client.generateAuthUrl({
access_type: "offline",
scope: scopes
});
lien.end("<a href='"+url+"'>Authenticate yourself</a>");
})
server.addPage("/oauthcallback", lien => {
console.log("Code obtained: " + lien.query.code);
oauth2Client.getToken(lien.query.code, (err, tokens) => {
if(err){
return console.log(err);
}
oauth2Client.setCredentials(tokens);
youtube.playlists.insert({
part: 'id,snippet',
resource: {
snippet: {
title:"Test",
description:"Description",
}
}
}, function (err, data, response) {
if (err) {
lien.end('Error: ' + err);
}
else if (data) {
//lien.end(data);
lien.render('results',data.snippet)
}
if (response) {
console.log('Status code: ' + response.statusCode);
}
});
});
});
var server = new Lien({
host: "localhost"
, port: 5000,
views:{
path:__dirname,
name:'pug'
}
});
//lien.end(data);
lien.render('results',data.snippet)
youtube.playlistItems.insert({
part: 'id,snippet',
resource: {
snippet: {
playlistId:"YOUR_PLAYLIST_ID",
resourceId:{
videoId:"THE_VIDEO_ID_THAT_YOU_WANT_TO_ADD",
kind:"youtube#video"
}
}
}
}, function (err, data, response) {
if (err) {
lien.end('Error: ' + err);
}
else if (data) {
lien.end(data);
}
if (response) {
console.log('Status code: ' + response.statusCode);
}
});