我打算创建视频下载器插件。所以基本上我们需要签名才能从 youtube 下载视频文件。我引用了其他工作插件。它们将签名转换为某种格式。
基本上youtube页面源中的原始签名是
BBB4D55F9CF4387F77958A6960CA96708C73AB59B.037D413F53291E957891898307BBF1C41B6037D77D7
插件将上面的签名转换为下面的签名。
BB4D55F9CF4787F77958A6960CA96708C73AB59B.037D413F53291E957891898307BBF1C41B6037D3
我想知道这些是某种哈希值吗?有人遇到过类似的哈希吗?
最佳答案
密码签名代码的 secret :
Youtube 中的加密签名只是“加扰”签名,您必须根据播放器文件(HTML5 播放器或 Flash 播放器)中存在的算法重新排列它们。
例如 http://www.youtube.com/watch?v=UxxajLWwzqY
目前正在使用以下 HTML5 播放器文件://s.ytimg.com/yts/jsbin/html5player-vfltdb6U3.js
在此文件中,您可以通过搜索“sig”轻松搜索签名解密代码。在这种情况下,算法是:
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、使用相同的用户代理 header 、从相同的 IP 地址发送请求以及在提取后立即发送请求。所有这些在某些时候都是或曾经是必需的
有关更多信息,请查看此 API:Cipher API
另一个很酷的 API:YTstream API
关于javascript - 通过 javascript 创建 Youtube 下载器插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984277/