【发布时间】:2017-07-04 09:37:48
【问题描述】:
好的,所以我正在 Discord 中为我的服务器制作一个机器人,而我想要实现的是一个 youtube 命令。
我一直在搜索并查看 Youtube API,我能找到的只是他们搜索看起来像浏览器的东西
我正在使用 nodejs 从我的笔记本电脑上运行它,而我的机器人从 discord.js 上运行
我有一个类似的命令可以执行 MAL 和 Urban Dictionary 搜索,但我什么也没找到,而且不知道如何用 youtube 做同样的事情
我曾经有一个 python 机器人的命令能够做到这一点,而且我看到其他 Discord 机器人也能做到这一点,所以我知道这显然是可能的
基本上我的意思是我需要能够从一串搜索字词中搜索并返回一个 youtube 视频 URL(第一个搜索结果),这样使用看起来像
>>youtube Tunak Tunak Tun
会回来
https://www.youtube.com/watch?v=vTIIMJ9tUc8 ,这是该关键字的第一个搜索结果
编辑:
我已经找到了可以执行此操作的 python 命令,但我几乎没有技能也没有信心尝试将其转换为 JavaScript
elif prefix and cmd=="youtube" and len(args) > 0:
try:
yword=args.replace(" ","_")
ydata= urlreq.urlopen("http://gdata.youtube.com/feeds/api/videos?vq="+yword+"&racy=include&orderby=relevance&max-results=1")
yread= str(ydata.read())
if "<openSearch:totalResults>0</openSearch:totalResults>" in yread:
room.message("I got nothin' for ya by the name of "+args)
else:
trash , yclean=yread.split("<media:player url='http://www.youtube.com/watch?v=",1)
yclean , trash=yclean.split("&",1)
room.message("http://http://www.youtube.com/watch?v="+yclean,True)
except:
room.message("Somethin ain't right")
EDIT2(抱歉冗长):好的!我发现了一些让我更接近的东西!
https://www.npmjs.com/package/youtube-search
我的机器人现在有一个命令,如下所示:
if (commandIs("yt" , message)){
search(args.join(' ').substring(4), opts, function(err, results) {
if(err) return console.log(err);
message.channel.sendMessage(results);
console.log(results);
});
}
所以现在当我输入>>yt Tunak Tunak Tun 时,我得到了
[ { id: 'vTIIMJ9tUc8',
link: 'https://www.youtube.com/watch?v=vTIIMJ9tUc8',
kind: 'youtube#video',
publishedAt: '2014-03-21T07:00:01.000Z',
channelId: 'UC3MLnJtqc_phABBriLRhtgQ',
channelTitle: 'SonyMusicIndiaVEVO',
title: 'Daler Mehndi - Tunak Tunak Tun Video',
description: 'Presenting \'Tunak Tunak Tun\' music video sung by the talented Daler Mehndi Song Name - Tunak Tunak Tun Album - Tunak Tunak Tun Singer - Daler Mehndi ...',
thumbnails: { default: [Object], medium: [Object], high: [Object] } } ]
在控制台中,[object Object] 在 discord 频道中。
http://i.imgur.com/Vorpn0f.png
所以现在的问题是我有链接,但我无法让它返回 JUST 链接,而且我不知道如何将它从混乱中拉出来。
【问题讨论】:
-
试试 console.log(results.link)
-
@jonofan 未定义
标签: javascript node.js parsing youtube discord