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