NodeJS 从ytdl-core获取视频标题

kzipqqlq  于 2023-06-29  发布在  Node.js
关注(0)|答案(4)|浏览(151)

我已经下载了ytdl-core,并在discord.js中使用它。我有一个命令,可以将YouTube视频的音频播放到语音聊天中。有没有人知道一种方法,我可以得到只是从一个链接的视频标题的字符串,或一个简单的方法来获得标题?甚至更容易将只是一种方法来获得视频的标题从链接不知何故。任何帮助是赞赏!谢谢!

4urapxun

4urapxun1#

您正在寻找的是getInfo()
https://github.com/fent/node-ytdl-core#ytdlgetinfourl-options-callbackerr-info

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

wi3ka0sx2#

当您通过Node.JS管道将音频流传输到WebSocket时。
您可以使用已经获取的信息来提高效率!

var stream = YTDL('https://youtu.be/H7NuU-dDRLU');

/* Spit-out information when recieved */
stream.on('info', (info) => {
    console.log(info.title);     // Tobu - Roots
    console.log(info.video_id);  // H7NuU-dDRLU
});

**注意:**如果只需要获取信息,请使用YTDL.getInfo

xytpbqjk

xytpbqjk3#

你可以使用下面的函数,它对我来说非常好用:

function getTitleVideo (videoUrl){
   return new Promise ((resolve, reject) => {
      ytdl.getBasicInfo (videoUrl, (err, info) => {
            resolve (info.title)
      })
   })
}
wlp8pajw

wlp8pajw4#

使用getInfo()作为info.title不再有效,因为ytdl-core中发生了一些变化。
示例:

getInfo('https://www.youtube.com/watch?v=YQHsXMglC9A', (info) => {
    // console.log(info.title) Alert! this is Wrong
    console.log(info.videoDetails.title) // "Adele - Hello"
});

相关问题