解密YouTube视频签名

时间:2018-09-22 12:54:13

标签: node.js download youtube

我想使用nodeJs library(youtube解析器)下载youtube视频

var youTubeParser = require('youtube-parser');
    youTubeParser.getMetadata('https://www.youtube.com/watch?v=C_vqnySNhQ0')
    .then(
      function (metadata) {
        console.log(metadata.keywords);
      }
    );

输出结果:

{
    "sp": "signature",
    "url": "https://r1---sn-p5h-jhod.googlevideo.com/videoplayback?ratebypass=yes&lmt=1297062699001465&c=WEB&ipbits=0&mn=sn-p5h-jhod%2Csn-hgn7rn7y&key=yt6&ip=105.154.90.255&gir=yes&pl=21&mime=video%2Fwebm&id=o-AMq66AxIjHYurZFwMMzJquo6465eSIwvGgWyvtUJ90pi&ms=au%2Crdu&fvip=1&mv=m&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&mt=1537619794&itag=43&requiressl=yes&ei=zzemW66XDpOKhAfi46ywDQ&expire=1537641519&mm=31%2C29&dur=0.000&clen=16291318&initcwndbps=265000&source=youtube",
    "s": "73A73AA9D5D2A7F90F67FBB240F519C55EE8DFE50AA.D6B8616B3EC55AF6ECB8134924263134D1920C21021D"
   }

因此,如您所见,我获得了直接链接,但是当我尝试下载该链接时,我也遇到了403禁止错误。

在许多论坛上进行几次搜索后,我发现我必须解密与该视频相关的密码签名

 "s": "73A73AA9D5D2A7F90F67FBB240F519C55EE8DFE50AA.D6B8616B3EC55AF6ECB8134924263134D1920C21021D"

此JS文件中提到了用于解密的密码算法

http://s.ytimg.com/yts/jsbin/player-en_US-vfl8eqt4U/base.js (this file can be changed depending on video)

那么是否有任何Javascript实现基于3个参数进行解密? :签名,视频ID和Js文件(包含密码算法)。

我不想使用youtube-dl库

感谢您的光临。

0 个答案:

没有答案