将视频添加到Youtube播放列表NodeJS

时间:2017-09-28 18:37:58

标签: javascript node.js youtube youtube-api youtube-data-api

我目前正在编写代码,使用我从a previous question I had收到的nodejs服务器以编程方式创建youtube播放列表,并使用下面的工作代码:

{{1}}

我现在转到我的项目的一部分,我需要一种方法来创建它后添加视频到这个播放列表。 The sample code that I am following along with只用JS编写,并没有详细说明nodejs,因此我坚持如何用nodejs实现这个实现。我怎么能创建这样的方法(从上面链接的JS实现中获得):

{{1}}

在NodeJS语言中使用我已经开始的实现?

2 个答案:

答案 0 :(得分:1)

我现在明白你的意思。如果你想在你的播放列表上添加一个视频,那么你可以在Node中使用它来做到这一点。

  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);
            }
        });

答案 1 :(得分:0)

如果要将结果呈现为HTML,首先需要使用像(jade或pug)这样的视图引擎,然后创建一个模板,最后将其与响应一起呈现。

根据您的示例,您可以这样做:

首先创建一个模板(我正在使用Pug)将其保存为results.pug

html
  head
    title= title
  body
    h1= title
    p=description

    img(src=thumbnails.medium.url)

然后更新以下代码:

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)