我使用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);
});

答案 0 :(得分:2)
require()
是Node.js中的关键字。它用于导入类似于npm注册表中的CommonJS模块。但它不是您浏览器中的关键字,尝试使用它会返回ReferenceError
,如您所述。
如果您想在浏览器中使用require()
导入npm模块,可以尝试browserify或webpack。但是,完全有可能(可能?)youtube-dl
与browserify或webpack不兼容。
如果您不需要从浏览器运行它,可以将代码放在一个文件中(例如,myFile.js
)并从命令行运行它与节点:
node myFile.js
答案 1 :(得分:0)
在您的样本中:
var youtubedl = require(' youtube-dl');
但是后来你称之为:
ytdl.getInfo(url,function(err,info)
只需将您的需要重命名为ytdl,就像这样:
var ytdl = require(' youtube-dl');