You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中通过YouTube链接获取视频标题?

如何用ytdl-core获取YouTube视频标题

嘿,我来帮你搞定用ytdl-core获取YouTube视频标题的事儿~你拿到的这段代码其实已经能实现需求,不过我得给你补几个关键细节,还有更顺手的写法,避免踩坑。

首先,第一步得确保你已经在项目里安装了ytdl-core依赖,打开终端在项目目录下运行:
npm install ytdl-core

你拿到的代码的完整写法

原代码缺了导入模块的语句,而且没加错误处理,我给你补全后是这样的:

// 必须先导入ytdl-core模块,不然会找不到ytdl变量
const ytdl = require('ytdl-core');

const getVideoInfo = ytdl.getInfo('https://www.youtube.com/watch?v=YQHsXMglC9A', function (err, info) {
  // 加上错误处理很重要,比如链接无效、网络问题时能及时排查
  if (err) {
    console.error('获取视频信息失败:', err);
    return;
  }
  // 这里就会输出目标视频的标题,比如示例里的"Adele - Hello"
  console.log(info.videoDetails.title);
});

更现代的写法(推荐)

回调函数的写法有时候会显得繁琐,现在更常用Promise或者async-await的方式,代码可读性更高:

Promise链式调用写法

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

ytdl.getInfo('https://www.youtube.com/watch?v=YQHsXMglC9A')
  .then(info => {
    console.log('视频标题:', info.videoDetails.title);
  })
  .catch(err => {
    console.error('出错了:', err);
  });

Async-Await写法(最直观)

这种写法需要把逻辑放在async函数里:

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

async function getVideoTitle(youtubeUrl) {
  try {
    // 等待获取视频信息
    const info = await ytdl.getInfo(youtubeUrl);
    // 返回视频标题
    return info.videoDetails.title;
  } catch (err) {
    console.error('获取标题失败:', err);
    return null;
  }
}

// 调用函数并打印结果
getVideoTitle('https://www.youtube.com/watch?v=YQHsXMglC9A')
  .then(title => console.log('视频标题:', title));

几个需要注意的小细节

  • 确保你的网络能正常访问YouTube,不然会出现连接超时或者访问被拒绝的错误。
  • YouTube的接口偶尔会更新,如果遇到突然获取失败的情况,可以尝试更新ytdl-core:npm update ytdl-core
  • 除了标题,info.videoDetails里还藏着很多有用的信息,比如视频时长、作者名称、视频描述等,你可以根据需求自行提取。

内容的提问来源于stack exchange,提问作者user12870059

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:11:32