res-downloader 開源下載器:先看清代理與根憑證再安裝

res-downloader 是 GitHub 上近兩萬星的開源資源下載工具,靠本機代理與一張根憑證攔下瀏覽器裡的影片、音訊與直播串流,抖音小紅書靠通用嗅探,微信短影音靠改寫 JavaScript。安裝前值得先看清憑證與管理員密碼的成本、3.1.3 與 4.0 beta 的選擇,以及平台改版時的失效面。

用 AI 摘要這篇文章:

想抓一段抖音影片、一場小紅書直播,多數人會去找對應平台的下載網站,一個平台一個工具換來換去。GitHub 上有一個走完全不同路線的開源工具 res-downloader:它不在意你逛的是哪個網站,直接在你自己的電腦上掛一層代理,凡是經過瀏覽器的影片、音訊、圖片連結,它都幫你攔下來列成清單。這個專案在 GitHub 上累積了將近兩萬顆星,採 Apache-2.0 授權,Windows、macOS、Linux 都有安裝包。

不過在按下下載之前,有一件事值得先弄清楚:這類工具的運作方式,跟 Fiddler、Charles 這類專業抓包軟體是同一族。作者自己在 README 裡也這麼定位,差別在於它把中間人代理這套有門檻的技術,包裝成了滑鼠點兩下就能用的介面。這意味著它的能力很強,安裝時要你交出的東西也不少:一張寫進系統信任鏈的根憑證,以及 macOS 上安裝憑證需要的管理員密碼。原始碼與官方文件裡有幾個重點,安裝前知道會比較安心。

它跟 Fiddler 是同一種原理:本機代理加一張根憑證

先把機制講白。翻它的原始碼會看到,res-downloader 的核心是 Go 語言寫的本機代理伺服器,監聽 127.0.0.1 的 8899 連接埠,底層用的是開源函式庫 goproxy。你在軟體裡按下「啟動代理」,它就透過系統設定把整台電腦的網路流量導向這個本機代理,接著所有 HTTP 請求與回應都從它手上過一遍。

HTTPS 的流量是加密的,代理看不見內容怎麼辦?這就是那張根憑證的用途。安裝時它會把一張自簽的 CA 憑證加進系統信任鏈,macOS 上對應的指令是 security add-trusted-cert,直接寫入系統鑰匙圈。有了這張憑證,代理就能對每個 HTTPS 連線做解密、檢查、再轉發,瀏覽器完全察覺不出來。這套手法在中間人代理的世界裡是標準做法,開發者抓自己的 API 封包天天在用。

值得注意的細節在預設值。原始碼 config.go 裡 MITM 規則的預設值是一個星號,意思是所有網域的加密流量都會被解密,不只有它認得的平台。規則本身可以改,原始碼也支援限定特定網域或用驚嘆號排除,但裝好就用的預設行為就是全開。換句話說,掛著代理的期間,你逛的每個網站、登入的每個服務,加密流量都會經過這個 app 的憑證解密一遍。它只挑媒體類型的回應標記出來給你下載,但能力上是全系統層級的。

還有一個使用上的真實代價:代理掛上之後如果直接關掉軟體,系統設定裡的代理沒有跟著關,整台電腦會連不上網路。官方 FAQ 特別列了這一條,教使用者手動到系統設定把代理關掉。

串流類的內容也在攔截範圍內。清單裡的 m3u8 項目代表分段載入的影片來源,許多線上影片都靠這種格式傳送;進行中的直播流同樣攔得到。不過 3.1.3 穩定版抓到的 m3u8 是清單檔本身,要合併成完整影片,官方 FAQ 建議交給 m3u8-down 這類專門工具處理;直播錄製官方也直接推薦用 OBS,下載器面對持續推送的串流有它的極限。遇到大檔下載慢的情況,README 另外建議 Neat Download Manager 或 Motrix 接手,它把資源找出來,重活可以交給別的工具。

抖音小紅書靠通用嗅探,微信短影音靠改寫對方的 JavaScript

很多人好奇它怎麼能同時支援微信短影音、小程式、抖音、快手、小紅書、酷狗與 QQ 音樂這麼多平台。翻開 3.1.3 穩定版的 plugins 目錄會發現答案比想像中樸素:內建的解析器只有兩個,一個處理 qq.com 相關網域,另一個叫 default,處理其他所有網站。抖音、快手、小紅書這些平台並沒有專屬的解析程式碼,靠的是 default 這個通用插件按照 HTTP 回應標頭的 Content-Type 分類,影片歸影片、音訊歸音訊、m3u8 串流歸串流,符合就標記成可下載資源。

這個設計的含義有兩面。好處是它天生不限平台,理論上任何在網頁裡載入的媒體檔都攔得到,官方文件也說特定網站識別不完整時可以裝插件補強。代價是清單裡會混進大量你不想下載的東西,廣告素材、網頁背景圖、統計腳本載入的資源都會列進來,需要自己從裡面挑。

res-downloader 官方介面預覽圖,macOS 版視窗內左側為獲取資源與系統設置選單,中央資源清單列出 qq.com 與 douyinvod.com 等網域攔到的影片音訊項目與檔案大小Pin
res-downloader 官方介面預覽:代理攔到的資源會以網域與類型分類列成清單(官方 README 圖)

真正有專屬邏輯的是微信的短影音牆(WeChat Channels),而它的實作方式是整個專案裡最值得看的一段。代理攔到 res.wx.qq.com 回傳的某支 JavaScript 檔時,會用正規表示式改寫檔案內容,在微信前端原本讀取媒體資訊的函式裡注入一小段程式碼。這段程式碼會把影片的描述物件,包含真實下載地址與解密金鑰,POST 到一個不存在的路徑,而這個請求自然又走回本機代理,被它自己攔下來。於是清單裡出現了短影音的項目,下載完成後再由程式用取到的金鑰把加密的檔案解開。這也是為什麼下載清單裡的短影音項目會多一個「影片解密」的處理按鈕,其他平台的資源不需要這一步。4.0 beta 把這套邏輯重構成獨立的 JavaScript 插件,解密改用隨插件附帶的 WebAssembly 模組,攔截改寫的思路沒有變。

理解這段機制,就理解了它的失效面。注入比對的是微信目前的程式碼寫法,微信哪天改了前端結構,正規表示式對不上,功能就跟著失效。GitHub Issues 裡 #308 號討論串「短影音抓到的影片無法播放」,以及先前幾波類似的回報,都跟這種貼著別人程式碼走的實作方式有關。這是此類工具的宿命,不是這個專案特別脆弱。

能力邊界還有一條值得知道:它攔得到的前提是流量走系統代理。Issues 裡 #315 號討論串是個好例子,有 macOS 使用者想抓 Chrome 裡的 YouTube 資源,怎麼試都沒有結果。可能的原因有不少,瀏覽器設定繞過系統代理、請求型態不符合媒體分類、或該站流量根本沒經過 8899 連接埠,都會讓資源不出現在清單上。通用嗅探給了它彈性,同時也給了它不確定性,遇到抓不到的內容,先確認流量路徑再回頭檢查規則,會比反覆重裝有效率。

如果你只是想看懂自己電腦上進出的流量,先前介紹過的 Sniffnet 是更溫和的選擇,純觀察不介入;若是長期要處理抖音內容,也可以看看 douyin-tiktok-download-api 這類針對單一平台的方案。res-downloader 的定位偏向一把通用瑞士刀,什麼都能劃兩下,精細度就交給通用嗅探的天性。至於 datatool-vip-video-downloader 這類線上下載器走的是伺服器端解析路線,不用動你的系統信任鏈,但能支援的網站清單取決於站方維護,兩種路線各有取捨。

安裝時你交出的東西,比一般軟體多

第一次啟動要安裝憑證時,macOS 會跳出要求管理員密碼的視窗,這一步躲不掉,因為寫入系統鑰匙圈需要權限。3.1.3 穩定版有個細節值得知道:如果使用者選擇記住密碼,它會把密碼用 AES 加密後存在使用者目錄的 pass.cache 檔案裡,最長放一個月,之後自動刪除。加密聽起來安全,問題是加密的金鑰是硬編碼在公開原始碼裡的固定字串,任何人翻到那行程式碼就能解開檔案。實務上的保護力等於這個檔案的存取權限。不想留這個檔案,安裝時就別勾記住密碼,或者用完手動移除。這個密碼快取機制在 4.0 beta 已經整個移除,算是重構順手解決的舊債。

根憑證本身也一樣,解除安裝軟體不會自動把憑證從信任鏈裡拿掉,留著一張不再更新的根憑證在系統裡不是好習慣,官方文件也提醒手機端抓取需要另外裝憑證。這些屬於此類工具的必要成本,工具本身沒有隱瞞,只是成本要自己算清楚。

res-downloader 官方文件快速開始頁面,列出安裝應用、安裝證書、開啟抓取、查看下載四個步驟,左側導覽可見插件管理、CLI 與 MCP、插件 SDK 等章節Pin
官方文件的快速開始頁:第二步就是安裝憑證,手機端抓取也要另外裝憑證(官方文件截圖)

社群裡的使用者對這些風險看得相當清楚。Issues 裡 #376 號討論串直接標題寫著「CA 憑證統一下載安裝存在偽造簽名的風險」,起因是 3.x 版把同一組自簽憑證連同私鑰寫死在公開原始碼裡,效期到 2124 年,拿到這組憑證的人理論上能對所有裝了它的電腦簽出受信任的網站憑證;維護者在 2026 年 9 月中回覆這個問題在 4.0 分支已經修復,新版改成每台機器動態生成專屬憑證。另一邊 #311 號是安裝時沒注意到要裝憑證、結果什麼都抓不到的求救。風險與修復過程都攤在公開的討論區裡,這是開源工具才有的透明度。

3.1.3 穩定版與 4.0 beta 怎麼選

截至 2026 年 9 月,標記為穩定的版本是 3.1.3,4.0 系列從 8 月底開始連發 beta,到 9 月中的 beta.5,節奏相當勤。4.0 是一次大重構,官方文件站已經出現插件管理、擴充商店、插件開發 SDK,甚至 CLI 與 MCP 介面的章節,方向是把平台支援拆成可獨立安裝的插件,讓社群維護各自關心的網站。文件也明說社群插件由第三方提供,不代表經過官方安全審核,安裝前要自己確認開發者與權限。

要不要直接上 4.0?從下載數字看,多數人還在 3.1.3 與 beta 之間觀望,beta.2 之後幾版的 Windows 安裝包下載次數落在數百到一千出頭,macOS 的 dmg 多在幾百上下。我的建議是看用途:想馬上用,拿 3.1.3;想跟插件生態,接受 beta 的新鮮與不穩再上 4.0。版本上還有兩件事:Windows 7 只能用 2.3.0 舊版,官方另有一個 Mini 版本倉庫,用系統預設瀏覽器當介面,安裝體積更小,介面邏輯與主版本相同。

維護面的現實也要知道。這是單人專案,主要維護者 putyy 一個人貢獻了 165 次 commit,README 頂端放著一段聲明,說近期因個人事務投入時間有限,issue 回覆與版本發布可能變慢。以一個兩萬星的專案來說,這種坦白不常見,也提醒了開源工具的信任基礎:它的可信度來自原始碼公開可審計,而不是一家公司的營運承諾。近期 issue 在 9 月中仍持續有人回覆處理,專案是活的,但單人維護的極限就擺在那裡。

用途的那條線,官方畫得比你想的清楚

工具本身中立,怎麼用決定性質。README 的免責聲明寫明僅供學習與研究用途,禁止商業或違法用途;官方文件站每一頁頁尾都放著同一句提醒,確認你對要處理的資源擁有合法權利,並遵守所在地法律、平台協議與著作權規定。把別人平台上的內容抓下來自己留存,跟抓下來再公開散布,在平台條款與著作權上是兩種不同行為,這條線官方不替你踩。

回到我的判斷。res-downloader 把中間人代理這套專業技術做到了近乎零門檻,通用嗅探讓它幾乎不限平台,微信短影音支援的 JavaScript 注入手法也確實有工程水準。作為一個免費開源工具,它的能力對得起它的星星數。它不適合的族群也一樣明確:如果你不願意給瀏覽器以外的任何軟體一張全系統的解密憑證,或者你的電腦上有不想讓任何代理碰的敏感流量,這個工具帶來的便利換不回那種信任成本。適合的人,裝之前記得兩件事,別勾記住管理員密碼,移除時連憑證一起清乾淨。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1314

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...