【问题标题】:youtube search not getting URLSyoutube 搜索没有获取 URLS
【发布时间】:2020-09-18 00:51:45
【问题描述】:

我正在尝试创建一个在 youtube 上搜索视频 URL 的命令。当我自己运行该命令时,它会发送嵌入内容,告诉您缩小搜索范围。但是,当我运行命令 + 查询时,它会在控制台中记录大部分视频信息,但不会说明视频本身的 URL,也不会向服务器发送任何内容。它不记录错误,并且机器人保持在线。如何解决这个问题?

const opts = {
  maxResults: 25,
  key: '(youtube api key)',
  type: 'video'
};

const search = require('youtube-search')

bot.on('message', async message => {
  if(message.author.bot) return;

  if(message.content.toLowerCase() === 'a!play') {
    let embed = new Discord.MessageEmbed()
          .setColor("#73ffdc")
          .setDescription("Please enter a search query. Remember to narrow down your search.")
          .setTitle("YouTube Search API");
      let embedMsg = await message.channel.send(embed);
      let filter = m => m.author.id === message.author.id;
      let query = await message.channel.awaitMessages(filter, { max: 1 });
      let results = await search(query.first().content, opts).catch(err => console.log(err));
      if(results) {
          let youtubeResults = results.results;
          let i  =0;
          let titles = youtubeResults.map(result => {
              i++;
              return i + ") " + result.title;
          });
          console.log(titles);
          message.channel.send({
              embed: {
                  title: 'Select which song you want by typing the number',
                  description: titles.join("\n")
              }
          }).catch(err => console.log(err));

          filter = m => (m.author.id === message.author.id) && m.content >= 1 && m.content <= youtubeResults.length;
          let collected = await message.channel.awaitMessages(filter, { maxMatches: 1 });
          let selected = youtubeResults[collected.first().content - 1];

          embed = new Discord.MessageEmbed()
          .setTitle(`${selected.title}`)
              .setURL(`${selected.link}`)
              .setDescription(`${selected.description}`)
              .setThumbnail(`${selected.thumbnails.default.url}`);

          message.channel.send(embed);
      }
  }
});

【问题讨论】:

    标签: node.js npm discord.js


    【解决方案1】:

    既然你说大多数信息都被记录下来了。也许一切都是正确的,只是因为你给了 api 的 url,它不需要把它作为信息返回。尝试使用 eval 命令或为随机视频创建自己的命令日志记录信息,例如

    https://www.youtube.com/watch?v=nNCdYSzRKpU

    看看它是否没有给你链接。如果没有,那么它是完全正常的,并且 api 只是不返回它,如果它返回,你应该添加 api 标签或搜索 youtube-search 文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2019-01-11
      相关资源
      最近更新 更多