2013-11-14 103 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