DRM 是什麼?為什麼流媒體影片無法下載(技術解析)
你肯定遇過這種情況:在 Netflix、YouTube Premium 或其他串流平台找到一部好影片,想儲存下來——但什麼方法都沒用。yt-dlp 報錯,錄影工具只錄到黑畫面,線上下載網站給你一個根本播不了的檔案。
這不是 bug,而是刻意設計的結果。
背後的技術叫 DRM——數位版權管理。了解它的實際運作方式,就能明白為什麼那麼多下載工具失效、為什麼錄影會出現黑畫面,以及要正確處理這類內容需要什麼條件。

DRM 到底是什麼
DRM 是一套控制數位內容如何被存取、複製和播放的技術體系,以各種形式存在自 1990 年代末。但對當今串流影片影響最大的版本叫 Widevine——這是 Google 於 2010 年收購的一家公司所開發的標準。
Widevine 內建於 Chrome、Firefox、Edge 以及大多數 Android 裝置中。當 Netflix 這樣的串流服務想保護內容時,它並不是給你一個上了鎖的盒子、讓你用鑰匙打開——整個機制比這更動態、更精密。
以下是你在串流平台按下播放時,實際發生的事情的簡化版本。
DRM 播放流程,一步一步來
第一步:你請求影片
你點擊播放,瀏覽器向串流服務的內容伺服器發出請求,要求取得影片。
第二步:授權請求
在任何影片資料被傳送之前,你的瀏覽器會向授權伺服器發出一個獨立請求——這個伺服器由串流平台(Netflix、YouTube、Disney+ 等)負責營運。請求的大意是:「我這裡有個使用者想播放這部影片,他們使用的是這台裝置、這個瀏覽器、這個版本的 Widevine。可以嗎?」
授權伺服器會核查你的帳號、訂閱狀態、是否超過裝置數量限制、所在地區,以及你播放環境的安全等級。
第三步:授權被核發(或被拒絕)
如果一切通過,授權伺服器會回傳一個內容解密金鑰——一個臨時的加密金鑰,供你的瀏覽器解密影片串流使用。這個金鑰有以下特點:
- 綁定到你的特定裝置和工作階段
- 有時效限制(通常在工作階段結束時失效)
- 永遠不會直接暴露給 JavaScript 或頁面上執行的任何程式碼
第四步:加密影片流入
影片本身以加密片段的形式透過網路傳輸,通常採用 DASH(HTTP 動態自適應串流) 協定或使用 AES-128 加密的 HLS 協定。你收到的每一段影片都是被混淆過的——沒有金鑰就無法播放。
第五步:解密在受保護環境中進行
這是關鍵所在。解密不是在你能夠攔截的地方發生的。它發生在**可信執行環境(TEE)**中——CPU 或 GPU 上的硬體級安全隔離區,與作業系統的其他部分完全隔離。
解密後的影片影格存在於這個受保護的記憶體空間中,直接傳送給顯示硬體進行渲染,從不經過一般系統記憶體——那才是軟體能夠讀取的地方。
為什麼大多數下載工具都失敗了
當 yt-dlp、瀏覽器擴充功能或線上下載網站試圖抓取串流影片時,它們嘗試在這條鏈路的某個環節攔截影片串流。讓我們逐一分析每種方式的失敗原因。
抓取網路串流
監控網路流量並儲存影片片段的工具,抓取到的只是加密資料。沒有內容解密金鑰,這些片段根本無法播放。檔案下載沒問題,但任何影片播放器都打不開。
這是最常見的失敗模式:你得到了一個檔案,但它什麼都播不了。
攔截 video 元素
有些工具嘗試透過 JavaScript 從 HTML 的 <video> 元素中抓取影片。對於 DRM 內容,這行不通。媒體來源是一個 MediaKeySession 物件——實際的影片位元組根本不會暴露給 JavaScript 環境,腳本沒有任何東西可以攔截。
直接使用 CDM
內容解密模組(CDM)——實際的 Widevine 軟體——是一個黑盒。在 Windows 上,它以 .dll 檔案(widevinecdm.dll)的形式實作,並由 Google 進行加密簽署。它不會在被修改的環境中執行,會在啟動時檢查自身完整性,而且專門設計用來抵抗逆向工程。
它所處理的金鑰永遠不會以外部軟體能讀取的形式出現在記憶體中——金鑰直接進入 TEE。
為什麼錄影會出現黑畫面
這是最讓人困惑的問題。錄影軟體明明在錄整個螢幕——為什麼影片區域會顯示為黑色?
答案是 Widevine 安全等級 L1。
Widevine 定義了三個安全等級:
| 等級 | 解密發生的位置 | 是否阻止截圖? |
|---|---|---|
| L1 | 硬體 TEE(CPU/GPU 安全隔離區) | 是——輸出路徑受保護 |
| L2 | 硬體 TEE 負責加密,軟體負責處理 | 部分 |
| L3 | 純軟體 | 無硬體保護 |
在 L1 系統上——包括大多數執行 Chrome 的現代 Windows PC 和 Mac——解密後的影片影格透過受保護的輸出路徑直接傳送給顯示控制器。作業系統的截圖 API(OBS、Bandicam 或 Windows 內建錄製器所使用的)擷取的是合成後的顯示緩衝區,但 DRM 影片在一個獨立的受保護層中渲染,不會出現在該緩衝區裡。
你的錄影裡看到的:影片所在位置是個黑色矩形,螢幕其餘部分錄製正常。
Netflix、Disney+ 和 YouTube Premium 明確要求在桌面 Chrome 上以 L1 等級播放。這就是為什麼幾年前可能有效的錄影變通方式,在現代硬體上通常已經不管用了。
(附註:部分較舊的硬體以軟體模式的 L3 執行 Widevine,這種模式沒有硬體輸出路徑保護,但隨著老裝置的逐漸淘汰,這種情況越來越少見。)
VidBrowser 如何處理 DRM 內容
VidBrowser 的方式與上述所有工具截然不同。它不是試圖從外部攔截影片串流,而是作為完整的授權瀏覽器,合法地參與 DRM 流程。
當你在 VidBrowser 中播放 YouTube Premium 影片或 Netflix 劇集時,整個授權請求週期會正常完成。你的帳號通過驗證,授權被核發,解密在 TEE 中進行。VidBrowser 不會嘗試攔截加密串流或破解 CDM。
內容的擷取發生在授權播放管線中的一個階段——在這個階段,VidBrowser 作為瀏覽器本身,擁有對渲染輸出的合法存取權——不是透過繞過 DRM,而是作為播放的授權端點。
實際效果:Netflix、Disney+、Amazon Prime Video、YouTube Premium、OnlyFans 等平台上受 DRM 保護的內容可以被本地儲存,用標準影片播放器直接播放,不需要任何外部工具、金鑰或修改版軟體。
免費下載 VidBrowser,在其他工具全部失敗的平台上試試看。
DRM 阻止不了的那些事
為了完整起見:DRM 專門設計用來防止對內容串流的數位複製,但它阻止不了:
- 用手機對著螢幕拍照(顯然畫質很差)
- 類比擷取——在 HDCP 加密之前進行 HDMI 擷取(不過某些配置下,平台可以偵測並封鎖)
- 記住你看了什麼(在大多數地區仍然合法)
它也無法阻止所有盜版行為——它大幅提高了成本和技術難度,但擁有硬體存取權限的堅定攻擊者總能找到繞過方法。DRM 旨在防範隨意複製,並使商業規模的侵權行為變得困難,而非提供完美的安全保障。
常見問題
每個串流服務都使用 Widevine 嗎?
桌面端大多數都用。Netflix、YouTube、Disney+、Amazon Prime、HBO Max/Max、Hulu 在基於 Chrome 的瀏覽器上都使用 Widevine。Apple 的平台使用另一套叫 FairPlay 的系統。部分平台使用微軟的 PlayReady。VidBrowser 支援基於 Widevine 的平台,這些平台佔串流媒體內容的絕大多數。
VPN 能幫助繞過 DRM 嗎?
VPN 將你的流量路由到另一個地點,這有助於繞過地區授權限制(某些內容在一個國家可用但在另一個國家不行)。但它對 DRM 加密本身沒有任何影響——無論你的流量看起來從哪裡來,內容都是加密的。
影片都在我螢幕上了,為什麼就是截不了?
簡短的答案:L1 Widevine 在受保護的硬體層中渲染影片,截圖 API 無法存取。你的眼睛能看到是因為顯示硬體直接渲染了它,在同一台機器上執行的軟體無法透過正常的系統介面讀取這些像素。
yt-dlp 違法嗎?
yt-dlp 本身是一個合法的開源工具——引發法律問題的是用途。下載你無權再散佈的受版權保護的內容,與工具本身的存在是兩個不同的法律問題。對於你有權存取的內容的個人使用,在大多數地區法律風險被普遍認為較低,但這不是法律建議。
Netflix 怎麼知道要傳送 L1 還是 L3?
你的瀏覽器在授權請求期間傳送一個能力交握資訊,其中包括你的 Widevine 安全等級。授權伺服器可以選擇核發要求最低安全等級的授權——並且可以對不符合要求的裝置完全拒絕播放。這就是為什麼 Netflix 在 Firefox 中的影片品質上限是 720p(Firefox 不支援 L1 Widevine),但在 Chrome 中可以播放 1080p 或 4K。



