2016-10-02 78 views
1

我注意到許多流媒體網站(例如Spotify)通過生成一次性網址來保護其內容不被下載。在瀏覽器開始下載之前捕獲流url

對於實際情況,如果我在Spotify網絡播放器中播放歌曲,我可以輕鬆找到流網址。不過,這個網址可以用來下載歌曲只有一次。因此,在瀏覽器開始下載和播放歌曲之後,URL變得毫無價值,我不能再使用它來再次播放或下載歌曲。

在Spotify的,特別是,每個I播放歌曲時,瀏覽器會有點不同的URL來流:

  1. http://audio-mp3-fa.spotify.com/mp3enc/02892876c9ad7f9cccb52ca2d12b388e98b17bad?1475406013_tS4yagnyzDiB2zH3KPTcZO+J5kZRDlNMXo1HC8wjomk=

  2. http://audio-mp3-fa.spotify.com/mp3enc/02892876c9ad7f9cccb52ca2d12b388e98b17bad?1475406084_qZXXUSrECUgHQxBTHfYBdI0v3KFP/JRbfOE14myuxBY=

這兩個網址屬於同一個文件,但每個文件都有不同的GET參數,它們代表了我們只能使用一次的唯一URL。爲了訪問文件(流或下載它),我們必須使用新的GET參數獲得一個新的URL。

現在,問題是 - 有沒有什麼辦法來捕獲流的URL 之前瀏覽器開始下載它? (所以URL不會變得毫無價值,我們仍然可以下載文件)。

謝謝:)

+0

有人嗎? ........... –

回答

0

您可以捕捉/生成與他們WebSocket
下載鏈接,您可以輕鬆地下載文件,但因爲它是加密的它不會爲你工作,並解密它,你需要的KeyOffset解密它的文件。
希望它可以幫助你。

+0

感謝您的回答。這真的很有幫助。 我仍然有兩個問題關於你的答案: 1.密鑰和偏移量參數是否可達?我怎樣才能發現它們? 2.一旦我獲得了加密文件的密鑰和偏移量,我如何使用這些數據來解密文件? –

+0

是的,您可以從WebSocket獲得密鑰和文件偏移量(參見chrome調試工具中的ws部分),那麼您需要在其Player.swf中提供的私鑰(您可以從Play.spotify.com獲取它)並反編譯得到該密鑰)。之後,您需要再次在Player.swf中使用的算法,但您可以在Github上找到它(Node.JS版本:) :) –

+0

我不太明白如何獲得私有鍵。你在哪裏找到player.swf?你怎麼反編譯它?什麼是node.js? –