为什么YouTube-dl仅在meteorjs app中下载来自YouTube的链接?

时间:2016-02-27 02:18:25

标签: javascript video meteor youtube

我检查了所有处理YouTube-dl问题的问题,但没有发现我的问题同样的问题;

当我在meteorjs应用程序中下载带有节点YouTube-dl的YouTube视频时,一切正常(在chrome中),除了在Firefox中打开视频而不是下载它;但是当我尝试从Facebook,Twitter或其他任何网站下载视频(镀铬)时,它会在控制台中抛出此错误

Error: Internal server error [500]

终端上的这个

Exception while invoking method 'commandliiiine'Error: No video id found: https://www.facebook.com/sawtelghad/videos/1070722126318944/ 

这是我服务器中的代码

 var ytdl = Meteor.npmRequire('ytdl-core');
  var Future = Meteor.npmRequire("fibers/future");

Meteor.methods({
    'commandliiiine': function(url){

      this.unblock();
      var future = new Future();

      ytdl.getInfo(url, function(err, result) {

        future.return(result);
      }); 

      return future.wait();
    }
});

这是客户端中的代码

 Meteor.call('commandliiiine', url, function(error, result){
        if (result) {
          Session.set('videoTitle', result.title);
          Session.set('videoImage', result.thumbnail_url);




       } else {
          console.log('error:'+ error);
       }
      });

这是我使用的youtube-dl的版本:“ytdl-core”:“0.7.9”

任何人都可以帮我解决这个问题!!请

非常感谢

1 个答案:

答案 0 :(得分:0)

您提交的网址功能是什么?

我也检查了Facebook,在结果对象中你回到了客户端,例如没有任何thumbnail_url。

将您的代码更改为:

Meteor.call('commandliiiine', url, function(error, result){
    if (result) {
      console.log(result);
   } else {
      console.log('error:'+ error);
   }
  });

并在Chrome上打开开发者控制台并查看您返回的对象。您只能访问为每个视频共享站点打印的对象键。