获取歌曲队列discord.js的视频缩略图

问题描述

因此,我试图在播放新歌曲时获取视频缩略图,以便在播放新歌曲时显示“正在播放: $ {song.title} >”它还将在视频标题旁边发送该视频的缩略图,但我不知道该怎么做?

} else {
    serverQueue.songs.push(song)
    if(playlist) return undefined
    song.videoURL = 'the url for the thumbnail';
    return message.channel.send(`__**${song.title}**__ has been queued`)
}
return undefined
}

function play(guild,song) {
    const serverQueue = queue.get(guild.id)

    if(!song) {
        serverQueue.voiceChannel.leave()
        queue.delete(guild.id)
        return
    }

    const dispatcher = serverQueue.connection.play(ytdl(song.url))
    .on('finish',() => {
      serverQueue.songs.shift()
      play(guild,serverQueue.songs[0])
    })
    .on('error',error => {
        console.log(error)
    })
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5)

    let embed = new discord.MessageEmbed()
    .setTitle(`Now Playing: __**${song.title}**__`)
    .setColor('#FF0000')
    serverQueue.textChannel.send(embed)
}

解决方法

您可以尝试使用song.thumbnail。如果您使用ytdl,它将起作用:

} else {
    serverQueue.songs.push(song)
    if(playlist) return undefined
    song.videoURL = 'the url for the thumbnail';
    return message.channel.send(`__**${song.title}**__ has been queued`)
}
return undefined
}

function play(guild,song) {
    const serverQueue = queue.get(guild.id)

    if(!song) {
        serverQueue.voiceChannel.leave()
        queue.delete(guild.id)
        return
    }

    const dispatcher = serverQueue.connection.play(ytdl(song.url))
    .on('finish',() => {
      serverQueue.songs.shift()
      play(guild,serverQueue.songs[0])
    })
    .on('error',error => {
        console.log(error)
    })
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5)

    let embed = new Discord.MessageEmbed()
    .setTitle(`Now Playing: __**${song.title}**__`)
    .setImage(song.thumbnail)
    .setColor('#FF0000')
    serverQueue.textChannel.send(embed)
}