哪些標頭對於 M3U8 熱鏈結保護很重要?
| 標頭 | 應該是什麼 | 何時使用它 |
|---|---|---|
| Referer | 串流通常播放的頁面URL。 | 當來源拒絕直接 .m3u8 請求或傳回 403 時使用。 |
| User-Agent | 發送到來源的客戶端身份。 | 當來源允許瀏覽器但拒絕機器人或未知客戶端時使用。 |
| Origin | 請求的 Web 應用程式來源。 | 通常將其留給瀏覽器或代理程式;除非您控制端點,否則不要偽造它。 |
| Cookie | 原始網站的會話狀態。 | 除非您擁有串流工作流程,否則請避免使用。該玩家不要求cookie。 |
如何使用自訂Referer玩M3U8
- 1
找到原始的播放頁面
使用串流通常工作的頁面作為Referer。請勿將 .m3u8 URL 本身用作 Referer。
- 2
貼上M3U8URL
將清單貼到播放器中,然後在沒有自訂標頭的情況下嘗試播放一次以建立基準。
- 3
啟用CORS代理
自訂Referer和User-Agent轉發需要代理,因為瀏覽器不允許頁面腳本在直接媒體請求上設定這些標頭。
- 4
設定Referer和User-Agent
開啟高級標題控件,將原始頁面URL貼上為Referer,並僅在來源過濾用戶端時新增普通桌面瀏覽器User-Agent。
- 5
運行健康報告
透過相同的代理/標頭路徑驗證流,以便您可以查看清單、金鑰或區段是否仍然被封鎖。
為什麼瀏覽器播放器不能直接設定Referer
瀏覽器保護 Referer 和 User-Agent 等標頭。網頁不能針對直接的HLS段請求自由地重寫它們。這就是該工具透過可選代理轉發自訂標頭的原因:瀏覽器與代理通信,代理與帶有您選擇的標頭的 HLS 來源通信。
Referer 值通常有效
使用嵌入影片的規範頁面 URL,例如 https://example.com/watch/123。請勿使用 CDN 域或 .m3u8 URL,除非這是來源期望的實際頁面。如果來源頁面重新導向,請使用瀏覽器網址列中顯示的最後第 URL。
如何區分盜鏈保護與CORS
CORS 阻止瀏覽器讀取回應。熱連結保護使來源拒絕請求,除非標頭與其策略相符。如果代理修復了CORS,但源端仍然返回 403,則添加Referer。如果在設定Referer之後開始播放,則該串流受到熱連結保護。
相關HLS調試頁面
- HLSCORS錯誤 解釋何時被封鎖的瀏覽器請求需要 CORS 標頭或代理程式。
- M3U8 連結故障排除 涵蓋了針對死連結和受保護連結的更廣泛的故障檢查表。
常見問題
我可以為 M3U8 流設定自訂 Referer 嗎?
是的。啟用代理,開啟高級標題控件,並將串流通常播放的頁面URL設定為Referer。代理將 Referer 轉送到 HLS 源。
為什麼瀏覽器不能直接設定Referer?
Referer 和 User-Agent 是受保護的請求標頭。瀏覽器 JavaScript 無法針對直接媒體請求自由重寫它們,因此自訂標頭測試需要將標頭轉送到伺服器端的代理程式。
對於受熱連結保護的 HLS,我應該使用什麼Referer?
使用嵌入流的原始網頁URL,而不是.m3u8URL。許多來源在提供清單、金鑰或媒體片段之前會檢查該頁面。
我還應該更改User-Agent嗎?
僅當來源按客戶端過濾時。從單獨的Referer開始,如果串流仍然被拒絕,然後新增普通的桌面瀏覽器User-Agent。
自訂Referer是否適用於受 DRM 保護的串流?
不會。 Referer 可以幫助保護熱鏈接,但它不能繞過 Widevine、FairPlay 或 PlayReady 等 DRM 系統。