强制从javascript

时间:2017-03-30 11:31:37

标签: javascript node.js youtube-api

我正在使用基于node的服务器网站的youtube视频下载网站。我正在使用名为npm的{​​{1}}包,此模块正在返回下载链接。但是,当我点击该链接时,它会将我重定向到“视频预览”而不是“触发下载”,

ytdl-core

因此,当我将链接粘贴到浏览器中时,它会将我重定向到预览而不是触发下载。我得到的链接看起来像这样:

ytdl(url, function(err, format) {
  if (err) {res.send('the url is invalid please try again...');}
  console.log((format.formats).length);//i am getting value... in console but not outside of the function.. 
  //this object contains all the download links  
  var links = []
  for( var i= 0, len = (format.formats).length; i < len; i++) {
    var el = format.formats[i].container;
    if ( el === 'mp4') {
      var download_url = format.formats[i];
      //this push will store the all links in 'links' object..
      links.push(download_url);
    }
  }
  console.log(links);
});

我的问题是,如何通过点击按钮强制将该视频下载到客户端的浏览器?

2 个答案:

答案 0 :(得分:0)

如果您使用快递,使用res.download()可能会有所帮助。它将按照这一点行事。

res.download(downloadLink, downloadTitle, function(err){
  if (err) {
    // Handle error, but keep in mind the response may be partially-sent
    // so check res.headersSent
  } else {
    // decrement a download credit, etc.
  }
});
祝你好运!希望这有帮助!

答案 1 :(得分:0)

我发现非常简单的解决方案是你需要在你的html代码中添加属性"download='true'!它看起来像这样

<a href='yourdownloadlink.com/example' download='true'>force download!</a>