M3U8 下載失敗怎麼辦?

下載失敗的原因很多,但症狀通常會指向特定幾種問題。先確認你遇到的是哪一類,再對照下表處理,比盲目重試有效得多。

操作步驟

  1. 先看錯誤訊息屬於哪一類

    把錯誤分成「連不上」「抓不到片段」「合併後不能播」三類,不同類別的成因完全不同。

  2. 確認播放清單是否可讀取

    若連清單都讀不到,問題在網址或存取權限;能讀到清單代表問題在片段層。

  3. 檢查是不是加密串流

    清單中若有 #EXT-X-KEY,表示片段受 AES-128 加密,需具備合法金鑰。

  4. 檢查片段完整性

    比對清單宣告的片段數與實際下載成功的數量,找出中斷點。

症狀對照表

症狀可能原因處理
清單讀不到,立刻失敗網址過期、403、CORS 限制看 403 說明
顯示不支援的格式回應內容不是 M3U8(可能是 HTML 錯誤頁)用檢測工具
找不到片段Master 清單或直播清單先選畫質 / 確認是否直播
顯示已加密AES-128 或 DRM 保護確認是否有合法金鑰
卡在固定百分比特定片段持續失敗、來源限速重試或降低並發
完成但無法播放片段不完整、編碼不相容檢查完整性

直播串流無法「下載完整」

這是很多人卡住的地方。直播類的 M3U8 有兩個特徵:

#EXT-X-PLAYLIST-TYPE:EVENT
(沒有 #EXT-X-ENDLIST 這一行)

沒有 #EXT-X-ENDLIST 代表「這份清單還沒結束」,播放器每抓一次都會看到新的片段。既然沒有終點,自然沒有「完整下載」這回事。

你能做的只有側錄某段時間的內容。若要保存完整內容,通常需要等直播結束、來源產出 VOD 版本後再處理。

超長影片的記憶體限制

瀏覽器端合併的原理是把片段先放進記憶體,這在長影片上會碰到上限:

  • 以 1080p 每小時約 1.5–3GB 估算,超過 2 小時就有風險
  • 行動裝置記憶體較小,更容易失敗(通常在 500MB 前後)
  • 若遇到這個限制,建議改用支援串流寫檔的桌面工具(如 FFmpeg),本站另有常見問題說明適用情境

常見問題

下載卡在某個百分比不動了
通常是某個片段持續失敗(來源回傳錯誤或超時)。可先重新嘗試,若固定卡在同一個位置,代表該片段可能有問題。超長串流(數千片段)也可能是瀏覽器記憶體不足,建議改用桌面軟體處理。
下載完成了,但檔案打不開
最常見的原因是片段不完整(下載中途失敗)或串流受加密。若清單含 #EXT-X-KEY,缺少金鑰會導致檔案無法解碼。另一個可能是串流的編碼格式與播放器不相容,可嘗試用支援度較廣的播放器開啟。
顯示「找不到片段」是什麼意思?
表示播放清單中沒有列出任何 .ts 片段。可能是這是一份 Master 清單(需先選畫質),或是這是一份直播清單(LIVE),片段會持續變動而不固定列出。
直播串流可以下載嗎?
直播清單(含 #EXT-X-PLAYLIST-TYPE:EVENT 或無 #EXT-X-ENDLIST)沒有固定長度,片段會不斷新增,因此無法「下載完整影片」。只能側錄固定區間,且需考量法律與授權問題。

先找出真正的原因

別再盲目重試,讓工具告訴你錯在哪。

檢測串流