網盤有效性檢查油猴腳本,自動標出失效連結再填好提取碼

免費油猴腳本 Netdisk Checker 能把網頁裡的雲端硬碟分享連結自動轉成可點的超連結,檢查每條連結有效或失效,並自動帶上散落在正文的提取碼。三個管道的源碼對帳顯示,只有 Greasyfork 官方頁拿到最新版 v2025.09.15,ScriptCat 鏡像停在二月的 v2025.02.22,裝舊版會認不得新域名連結。

用 AI 摘要這篇文章:

資源分享帖看多了,大概都遇過同一種煎熬:帖裡貼了十幾條雲端硬碟連結,一半是純文字不能點,得自己複製貼上;點開另一半,才知道分享早就被刪了;好不容易找到還活著的,提取碼又散落在樓主正文某個角落,要往回翻半天。這三件事疊起來,找一個檔案的成本常常比下載本身還高。

有一支叫 Netdisk Checker 的免費油猴腳本(在 Greasyfork 上的中文名直譯為「網盤有效性檢查」)就是衝著這個場景來的:裝上之後,網頁裡的雲端硬碟連結會自動變成可點的超連結,腳本再去檢查每條連結的狀態,把有效的、失效的、需要提取碼的各自標記出來,散落在旁邊的提取碼也會被自動接進連結。

我把這支腳本的三個發布管道的源碼全部抓下來逐字節比對,另外在無頭瀏覽器裡把腳本實際跑在一個放了四條連結的測試頁上,記錄它對 DOM 做了什麼、對外發了哪些請求。先講結論:功能是真的,隱私面乾淨,但它的價值重心和一般工具不一樣。這支腳本 2022 年 1 月問世,近四年來作者做的事幾乎只有一件,追著不斷換域名的網盤跑。也因為這樣,你從哪個管道安裝,決定你拿到的是還在追的版本,還是停在二月、連新域名都認不得的舊鏡像。

純文字連結變可點,提取碼自己接上:實際重現一次

先看行為面。我做了一個測試頁,裡面放了四種常見寫法:一條百度網盤連結加「提取碼: ab12」、一條藍奏雲連結加「密碼:xy9k」、一條什麼都沒附的 123 盤純文字連結、一條夸克連結把提取碼直接寫在後面。把腳本和它的兩個依賴函式庫注入頁面跑幾秒之後,四條連結全部變成了可以點的超連結。

更有感的是提取碼的處理。腳本從頁面正文裡用正則找出「提取碼」「密碼」「訪問碼」這類字眼後面跟著的四到八位字串,自動接成連結的參數:

https://pan.baidu.com/s/1LvgD3rPkyny...  →  https://pan.baidu.com/s/1LvgD3rPkyny...?pwd=ab12
https://pan.quark.cn/s/9803af406f13      →  https://pan.quark.cn/s/9803af406f13?pwd=7bkX

也就是說,裝了腳本之後,你在別人文章裡看到一條連結加一行提取碼,直接點下去就好,不用複製連結、不用記密碼。123 盤那條沒有附提取碼的,腳本一樣把它轉成超連結,只是密碼欄位維持空白。

這個「從正文找密碼」的能力有源碼層的證據。腳本內部為每條識別到的連結建了一個帶屬性的標記節點,識別碼和密碼分別掛在 one-idone-pwd 兩個屬性上,找到密碼的瞬間還會回頭更新頁面上所有同識別碼的節點。密碼找到之後存在頁面的記憶體映射裡,並透過 GM_setValue 寫進使用者腳本管理器的本地儲存。整條路徑都在瀏覽器裡,沒有任何把提取碼往雲端送的端點。

檢查結果的呈現方式也值得先知道。源碼裡定義了五種狀態樣式:有效、失效、需要提取碼、部分違規、其他,各自掛在連結前面的一個小圖示上。其中最直觀的是失效狀態,它直接對連結套上刪除線,一眼掃過去就能把死連結全部過濾掉。需要提取碼的會掛鎖頭圖示。這五種樣式的判斷來源就是前面實測側錄到的那幾個官網 API 回應,不同網盤能分辨的狀態粗細不同,夸克那類可以細分出部分違規,多數網盤就是有效和失效兩種。

它真正的工作是追著換域名的網盤跑

裝過類似工具的人可能都有個疑問:這種腳本為什麼動不動就失效?答案藏在各家網盤的域名政策裡。分享域名是最容易被封鎖、也最常被輪替的資源,於是「識別連結」這件看似簡單的事,實際上是一場持續的貓鼠遊戲。這支腳本的官方更新日誌把這場遊戲完整記錄了下來:

  • 2022 年 1 月到 3 月:兩個月內接連支援阿里雲盤、123 盤、迅雷、奶牛、文叔叔,藍奏雲已經開始替換失效域名
  • 2024 年 2 月:支援藍奏雲新域名
  • 2024 年 10 月:藍奏雲域名再改為 lanzoum
  • 2025 年 1 月:123 盤新域名 123865 上線
  • 2025 年 2 月:支援可配置的自動填充密碼
  • 2025 年 4 月:123 盤新域名 123684 上線
  • 2025 年 8 月:修復藍奏雲識別狀態錯誤,依賴函式庫的 CDN 一併換掉
  • 2025 年 9 月:123 盤再換新域名 123912

藍奏雲三年多換了至少三輪域名,123 盤在 2025 年八個月內就換了三次。這意味著判斷這類腳本好不好用,看功能清單沒有意義,要看的是它多久以前還在更新。這支腳本目前的三個發布管道,在這一點上差得很遠。

三個下載管道,只有一個拿到的是最新版

這支腳本有三個可以安裝的地方:Greasyfork 的官方腳本頁(編號 439266)、作者 GitHub 倉庫、還有 ScriptCat 腳本市場上由第三方搬運上架的頁面(編號 2976)。我把三邊的源碼都抓下來比對:

管道版本與官方差距備註
Greasyfork(439266)v2025.09.15官方最新作者 Leon406 直接維護
GitHub jsdelivr 倉庫v2025.09.15與 Greasyfork 逐字節相同源碼與使用文檔所在
ScriptCat(2976)v2025.02.22落後約七個月上架者導流自己的公眾號

Greasyfork 和 GitHub 這兩份,我用檔案比對確認是一字不差的同一份,差別只在安裝方式:Greasyfork 點安裝按鈕就好,GitHub 倉庫適合想自己讀源碼的人。ScriptCat 那份就有實質問題了。它的源碼和官方版相差五百多行,版本停在 2025 年 2 月 22 日,錯過的正是後面半年的域名更新。我比對了兩版的識別規則:2 月版認得的 123 盤變體域名只有 123865 一個,藍奏雲的連線白名單也還是舊的 lanzoum;官方最新版已經追到 123912lanzoue。換句話說,裝鏡像版的人遇到的「腳本失效」,有相當一部分只是裝到了沒在追的舊版本。

順帶一提,ScriptCat 頁面上的總安裝量約 4,700 次,代表透過鏡像接觸到這支腳本的人不算少。上架者在頁面裡放了自家公眾號的導流連結,這在搬運生態裡常見,但對使用者來說,代價就是版本永遠慢一步。要裝的話,以 Greasyfork 官方頁為準。

ScriptCat 腳本市場上網盤有效性檢查的鏡像頁面,安裝按鈕停在 v2025.02.22 舊版本Pin
ScriptCat 鏡像頁:安裝按鈕停在 v2025.02.22,總安裝量約 4.7K,比官方版落後約七個月。

描述寫 12 家,程式裡只剩 11 家

版本比對之外,源碼審計還翻出一個小但誠實的發現:腳本描述宣稱支援 12 家網盤,清單裡包含移動彩雲,但實際的識別規則註冊表裡沒有它的位置。規則表裡登記的是百度(兩種連結形態)、騰訊微雲、藍奏雲、阿里雲盤、123 盤、天翼雲盤、夸克、迅雷、奶牛、文叔叔、115,合計 11 家。移動彩雲的名字只殘留在粗篩用的預過濾正則裡。更微妙的是 alipan.com 新域名:官方文檔的測試清單列了它的連結,粗篩正則也認得這個字,但比對規則登記的仍是舊域名的兩種形態,處境和移動彩雲同型。對照官方更新日誌,2024 年 7 月 23 日有一條「移除移動彩雲」的記錄,之後描述文字就沒再改過。

這不是什麼大問題,但它說明了這類腳本的描述清單會滯後於現實。判斷一支腳本現在到底支援哪些網盤,看描述不如看更新日誌和規則表。

提取碼會被送去哪裡:源碼層的答案

隱私是這類工具最該問清楚的問題,因為它的運作方式聽起來有點嚇人:腳本宣告比對所有網站(@match *://*/*),等於你開的每一個頁面它都會掃。它到底把什麼東西送去了哪裡?

源碼給的答案相當乾淨。全文 1,644 行裡沒有任何 fetchXMLHttpRequestsendBeacon 呼叫,對外的網路請求全部集中走使用者腳本管理器提供的 GM_xmlhttpRequest,全部收斂在同一個出口,各網盤的檢查共用一個請求封裝。我在這個出口攔截記錄,實測裡它發出的請求是這樣的:

  • 百度網盤:GET 分享頁本體,看回應判斷狀態
  • 藍奏雲:GET 一個固定域名的分享頁
  • 123 盤:GET 官方 API www.123pan.com/api/share/info
  • 夸克:POST 官方 API drive-h.quark.cn 的分享頁權杖端點,請求內容只有分享 ID 和空提取碼欄位

全部都是被檢查網盤自己的官網端點,統計服務、第三方分析、作者自己的伺服器,一個都不在清單裡。掃描的方式也溫和:腳本每 4 秒重新掃一次頁面,最多 20 輪就停,處理的是動態載入的論壇回帖,不是對網盤發起連續請求。提取碼前面說過了,只在本地。

有一個設計值得單獨拿出來講。藍奏雲的分享域名變體太多,直接逐個請求很難維護,腳本的做法是把所有藍奏雲分享 ID 統一拼到一個固定域名下再檢查:

aTagRepalce: [/(?:[\w\-]+\.)?lanzou.?/, "leon.lanzoue"],
prefix: "https://leon.lanzoue.com/",

這個 leon.lanzoue.com 從命名看,幾乎可以確定是作者自己在藍奏雲註冊的帳號子域。也就是說,你檢查藍奏雲連結時,請求是經過一個由腳本作者選定的入口發給藍奏雲平台的。就算作者能從藍奏雲後台看到一些查詢紀錄,那也屬於網盤平台自己的資料,源碼裡沒有另闢任何回傳通道;但「檢查入口由腳本作者指定」這件事,我認為該讓使用者知道。這是取捨,不是缺陷。

裝之前要接受的幾件事

  • 沒有圖形介面。所有功能都在背景發生,你看到的只有連結被標記和被轉換這兩件事。
  • 狀態判斷依賴各家網盤的頁面結構和 API 回應。網盤一改版,對應的判斷就會失效,要等作者更新。我的實測驗證了連結轉換與提取碼識別,沒有驗證每家網盤失效判斷的準確率,這部分以官方文檔的測試連結清單為準。
  • 描述清單滯後。前面說過,實際支援 11 家,不是描述寫的 12 家。
  • 它會掃你開的每一個頁面。源碼顯示它只認網盤連結的特徵,其他內容不碰,但如果你不喜歡任何腳本常駐所有網站,這一點要知道。兩個百度自家域名(網盤與百科)被列入不自動填提取碼的白名單,避免登入狀態下亂動表單。順帶一個小觀察:腳本在權限宣告裡列了瀏覽器通知,但整份程式碼裡找不到實際呼叫它的地方,屬於宣告了沒用的權限,介意的人可以自己在管理器裡擋掉。
  • 依賴外部 CDN 載入 jQuery 和一個文字替換函式庫。最新版用的是 cdnjs.loli.net,這是第三方鏡像 CDN;對供應鏈特別敏感的人可以自己審一遍這兩個依賴。

授權與專案現況

腳本採用 AGPL-3.0-or-later 授權,自由使用、修改都沒問題,改造散布時要守傳染條款。作者 Leon406 是 2017 年註冊的 GitHub 帳號,腳本最早的原始倉庫已經打不開(回傳 404),目前的源碼和使用文檔放在他的 jsdelivr 倉庫的 tampermonkey 目錄裡,Greasyfork 上的 439266 是唯一持續更新的官方安裝管道。文檔裡完整列了每家網盤的有效、失效、需要提取碼的測試連結,想自己驗證識別能力的人可以直接拿來用。

Leon406 的 jsdelivr 倉庫 js/tampermonkey 目錄,可見 netdiskLinkChecker.user.js 腳本源碼檔Pin
腳本目前的源碼與使用文檔放在作者 jsdelivr 倉庫的 js/tampermonkey 目錄,與 Greasyfork 版逐字節相同。

怎麼裝

前提是瀏覽器先有一套使用者腳本管理器,電腦版 Chrome、Edge、Firefox 裝 Tampermonkey,Safari 可以用 Userscripts 這類替代品。管理器裝好之後,到 Greasyfork 搜尋這支腳本(編號 439266),點進腳本頁按安裝,Tampermonkey 會跳出確認視窗,同意後它就像之前介紹過的 QuickGo精準截圖 一樣常駐背景,不需要任何設定。腳本的掃描週期是每 4 秒一輪,所以打開有雲端硬碟連結的頁面後,等一輪掃描跑完就會看到連結前面的變化。想解除安裝或暫時停用,全部在 Tampermonkey 的管理面板裡操作。手機瀏覽器原則上跑不了使用者腳本,這是桌面端的工具。

安裝後的版本號可以在 Tampermonkey 面板裡確認,撰文當下官方最新版是 v2025.09.15。之後腳本會透過 Greasyfork 的更新檢查機制自動拿到新版本,這也是選官方管道的另一個理由:鏡像頁沒有接入這套機制,裝了就是一次性快照,域名再換你也不會知道。

回到一開始的問題:值不值得裝?如果你的日常就是在論壇、社群、別人文章裡收集雲端硬碟資源,這支腳本解決的兩個痛點(純文字連結不能點、提取碼要自己翻)每天都會遇到,而且它的隱私面經得起源碼級的檢驗。安裝時只有一個原則要守住:用 Greasyfork 官方頁,版本號認明 v2025.09.15 以後。鏡像頁省不了什麼事,卻可能讓你拿著一支已經認不得新域名的舊版本,怪罪一支其實還在認真更新的腳本。

Sliven 褚崇名
Sliven 褚崇名

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

文章: 1442

發佈留言

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


Share to...