我使用NodeJS,我想在我的脚本中插入一个功能,将视频插入特定的播放列表。
我在互联网上看到很多,我知道Youtube api需要OAuth才能工作,所以,有一些HTML页面/回调来获取令牌。
我是否遗漏了某些内容,或者在没有任何用户互动的情况下无法在脚本中处理此令牌?
这是一个简单的例子吗?我尝试使用youtube-api npm:
var express = require('express');
var router = express.Router(),
Youtube = require("youtube-api"),
fs = require('fs'),
router.get('/insert', function(req, res, next) {
Youtube.authenticate({
type: "oauth"
, token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZ9F0sVpqEXh"
});
var req = Youtube.videos.insert({
"resource": {
// Video title and description
"snippet": {
"title": "Test",
"description": "Test video upload via YouTube API"
},
"status": {
"privacyStatus": "private"
}
},
"part": "snippet,status,id",
"media": {
"body": fs.createReadStream('./test.mp4')
}
}, function (err, data) {
console.log(err);
// insert to playlist
Youtube.playlistItems.insert({
"resource": {
"snippet": {
"playlistId": "xxxxxxxxxxxxxxxxxxxgvjIu",
"resourceId": {
"kind": "youtube#video",
"videoId": data.id // ???
}
},
"status": {
"privacyStatus": "private"
}
}
}, function (err, data) {
if (err) {
return console.log(err);
}
});
});
res.json();
});
我收到错误401:
消息:'需要登录'
编辑1
开始的好视频:https://www.youtube.com/watch?v=hfWe1gPCnzc
我现在有了一个令牌,但不知道怎么没有限制没有这个...现在我改变了:
Youtube.authenticate({
type: "oauth"
, token: "token_from_google"
});
我收到了错误:
消息:'由于您已超出请求,因此无法完成请求 你的quota。' },
代码:403,消息:'请求无法完成,因为您 超出了你的配额。
我无法理解......?
答案 0 :(得分:0)
您已达到分配的限制(quota)。请参阅Core API errors以供参考。
YouTube Data API使用配额来确保开发者使用 按预期服务,不要创建不公平的应用程序 降低服务质量或限制他人访问。所有API请求, 包括无效请求,至少产生一点配额成本。您 可以在Developers Console中找到您的应用程序可用的配额。
启用YouTube Data API的项目具有默认配额 每天分配100万单位,足够的金额 绝大多数API用户。默认配额,即 可能会有所变化,帮助我们优化配额分配并扩大我们的规模 基础设施对我们的API用户更有意义。您 可以在Google的API的Usage标签上查看您的配额使用情况 开发人员控制台。
注意:如果达到配额限制,您可以申请额外配额 在开发人员控制台的Quotas标签上。