编程语言
首页 > 编程语言> > javascript – 使用NodeJS创建YouTube播放列表

javascript – 使用NodeJS创建YouTube播放列表

作者:互联网

我正在尝试使用NodeJS服务器创建youtube播放列表.我已按照此链接中显示的Oauth的NodeJS快速入门说明进行操作:https://github.com/youtube/api-samples/blob/master/javascript/nodejs-quickstart.js

通过此链接,我还可以使用以下方法访问频道信息:

function getChannel(auth) {
  var service = google.youtube('v3');
  service.channels.list({
    auth: auth,
    part: 'snippet,contentDetails,statistics',
    forUsername: 'GoogleDevelopers'
  }, function(err, response) {
    if (err) {
      console.log('The API returned an error: ' + err);
      return;
    }
    var channels = response.items;
    if (channels.length == 0) {
      console.log('No channel found.');
    } else {
      console.log('This channel\'s ID is %s. Its title is \'%s\', and ' +
                  'it has %s views.',
                  channels[0].id,
                  channels[0].snippet.title,
                  channels[0].statistics.viewCount);
    }
  });
}

我现在正尝试通过我的服务器创建播放列表,但是如何实现此目的的唯一参考是通过此JavaScript链接:https://github.com/youtube/api-samples/blob/master/javascript/playlist_updates.js

我已经从上面的代码中将此方法添加到nodejs-quickstart.js以尝试实现:

function createPlaylist() {
  var request = gapi.client.youtube.playlists.insert({
    part: 'snippet,status',
    resource: {
      snippet: {
        title: 'Test Playlist',
        description: 'A private playlist created with the YouTube API'
      },
      status: {
        privacyStatus: 'private'
      }
    }
  });
  request.execute(function(response) {
    var result = response.result;
    if (result) {
      playlistId = result.id;
      $('#playlist-id').val(playlistId);
      $('#playlist-title').html(result.snippet.title);
      $('#playlist-description').html(result.snippet.description);
    } else {
      $('#status').html('Could not create playlist');
    }
  });
}

我无法将其转换为NodeJS示例,因为JS方法中没有auth发生,并且因为“gapi”和“client”不存在/未在nodeJS快速入门示例中提及.有人可以帮助将这个JS方法转换为nodeJS吗?

解决方法:

如果你想使用纯Nodejs,你应该使用google api nodejs client并使用这个sample usage,然后按照documentation to insert playlist

当然,你需要authentication process too

在开始整个进度之前,请确保通过Console / SSH将installed google apis放入项目文件夹中

样品

控制台:npm install googleapis lien –save

Activate your Youtube Data API

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

运行脚本后,只需通过您喜欢的浏览器转到http://localhost:5000/即可

标签:javascript,node-js,youtube-api,youtube-data-api,youtube-api-v3
来源: https://codeday.me/bug/20190527/1163540.html