影片與字幕·直接媒體下載器
URL 剖析:為什麼頁面位址不是可下載檔案位址
· 背景
網址 下載 網路基礎知識
每個 URL 都有相同的部分,但只有其中一些指向可下載的檔案。這篇文章詳細介紹了方案、主機、路徑、查詢和片段,並展示如何在將連結貼到下載器之前讀取連結。
網址列中的連結未下載任何內容 - 頁面所在位置和檔案所在位置之間的混淆
瀏覽器網址列通常命名正在檢視的文件,而不是獨立的媒體回應。複製它可以準確地保留位置,但該位置可能描述播放器應用程序,而不是該應用程式顯示的位元組。
可下載檔案位址是一種 HTTP 資源,其回應正文是目標檔案。 URL 的出現可以暗示這種關係,但如果沒有聯繫和回應證據就無法建立這種關係。因此,有用的第一個問題不是「這看起來像影片嗎?」但是「出版商說這個確切的地址代表什麼資源?」首先詢問發布者希望複製的地址代表哪種資源,而不是詢問其中是否出現熟悉的單字。
方案和主機 — https、網域以及為什麼主機是工具在聯絡它之前宣布的部分
在 `https://cdn.example:8443/archive/cut.mp4` 中,HTTPS 是方案,cdn.example 是主機名,8443 是明確連接埠。起源結合了這些組件。
直接媒體下載程式僅接受 HTTPS,並在聯繫之前宣布標準化主機名稱。它拒絕嵌入在主機和已知私人或內部目的地之前的憑證,包括混淆的位址形式。顯式非預設連接埠可以標識單獨的服務,因此不要僅僅因為 UI 宣告突出顯示主機名稱而在心裡忽略它。明確連接埠仍然是來源的一部分,並可以標識不同的服務,即使簡短的宣告強調主機名稱。
路徑 — 資料夾和最後一段,通常出現檔案名稱和副檔名
路徑在權限之後開始,並用斜線分隔。它的最後一段通常類似於檔案名,如果 Content-Disposition 沒有提供更好的建議,則 ToolAcre 可以使用該檔案名稱。
「經常」並不是證據。 `/watch/abc`、`/download/42` 和 `/asset.mp4` 是伺服器定義的路由。任何內容都可以根據主機行為傳回 HTML、媒體、錯誤或重定向。百分比編碼的字元還可以更改解碼後的可見路徑,使瀏覽器的解析視圖比隨意的字串分割更安全。百分比編碼可能會使解碼後顯示的最終片段有所不同,這是使用結構化解析而不是斜線分割的另一個原因。
查詢和片段 — 參數、標記和錨點,以及為什麼 ?v=ID 查詢不指向視訊檔案
查詢以問號開頭,可以選擇資源、授權簽章連結或進行分析。此片段以 `#` 開頭,通常選擇客戶端檔案狀態,而不是在 HTTP 請求中傳送。
諸如 `v=ID` 之類的參數通常標識頁面狀態;它本身並不意味著回應是視訊檔案。 ToolAcre 保留承載簽名,同時在標準化過程中刪除保守的追蹤值清單。片段仍然會影響導航後頁面顯示的內容,這就是為什麼網址列副本可能會保留與伺服器回應無關的介面狀態。儘管在發送到伺服器的請求中不存在片段,但導航後片段仍可能會改變客戶端頁面狀態。
如何發現可能的直接檔案連結 - 副檔名、無播放器頁面以及提供檔案而不是頁面的主機
可能的直接連結具有預期的公共主機和發布者為檔案提供的路徑。熟悉的擴充功能是一條線索,官方下載說明比複製的玩家位址具有更強的上下文。
檢查連結然後可以請求標頭。媒體內容類型支持此假設,而 `text/html` 則提示警告。回應仍然可能被錯誤標記,因此成功的下載和播放仍需稍後觀察。發布者本身頁面上的下載按鈕比僅為播放而發出的逆向工程請求更能證明有意檢索。與對僅在受保護的播放期間觀察到的資產進行逆向工程相比,發布者的官方下載說明提供了更強大的上下文。
工作範例:剖析五個連結形狀 - CDN 檔案、縮短器、觀看頁面、簽名 URL 和帶有片段的頁面
比較五種形狀:以 `.mp4` 結尾的 CDN 路徑;重定向的短連結;帶有 ID 查詢的觀看頁面;帶有簽名和過期時間的儲存路徑;和一個檔案片段。
第一個看起來像檔案,第二個隱藏其最終主機,第三個看起來像頁面,第四個可能僅暫時有效,第五個片段不被傳輸。只有實際的 HTTP 回應才能確定可達性和標籤。縮短器應該透過授權的、可觀察的請求而不是猜測來擴展;它的品牌並沒有告訴我們最終的儲存來源。僅透過允許的可觀察請求來擴展縮短器,因為其品牌本身無法識別最終的儲存運營商。
這不包括什麼 - URL 本身不能證明檔案存在或它到底是什麼類型
URL解析無法證明存在、內容類型、長度、授權、安全性或法律許可。如果不發出請求,它也無法預測重定向目的地。
本機安全結果意味著初始目的地通過方案和主機原則。將其視為應用程式提供網路控制的許可,而不是伺服器將提供可播放媒體的判斷。 DNS 行為和未來的重新導向仍然是額外的邊界,因此擁有嚴格白名單的組織需要超出此用戶端解析器的網路控制。當稍後的解析或重定向行為必須滿足白名單時,嚴格的組織應將此解析器與 DNS 和出口控制結合。
重點:在貼上連結之前先閱讀連結 — Direct Media Downloader 的 URL 檢查如何為您執行相同的閱讀操作
在貼上之前分層讀取位址:協定、主機名稱、連接埠、路徑、查詢和片段。繼續追蹤與簽名保存不同的清理,並永遠不要從公開的字串中推斷權利。
直接媒體下載器在本機應用該結構讀取,然後等待操作。其可選的 HEAD 請求和隨後的 GET 回答了單獨語法無法回答的不同問題。這種分層讀取可以防止誤報和錯誤保證,同時保留合法傳輸系統所需的有用簽章查詢資訊。這種分層方法保留了合法的簽章參數,同時防止視覺熟悉被誤認為是授權或存在。