2013-11-14 57 views
1

我打算创建视频下载插件。所以基本上我们需要签名才能从YouTube上下载视频文件。我提到了其他工作插件..他们将签名转换为某种格式。通过javascript创建YouTube下载插件

在YouTube网页源基本上原单签名是

BBB4D55F9CF4387F77958A6960CA96708C73AB59B.037D413F53291E957891898307BBF1C41B6037D77D7 

插件上述签名转换为下面的签名。

BB4D55F9CF4787F77958A6960CA96708C73AB59B.037D413F53291E957891898307BBF1C41B6037D3 

我想知道的是这些某种散列?有没有人遇到类似的哈希?

回答

3

的密码签名代码揭秘:

中的Youtube

加密签名只是“炒”的签名,你必须根据目前在玩家文件中的算法重新排列它们( HTML5播放器或Flash播放器)。

例如http://www.youtube.com/watch?v=UxxajLWwzqY目前使用下面的HTML5播放器文件://s.ytimg.com/yts/jsbin/html5player-vfltdb6U3.js

在这个文件中,你可以很容易地通过搜索“SIG”搜索签名解密代码。在这种情况下,Algo是:

function bz(a) { 
    a = a.split(""); 
    a = cz(a, 61); 
    a = cz(a, 5); 
    a = a.reverse(); 
    a = a.slice(2); 
    a = cz(a, 69); 
    a = a.slice(2); 
    a = a.reverse(); 
    return a.join("") 
} 

function cz(a, b) { 
    var c = a[0]; 
    a[0] = a[b % a.length]; 
    a[b] = c; 
    return a 
}; 

以上是解密代码。

但请注意,它们在更改播放器文件时会不断变化,因此您必须保持点击正在使用的播放器文件。

此外,要下载带有密码签名的视频,您必须注意发送相同的cookie,使用相同的用户代理标头,从相同的IP地址发送请求,并在提取后不久发送请求。所有这些都还是在某些时候

被要求详细检查这个API:Cipher API

另一个很酷的API:YTstream API

1

您可以在github上关注youtube-dl python应用程序:它是最好的小型命令行程序,用于下载迄今为止发现的视频,并拥有一支优秀的团队。更具体地说,您可以访问youtube-script,以获取最新的工作decyphering算法。

玩得开心:)

+0

链接只有答案是不好的做法,因为答案变得废弃时,链接失败或没有wotkin –

+1

感谢您的提示!!但是,如果我答复解密算法,答案本身可能会过时,因为alg至少会在一天内改变一次。 – giacomolm

0

现在日子里,你可以很容易地通过youtube-dl创建你自己的影片下载。它也支持超过youtube。 我也做了一个关于如何做到这一点的教程。你可以阅读更多关于该here