从ytdl-core获取视频标题

时间:2016-08-07 03:10:33

标签: javascript json node.js video youtube

我已经下载了ytdl-core,并将其与discord.js一起使用。我有一个命令可以将YouTube视频的音频播放到语音聊天中。有没有人知道我可以通过链接得到视频标题的字符串,或者获得标题的简单方法?更简单的方法就是以某种方式从链接中获取视频标题。任何帮助表示赞赏!谢谢!

4 个答案:

答案 0 :(得分:3)

您要找的是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"
});

答案 1 :(得分:1)

当您通过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

答案 2 :(得分:1)

您可以使用下面的功能,它对我来说非常合适:

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

答案 3 :(得分:0)

使用 getInfo(),但由于 ytdl-core 的变化,info.title 不再有效。

示例:

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