如何使用ytdl.getInfo获取视频的缩略图?

时间:2019-05-26 05:32:15

标签: javascript node.js bots discord discord.js

我正在使用ytdl-core和discord.js创建一个discord机器人,并添加了一个音乐命令。是否可以使用ytdl.getInfo来获取所提供URL的缩略图?

编辑:

let validate = await ytdl.validateURL(args[0])
    if(!validate) return message.channel.send("This URL doesn't seem to be valid. Please put a valid YouTube URL after the command.")
    let vidInfo = await ytdl.getInfo(args[0])

2 个答案:

答案 0 :(得分:1)

如果您仔细查看链接,您会看到它们都是像 https://i.ytimg.com/vi/video_id/default.jpg 一样创建的,因此如果您有视频的 ID,您可以轻松地将其定义为变量并将其放入链接中就像

let videoID = //however you want to get the ID
https://i.ytimg.com/vi/${videoID}/default.jpg

答案 1 :(得分:0)

是的,你可以
通过仅运行ytdl.getInfo(),您可以发现对象的第一个属性之一是thumbnail_url。这样吧

const ytdl = require('ytdl-core');

ytdl.getInfo('https://www.youtube.com/watch?v=YQHsXMglC9A', function(err, info) {
  console.log(info.thumbnail_url) // "Adele - Hello" thumbail
});

但是默认缩略图很小。所以我继续观看视频,发现(通过检查元素)用于背景的图片与默认图片相同,但名称中使用的是“ hqdefault”而不是“ default”。

示例:
阿黛尔(Adele)你好缩略图:https://i.ytimg.com/vi/YQHsXMglC9A/default.jpg
Adele Hello hq缩略图:https://i.ytimg.com/vi/YQHsXMglC9A/hqdefault.jpg

我不知道它是否适用于所有视频。我认为您可以执行类似操作,尝试使用hq缩略图,如果找不到,请使用默认缩略图。