影片與字幕直接媒體下載器
直接檔案連結與串流資訊清單:為什麼 .m3u8 或 .mpd 不是檔案
· 背景
下載 串流媒體 文件格式
直接連結指向一個檔案;流清單是片段的播放清單。這篇文章解釋了 HLS 和 DASH、自適應串流媒體的工作原理以及為什麼清單不是直接連結下載器可以保存為影片的內容。
兩個鏈接,一個保存,一個不保存——這種差異幾乎讓每個人都犯了錯誤
.mp4 連結可以傳回瀏覽器可以儲存的影片檔。即使播放器從中傳輸整個節目,.m3u8 連結也可能只發回數千位元組的文字。保存後者的影片製作者並未下載該作品:他們已儲存了其播放清單。副檔名和回應內容類型是有用的線索,但請檢查實際回應,而不是將每個以「video」結尾的 URL 視為一個完整的檔案。
直接檔案 URL 提供什麼:一種資源,可能是一個大小標頭
直接 URL 尋址一種資源,例如 MP3、MP4 或圖像。當伺服器允許跨網域存取時,Fetch 可以讀取其回應位元組並產生本機 Blob。 Content-Length 可能會告訴您它的大小,但伺服器可以在不提供它的情況下進行串流傳輸,因此「一個檔案」不能保證長度標頭。 Direct Media Downloader 故意取得您從瀏覽器提供的主機;它不是網頁中嵌入連結的代理或爬蟲。
HLS 和 DASH 是什么 — 播放列表(.m3u8、.mpd),指向多个质量级别的许多短片段
HTTP Live Streaming (HLS) 使用通常以 .m3u8 結尾的文字播放清單;主播放清單可以提供多個位元率,每個位元率都會導致另一個短媒體片段清單。 MPEG-DASH 使用週期、改編和片段 URL 的 MPD 描述。玩家根據需要選擇和請求片段,有時會在頻寬變化時切換品質。單獨儲存清單會保存這些位址的映射,而不是合併的視聽檔案。 RFC 8216 描述了 HLS 播放清單和分段行為; DASH 有自己的標準和工具。
為什麼發明自適應串流媒體——緩衝、可變連接和放棄漸進式下載
自適應串流媒體解決了漸進式下載的限制:不斷變化的網路可能無法維持最初的品質選擇,觀眾可能會尋求稍後的部分,直播活動尚不知道最終檔案長度。分段媒體讓玩家可以請求適當的區塊,而不是等待整個影片。權衡是一組協調的請求和播放狀態,單一檔案保存操作不會重現這些狀態。
段落、密鑰和 DRM——為什麼這些片段在沒有許可證的情況下通常毫無用處,以及為什麼重新組裝它們超出了範圍
某些片段具有單獨的加密金鑰,某些播放使用受許可證約束的 DRM 系統。即使清單是公開可讀的,其片段也可能受到保護、短暫或僅授權播放。拼接檔案、取得金鑰或繞過提供者限制超出了 Direct Media Downloader 的設計範圍,可能會違反權利或存取控制。由授權發布者提供的簡單的直接文件連結與重建受保護的流是不同的主張。
工作範例:在文字編輯器中檢查清單 - 閱讀段落清單並了解它包含什麼和不包含什麼
考慮一個玩具文字清單,其中包含#EXTM3U、#EXTINF:6.0 行和路徑segment0001.ts,後面跟著另一個持續時間和segment0002.ts。在文字編輯器中開啟它會顯示指令和相關檔案名,而不是解碼的視訊畫面。 HLS 播放器會根據播放清單和目前連線解析並要求這些路徑。使用瀏覽器下載文字檔案儲存清單;它不會將segment0001.ts和segment0002.ts組合成可播放的程式。這是一個說明性的格式草圖,並非關於任何特定服務的聲明。
重點:清單是一張地圖,而不是領土 - 直接媒體下載器如何處理直接文件並明確說明清單不屬於其工作範圍
清單是一張地圖,而不是它所映射的影片。 ToolAcre 的直接媒體下載器有意限制為直接的、獲得許可的文件鏈接,並解釋 CORS 和不支援的串流,而不是將中繼隱藏在介面後面。當您遇到 .m3u8 或 .mpd 時,請找到提供者的合法下載功能或向發布者請求原始文件,而不是期望直接連結工具成為串流提取器。