最後修改:2026-09-20 · 在 GitHub 上查看原始檔與修改紀錄 ↗
BahaAD 是在您自己電腦上執行的下載工具。除了下面明確列出的項目,程式不會把您的任何資料送出您的電腦。您追蹤/下載的番劇、動畫瘋帳號、Cookie、下載的檔案、下載路徑,全部只留在您自己的電腦上。
本文件列出的兩項功能——「錯誤自動回報」與「即時匿名使用統計」——彼此完全獨立:各自有各自的設定開關、各自運作,關掉其中一個不影響另一個。兩者都預設開啟,都可以在設定頁的「匿名使用統計」區分別關閉;關閉後立即停止該項的所有回報,不會「關了還偷偷送」。
一、錯誤自動回報
程式發生錯誤時,會回報以下固定欄位——不多不少,這份清單本身就是完整範圍:
| 欄位 | 內容 | 說明 |
| 錯誤代碼 | 內建代碼表裡的一個代碼 | 代表發生錯誤的操作類型,不是原始例外訊息或程式堆疊 |
| 操作類型 | 例如「下載影片」「解析番劇頁面」「套用更新」 | 用來判斷問題出在哪個功能區塊 |
| 網路量測值 | 延遲、下載速率 | 用來判斷是不是網路狀況造成的問題 |
| 連線狀態分類 | 逾時/斷線/DNS 失敗等固定分類 | 不含實際連線對象的位址 |
| 檔案完整性比對結果 | SHA-256 是否相符 | 只有「相符/不相符」的結果,不會回報檔案內容本身 |
| 路徑資訊 | 相對於程式安裝目錄或下載目錄的相對路徑+磁碟機代號/剩餘空間 | 只有在出錯的路徑確實位於安裝目錄或下載目錄底下時才回報這一項,且只送相對部分;只要無法確定,就整組不回報,從根本上避免送出含使用者名稱的絕對路徑 |
| 動畫瘋身分 | 會員 / 遊客 / 未知 三選一 | 用來判斷付費番劇下載失敗是登入態失效還是本來就用遊客身分;不含帳號、Cookie |
| 例外類型名稱 | 程式的例外類別名,例如 FileNotFoundError、ConnectionError | 只是 Python 內建/程式自訂的類別「名字」,不是例外訊息文字,本身不含任何您的資料 |
| 錯誤發生的模組 | 程式碼裡的模組名稱,例如 bahaad.app_shell | 告訴我們錯誤發生在哪一段程式,是程式碼結構的名字,不含任何您的資料 |
不會回報:帳號密碼、Cookie、您追蹤/下載的番劇清單內容、檔案內容本身、完整的例外堆疊或原始錯誤訊息文字、含有使用者名稱的原始檔案路徑。完整訊息與堆疊只會寫進您自己電腦上的日誌,不外傳。
回報的觸發範圍是「任何未預期的錯誤」——只要程式記錄到帶有例外的錯誤(含未捕捉的例外),就會送出上面這一組固定欄位。這樣維護者才能在問題擴大前主動得知並處置。
「錯誤自動回報」目前若是關閉狀態,每次程式更新時會跳一次提醒說明它對排查問題的重要性;這只是提醒,選擇繼續關閉完全不影響任何功能的可用性。
二、即時匿名使用統計
「即時統計」彙總所有 BahaAD 使用者的整體使用情況(下載量、訂閱/收藏數、使用與在線人數、番劇觀看次數),顯示在隱私權說明浮層與番劇頁上。累積夠多使用者後,這份數據可望成為 BahaAD 使用規模的公開參考。
匿名啟動識別碼
- BahaAD 第一次啟動時會產生一組 16 字元的隨機識別碼(大小寫英文、數字、
-、_),加密後存在您電腦的 %LOCALAPPDATA%\BahaAD 資料夾。
- 它只產生一次:程式更新、重新下載安裝都不會換;「完全重置」(含
/reset-everything)也不會清掉它。只有您手動刪除整個 %LOCALAPPDATA%\BahaAD 資料夾,下次啟動才會產生一組新的。
- 它是一串隨機字元,不含、也無法反推出您的任何個人資訊(不是硬體序號、不是帳號、跟您的 GitHub 身分無關)。用途只有一個:讓伺服器在計算「使用人數」時能去重,不會把同一台電腦重複算成很多人。
- 關掉「即時統計」→ 立刻停止所有回報與心跳,這組識別碼不再送出(但仍留在您電腦上,重新打開就繼續用同一組)。
回報什麼
| 項目 | 內容 | 說明 |
| 匿名啟動識別碼 | 上述那串隨機字元 | 計算人數時去重用 |
| 總下載次數 | 每成功下載一集 +1(只有數字增量) | 不含番劇名、集數、檔案 |
| 訂閱/收藏狀態 | 「這台電腦目前有沒有訂閱/收藏某部番劇」+番劇的站方公開名稱 | 只有 on/off 狀態,統計「幾個人訂閱這部」 |
| 番劇觀看/看完次數 | 開始播放 +1、播到 80% +1(只有數字增量)+番劇名 | |
| 目前狀態旗標 | 「有沒有排程下載」「有沒有開公開模式」兩個布林值 | 計算「實際使用人數」用 |
| 每分鐘心跳 | 「還在執行」+「公開模式現在有沒有人在用」+「正在看哪部番劇」 | 計算「當前在線人數/正在收看人數」;公開模式閒置超過 10 分鐘就不算在線 |
不會回報:帳號密碼、Cookie、您完整的訂閱/下載清單、檔案、下載路徑、IP 位址、您的 GitHub 身分、任何可以指向「您是誰」的資料。番劇名稱用的是動畫瘋站上本來就公開的節目名稱。
送不出去時
伺服器可能因維護而暫時關閉。這時回報會暫存在您電腦上(合併成增量,例如暫存期間下載 5 次就記一次 +5),之後按「每 3 分鐘(前 10 次)→ 每 1 小時(再 10 次)→ 之後每 3 小時」的節奏重試補送。心跳類(在線/正在收看)不暫存——過期就沒有意義。
「所有使用者已回報錯誤次數」
設定頁「匿名使用統計」區會顯示「所有使用者已回報次數」——這是伺服器彙總的、所有開啟即時統計的使用者到目前為止透過「錯誤自動回報」送出過幾筆的總數。它只是一個總數字,不含任何錯誤內容。
三、GitHub 帳號綁定(可選)
BahaAD 的「同帳號多 IP 防護」與「star 提醒」功能需要您登入 GitHub 帳號。不連結 GitHub 帳號完全不影響任何下載/排程功能。
- 我們只查詢您是否已 star 本專案這一項狀態,不讀取您帳號的其他資訊。
- 授權採標準 OAuth 流程,BahaAD 全程不經手您的 GitHub 帳號密碼。程式本機只持有一組由後端核發、不透明、可隨時撤銷的權杖(token),加密保存在您自己的電腦上;程式從來拿不到您真正的 GitHub access token。
- 「同帳號多 IP 防護」會由後端記錄您連線時的 IP 位址,用途僅限於判斷是否有帳號共享情形,不做其他用途。
四、番劇資料補充
BahaAD 的番劇詳細頁會從其他公開的動畫資料來源補充簡介,以及動畫瘋本身沒有的「製作/配音/音樂」欄位。
- 程式每小時(最多)向該來源抓幾個公開的季度總覽頁面。
- 這是單純的網頁 GET 請求,不會送出您的任何資料——不帶 Cookie、不帶帳號、不帶動畫瘋的登入資訊、沒有任何識別參數。抓回來的內容存在您自己電腦上。
五、訂閱者 Discord/Telegram 通知(可選)
這是另一群人的資料——不是您(BahaAD 擁有者)自己的使用資料,而是您選擇開啟「公開模式」並完成安裝實例綁定後,用「Discord 登入」或「Telegram 登入」自助登入這台 BahaAD 網站、訂閱番劇更新通知的訂閱者。跟上面四節「錯誤自動回報」「即時匿名使用統計」「GitHub 帳號綁定」「番劇資料補充」完全獨立、完全不同的資料,也跟即時統計的「匿名啟動識別碼」機制無關。
這項功能預設不會發送任何訊息,必須先在「公開模式」下由您開啟並完成綁定,且訂閱者要先主動在網站上點選登入才會產生資料。
登入時經手什麼資料
| 項目 | 內容 | 存放位置 |
| Discord 登入 | 走 Discord 標準 OAuth2(只取得帳號 ID/使用者名稱,不取得密碼、不取得帳號其他資訊;額外請求「安裝到您的帳號」授權,用來嘗試讓 Bot 能主動私訊通知,不會取得您伺服器上的任何資料),交握全程經由官方中繼伺服器代為進行 | 中繼不保存訂閱者身分,只在登入當下驗證後轉交給您這台 BahaAD;身分與訂閱清單存在您自己這台電腦的 bahaad.db,中繼不存訂閱內容 |
| Telegram 登入 | 走 Telegram 官方 Login Widget(網頁內嵌登入按鈕,交握全程經由官方中繼伺服器頁面代為進行,只取得帳號 ID/顯示名稱,不取得密碼) | 中繼不保存訂閱者身分,只在登入當下驗證後轉交給您這台 BahaAD;身分與訂閱清單同樣只存在您這台電腦 |
| 登入後的訂閱者身分 | Discord/Telegram 的帳號 ID、顯示名稱 | 只存在您這台電腦的 bahaad.db,中繼完全不保存 |
不會回報:訂閱者的密碼、Discord/Telegram 帳號的其他個人資訊、訂閱者所在裝置的 IP 位址或其他識別資訊。
資料如何流動
訂閱者在網站點選登入 → 中繼代為完成 Discord OAuth 交握/Telegram Login Widget 驗證 → 把驗證好的帳號 ID 用簽章交還給您這台 BahaAD → 您這台電腦本地建立訂閱者身分與登入 session。番劇更新時,是您這台電腦主動請中繼代為發送通知——官方 Bot/OAuth 應用程式的真實憑證只存在中繼伺服器,不會散布到任何一台自架的 BahaAD。
關閉/移除
- 訂閱者可隨時在網站上登出,或取消個別番劇的訂閱。
- 您(BahaAD 擁有者)關閉「公開模式」或未設定「域名設定」時,這整項功能立即停用,訂閱者無法再登入或收到通知。
播放時的技術性防護記錄(登入者專屬)
已登入的訂閱者(或您本人)在瀏覽器內建播放器觀看番劇時,播放進度只存在您自己的瀏覽器(localStorage,只有這個瀏覽器看得到,不會傳給任何伺服器)。為了防止爬蟲等自動化工具濫用遠端播放功能,伺服器這端會在記憶體裡暫時記錄「這個登入身分(帳號 ID)+這一集」是否已通過防護判斷——這筆記錄只存在記憶體、不寫進 bahaad.db,程式重新啟動就會清空;未登入的訪客不會有這筆記錄。
資料如何被使用
回報的資料(錯誤回報與即時統計)只用於排查程式錯誤、改善穩定性、以及呈現整體使用規模的統計,儲存在專案維護者自行管理的伺服器上。不會與您的 GitHub 帳號身分做交叉比對,也不會把「匿名啟動識別碼」跟任何其他身分關聯,除非未來有明確需要並另外告知。
這份清單以後會不會擴大?
不會隨意擴大。如果之後真的需要新增欄位,會更新這份文件並在程式更新時說明,不會用「或是更多的資訊」這種開放式的方式蒐集。
同意方式
- 首次啟動時會有清楚顯眼的畫面列出「錯誤自動回報」的欄位內容,並附上本文件的連結。
- 「錯誤自動回報」與「即時統計」都預設開啟、各自獨立,可在設定頁的「匿名使用統計」區分別關閉。
- 關閉後立即停止該項的回報,不會「關閉了但還是偷偷送」。
聯絡方式
如對本說明有疑問,請透過 GitHub repo 的 Issues 提出。