如何使用 node-youtube-dl 驱动程序?

How to use node-youtube-dl driver?

我使用 youtube-dl node driver 获取有关 youtube 上视频的信息,但我遇到了 ReferenceError - require 未定义(第一行)的问题。我在笔记本电脑上安装了 node-youtube-dl 模块,代码仅取自描述中的示例。还有什么我想念的吗?

var youtubedl = require('youtube-dl');
var url = 'https://www.youtube.com/watch?v=9Q7Vr3yQYWQ';

ytdl.getInfo(url, function(err, info) {
  if (err) throw err;

  console.log('id:', info.id);
  console.log('title:', info.title);
  console.log('url:', info.url);
  console.log('thumbnail:', info.thumbnail);
  console.log('description:', info.description);
  console.log('filename:', info._filename);
  console.log('duration:', info.duration);
  console.log('format_id:', info.format_id);
});

require() 是 Node.js 中的关键字。它用于导入 CommonJS 模块,例如 npm 注册表中的模块。但它不是您浏览器中的关键字,尝试使用它会 return 一个 ReferenceError 正如您所描述的那样。

如果你想在浏览器中使用 require() 导入 npm 模块,你可以尝试 browserify or webpack。但是,youtube-dl 完全有可能(可能?)与 browserify 或 webpack 不兼容。

如果您不需要从浏览器 运行 它,您可以将代码放在一个文件中(比如 myFile.js)并从命令行 运行 它与节点:

node myFile.js

在您的示例中:

var youtubedl = require('youtube-dl');

不管你后来怎么称呼它:

ytdl.getInfo(url, function(err, info)

只需将您的需求重命名为 ytdl,如下所示:

var ytdl = require('youtube-dl');