Discord.js教程:如何通过歌曲标题搜索歌词
实现Discord机器人歌词查询命令
跟朋友联机唱歌却记不清歌词?给你的Discord整个歌词查询命令就能解决!我们来做一个名为lyricsearch.js的命令,借助lyrics-finder包实现歌曲歌词搜索功能,步骤如下:
1. 安装依赖
首先确保你的机器人项目已初始化,然后安装所需包:
npm install lyrics-finder discord.js
2. 创建lyricsearch.js命令文件
在机器人的命令目录下新建该文件,写入以下代码:
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js'); const lyricsFinder = require('lyrics-finder'); module.exports = { data: new SlashCommandBuilder() .setName('lyricsearch') .setDescription('搜索指定歌曲的歌词') .addStringOption(option => option.setName('歌曲标题') .setDescription('输入要搜索的歌曲名称') .setRequired(true)), async execute(interaction) { // 获取用户输入的歌曲标题 const songTitle = interaction.options.getString('歌曲标题'); try { // 调用lyrics-finder搜索歌词 const lyrics = await lyricsFinder(songTitle, ''); if (lyrics) { // 用Embed展示歌词,避免刷屏 const lyricEmbed = new EmbedBuilder() .setColor('#0099ff') .setTitle(`《${songTitle}》的歌词`) .setDescription(lyrics.length > 4096 ? `${lyrics.slice(0, 4093)}...` : lyrics); await interaction.reply({ embeds: [lyricEmbed] }); } else { await interaction.reply(`找不到《${songTitle}》的歌词,请检查歌曲名称是否正确`); } } catch (error) { console.error('搜索歌词时出错:', error); await interaction.reply('搜索歌词时出现错误,请稍后再试'); } }, };
3. 注册命令
将这个命令文件添加到机器人的命令注册逻辑中,确保机器人启动时能加载该命令(常规discord.js v14项目只需将文件放入commands目录,再通过部署脚本注册到Discord即可)。
补充说明
- 代码适配Discord.js v14的斜杠命令结构,若使用前缀命令可自行调整逻辑
- 用
EmbedBuilder展示歌词是为了优化排版,同时避免超长内容刷屏 - 处理了歌词长度超过Discord消息限制的情况,会自动截断并添加省略号
内容的提问来源于stack exchange,提问作者BlackDelta
相关产品推荐
相关产品推荐

