Tag: youtube

节点JS – Youtube API是空白的

我下载并安装谷歌apis与npm install googleapis ,现在我试图访问我的节点js文件与此代码中的api: var google = require('googleapis') var youtube = google.youtube({version: 'v3', auth: API_KEY}) 但是,当我尝试访问video对象时,我总是返回null 。 显然,YouTube对象已损坏,因为当我把它串起来,我得到了回来: {"_options":{"auth":"*********"},"activities":{},"captions":{},"channelBanners":{},"channelSections":{},"channels":{},"commentThreads":{},"comments":{},"guideCategories":{},"i18nLanguages":{},"i18nRegions":{},"liveBroadcasts":{},"liveStreams":{},"playlistItems":{},"playlists":{},"search":{},"subscriptions":{},"thumbnails":{},"videoAbuseReportReasons":{},"videoCategories":{},"videos":{},"watermarks":{},"google":{"_options":{},"auth":{"_cachedCredential":null}}} 所以所有的小“子对象”都是空的。 我该如何解决?

如何在php中用js文件解码签名文件

如何在PHP中使用此base.js url解码YouTubevideo签名 我想用PHP中的这个JavaScriptparsing这个签名 https://s.ytimg.com/yts/jsbin/player-en_US-vflF6iOW5/base.js 1. Original signature 558D58CA687B9BD6B4C7E22FDB1C07395679C758489.0203EF29F3E3BD1E7A32567C9F02FE09035C837676 2parsing出解码签名后858CA687B95D6B4C7E22FDB1C07395679C75D489.0203EF29F3E3BD1E7A32567C9F02FE09035C738 我如何parsing这个签名与PHP中的JS并获得第二个解码签名

Youtube API,NodeJS和Promise问题

我在Node中正在进行的项目的一部分工作非常挣扎。 几个星期前我第一次开始使用Node,所以我对它很陌生,在编码方面我也不是很有经验。 我有一个名为video.js的库,我想获取特定播放列表的video列表。 我有一个在控制器中调用的原型函数getVideoList,该函数获取播放列表的id以及其他一些信息,然后对youtube进行API调用并获取结果。 如果有超过50的结果,那么在响应中会有nextPageToken属性。 如果有,那么我将不得不再次进行API调用,以便获得结果的下一页。 (我不认为有可能在一个API调用中获得所有video对象。) 发生什么事的例子: code starts first loop finishes promise fulfilled second loop starts second loop finishes … meanwhile the rest of the code is already moving along to the next function (that needs to have the second loops results added to the data videolist) 截至目前,这段代码首先调用了API,并将dataObj推入videoList。 这个承诺在循环的其余部分完成之前就已经完成了。 如果我将履行(videoList)从if语句的第一部分中删除,那么这个承诺根本就没有实现。 我一直在做很多的阅读,看起来Bluebird可能是正确的路,但是这是我的代码中唯一不能正常工作的部分,我不知道是否有必要,如果是这样,我很困惑如何在这种情况下实现它。 任何帮助将不胜感激! Videos.prototype.getVideoList […]

使用一个stream,使用Node.js将video上传到Youtube

我可以轻松地将video更新到Youtube: var googleapis = require('googleapis'); googleapis.discover('youtube', 'v3').execute(function(err, client) { var metadata = { snippet: { title:'title', description: 'description'}, status: { privacyStatus: 'private' } }; client .youtube.videos.insert({ part: 'snippet,status'}, metadata) .withMedia('video/mp4', fs.readFileSync('user.flv')) .withAuthClient(auth) .execute(function(err, result) { if (err) console.log(err); else console.log(JSON.stringify(result, null, ' ')); }); }); 问题是对于fs.readFileSync大文件是非常不实际的。 显然这是固定的,但提供的例子是为谷歌驱动器: var fs = require('fs'); var drive = google.drive({ […]

NodeJS – 如何使forEach和for循环函数顺序

server.queue.forEach(function(q) { YTDL.getInfo(q, (error, info) => { console.log(info["title"]); message.reply('"' + info["title"] + '"'); }); }); for (var i = 0; i < server.queue.length; i++) { YTDL.getInfo(server.queue[i], (error, info) => { console.log(info["title"]); message.reply('"' + info["title"] + '"'); }); } 我使用Node.js创build了一个名为Discord的VoIP音乐机器人,每当上述任一循环执行时,都会以随机顺序打印。 如何使它们按顺序打印(server.queue [0],server.queue [1],server.queue [2] …)? YTDL是一个名为ytdl-core的软件包,用于下载YouTubevideo,并使用video链接显示video标题等信息。 server.queue是一组YouTubevideo链接。

使用node.js将video上传到YouTube

我已经与官方的Google API节点客户端取得了一些进展,但我已经到了一个死路一条,弄清楚如何将我的videofile upload到YouTube。 我有一个video: example.mp4 我有这个代码: OAuth2Client = googleapis.OAuth2Client; var oauth2Client = new OAuth2Client('XXXXXX', 'XXXXXXX', 'http://callback_url'); googleapis.discover('youtube', 'v3').execute(function(err, client) { if (err) console.log(err); // I think the following is the bones of what I want to do client.youtube.videos.insert({}).execute(function(err, client) { if (err) console.log(err); }); }); 我只使用插入方法(我期望没有传递参数)的错误,客户端初始化并返回罚款。 我不知道如何将video(与脚本相同的目录)传递给YouTube。 只是一个指针将不胜感激。

在JavaScript / Node.js中将Youtube Data API V3video持续时间格式转换为秒数

我试图将ISO 8601string转换为JS /节点秒。 我能想到的最好的是: function convert_time(duration) { var a = duration.match(/\d+/g) var duration = 0 if(a.length == 3) { duration = duration + parseInt(a[0]) * 3600; duration = duration + parseInt(a[1]) * 60; duration = duration + parseInt(a[2]); } if(a.length == 2) { duration = duration + parseInt(a[0]) * 60; duration = duration + parseInt(a[1]); […]