Telegram Media Downloader 是什麼?把已加入頻道的媒體批次存回本機

Telegram Media Downloader 是 MIT 開源的自架電報下載器,用自己帳號登入後批次保存已加入頻道與群組的媒體,提供網頁進度面板與 Bot 指令兩種操作方式,自架前要先看清帳號信任、面板預設與內容界線三道門。

用 AI 摘要這篇文章:

把加入好幾年的 Telegram 頻道整批搬回自己電腦留存,官方手機版做不到,這件事就是 Telegram Media Downloader 存在的理由。它是一個 MIT 授權的開源專案,自己架、自己跑,把頻道裡的影片、文件、照片、語音按照你設的條件批次抓下來,還附一個網頁進度面板和機器人指令兩種操作方式。

專案在 2023 年 2 月開張,到 2026 年 8 月累積 5,482 顆星與 631 次 fork。它衍生自 Dineshkarthik 的同名上游專案,星數反而遠超上游本體的 2,704 顆,理由不難理解:衍生版把「裝在伺服器上長期跑」這件事做完整了。這篇的整理以專案原始碼、官方文件與議題區紀錄為準,性質是認識型的導覽,效果與穩定度需要你自己驗證。

先把判斷說在前面。這個工具值得用的情境很明確:你有大量自己有權保存的頻道媒體、想要的是備份的效率與自動化。但它的每一項能力都站在同一個前提上,也就是用你的 Telegram 帳號登入。帳號層的信任、網頁面板的預設行為、內容的授權界線,這三道門在安裝之前就該看清楚,下面逐條攤開。

每一次下載,都是用你的帳號在動作

它的運作方式跟貼連結式的下載器走的是完全不同的路線。你要先到 my.telegram.org 用自己的帳號申請一組 api_id 與 api_hash 填進 config.yaml,第一次啟動時再輸入手機號碼收驗證碼,官方文件還特別提醒 Docker 用戶第一次要用前景模式跑,就是為了輸入這組碼。登入之後,程式就以你的帳號身分去讀你已經加入的對話,媒體類型涵蓋音訊、文件、照片、影片、視訊圓形留言與語音,也能用條件篩選訊息日期區間,或透過 rclone 把抓好的檔案直接拋上雲端硬碟。

想要「貼上網址就幫你抓」的那種通用下載器,可以看我們之前介紹過的 YouweeGalaxy Downloader,兩者都是連結丟進去就工作的類型。Telegram Media Downloader 換到的東西也很實在:它可以常駐在伺服器上,設定 bot_token 之後變成一個機器人,用 download、forward、listen_forward、get_info 等十個指令遙控,把訊息轉寄給它也能觸發下載;不設 bot_token 的話,它就是一支跑完單次任務就結束的批次程式。一次備份與常駐監聽,兩種節奏都支援。機器人的操作介面就是 Telegram 對話本身,官方示範裡下指令之後,回覆訊息會直接列出下載與轉發的統計數字,單一檔案的大小、速度與進度也貼在對話串裡,離開電腦前丟個指令,用手機回來看進度就行。

Telegram Media Downloader 官方示範的機器人對話,下指令後回覆下載統計與單檔進度Pin
官方示範:在 Telegram 對話裡下指令,回覆訊息直接列出下載統計與單檔進度

帳號身分帶來的含義要想清楚。所有動作都記在你的帳號上,而 Telegram 對自動化行為有自己的節流政策,這不是理論:官方設定裡 forward_limit 預設每分鐘 33 次,文件還加了一句「請不要任意修改」;議題區 2026 年 7 月也有人回報一次性下載太多檔案,直接觸發訊息編輯 API 的限額(issue #287)。把大頻道整頓備份想成一件會被節流的事,會比把它想成暢通無阻的管道更接近實況。

篩選與續跑的設計,看得出這個專案對「批次備份」這件事的理解。config.yaml 裡每個頻道可以單獨設條件,例如用訊息日期區間限定要抓的範圍;音訊、文件、影片三類還能再指定副檔名,只要 PDF 或只要 MP4 都寫得出來。抓過的進度會記在 last_read_message_id,下次啟動從上回讀到的位置繼續,配合 data.yaml 裡自動記錄的失敗重試清單,中斷後重跑不需要整頻重來。檔案落地位置也能照頻道名稱、媒體日期、媒體類型組合出資料夾結構,併發下載數預設 5,要調整有 max_download_task 可用。這些細節湊起來,才撐得起「放在伺服器上定期跑」的使用方式。

網頁進度面板好用,預設卻不設防

進度是這個工具最討喜的部分。程式跑起來後打開 localhost:5000,就是官方文件示範的那個面板:下載中與已完成的分頁、每個任務的檔名、大小、進度條與速度,頁尾還彙總總速度,已經收完的任務會挪到另一個分頁存放,回頭核對哪些檔案抓過了很方便。官方示範圖裡有個細節值得注意,檔名欄位顯示的是星號遮蔽過的 ****.mp4,這是 hide_file_name 選項的效果,分享畫面或錄教學時不會把頻道內容一起洩出去。

Telegram Media Downloader 官方示範的網頁進度面板,顯示下載中分頁的多個任務進度條與速度Pin
官方示範的網頁進度面板:檔名、大小、進度與速度一覽,檔名以星號遮蔽

麻煩出在遠端存取。官方文件教你把 web_host 設成 0.0.0.0 就能從外部連進面板,但原始碼裡的邏輯是:只要沒有設定 web_login_secret,登入功能會整個關閉,任何知道位址的人都能看到你的下載清單與頻道名稱。把密碼設起來之後,面板會出現一個帳號固定為 root 的登入頁,中文介面也在語言選項裡,這些都好用。

再往下一層看,這個面板用來簽發連線憑證的金鑰是寫死在程式裡的字串,登入密碼的加密金鑰也直接放在原始碼中。換句話說,登入機制擋得住順手亂點的人,卻稱不上加密等級的防護。面板留在本機用最安心;真要對外,套一層自己管理的反向代理與認證,別只靠它內建的這道門。

你裝的是一條個人維護的依賴鏈

安裝時有件事文件不會特別張揚,但值得每個使用者知道:requirements.txt 裡的 pyrogram 程式庫,來源是作者自己 fork 的版本,而且裝的是分支的打包檔,沒有版本號可以錨定。主線 Pyrogram 本身已經多年沒有維護,這個專案靠作者自己帶著修補活下去。你的帳號登入與所有通訊都跑在這條由單一維護者掌握、沒有版本錨點的鏈上,這是自架前要接受的供應鏈現實。

維護節奏也攤開來看。GitHub 上的正式發行停在 2025 年 1 月的 v2.2.5,2026 年 3 月的提交把程式版本號推到 2.2.6 但沒有跟著發行,而近期提交多半是文件修改。同一段時間議題區倒是持續有新議題進來,開放中的議題連同合併請求共 112 筆,2026 年 3 月到 8 月就多了好幾筆,其中幾個直接影響使用:下載幾個影片後卡住不動、需要手動重啟(issue #281),例外發生後任務計數錯亂導致程式無法正常結束(issue #283),同一頻道掛多個監聽任務時只有一個會跑(issue #285),Windows 上安裝相依的 PyTgCrypto 會失敗(issue #286)。社群在用、問題有回報、修補偏慢,這是目前最誠實的寫照。

與上游的關係倒是乾淨。授權檔保留的是上游作者 2019 年起的著作權聲明,MIT 條款完整,衍生血緣看得一清二楚;上游本體 2026 年還在發版,2 月連三天發了三版,連網頁介面都補上了,但機器人指令、Docker 部署、監聽與雲端上傳仍只在衍生版這邊;衍生版的正式發行反而停在 2025 年 1 月。兩條線各有活法,一邊功能多、一邊更新勤,這個選擇權在你。

安裝管道有三條:類 Unix 系統用 make install 一鍵裝依賴,Windows 用 pip3 加 requirements.txt,懂得用 Docker 的人則有官方映像檔與 docker-compose 範本可套,第一次以前景模式跑是為了輸入手機號碼與驗證碼,之後就能常駐背景。專案掛著單元測試與覆蓋率的整合徽章,也有對應的自動說明文件,工程上的基本衛生有做,只是步調快慢有別。

官方描述裡兩個要打上問號的宣稱

專案描述寫著「單檔最大支援 2GiB」,這句話上游也在用。原始碼裡找不到對應的檢查或常數,這個數字應該當成作者沿用的宣稱,不算程式保證的上限。它很可能只是反映 Telegram 平台本身對一般帳號的檔案量級限制,但這是推測,文件沒有解釋來源。如果你的素材會超過這個量級,先用自己的檔案驗證一輪再說。

描述裡另一句更值得停下來想:「支援下載已加入但限制下載的私有群資源」。同樣是作者的宣稱;原始碼在轉發路徑會讀取頻道的內容保護標記,下載範圍則以你帳號已加入的對話為限。真正的關卡在授權這一側:頻道管理者把限制保存的開關打開,意思就是他不希望內容被搬走。你的帳號看得到某個檔案,和你有沒有權利把它存下來再利用,是兩件不同的事。

把使用情境具體化會更好判斷。站得住腳的用法像是:備份自己經營的頻道內容、保存社團裡自己上傳且取得共識的教材影片、下載授權條款明確允許取用的公開資料集。站到界線另一邊的用法,則是把別人標明限制保存的付費課程或會員內容整批搬走,甚至再轉手散布,這類行為無論工具做不做得到,責任都在動手的人身上。工具本身沒有善惡,但它把能力放大到「一個指令整頻搬」的量級,界線就更要自己顧好。

自架前設對三件事,再上線

面板要上鎖。web_login_secret 一定要設,web_host 留在 127.0.0.1;真的需要從外部連,用自己架的反向代理加認證,別讓預設免登入的面板直接掛在網際網路上。

設定檔要當鑰匙保管。config.yaml 裡躺著 api_id、api_hash 與登入後的連線身分,等同你 Telegram 帳號的鑰匙。放在伺服器上時注意檔案權限,也別讓它進到任何版本庫或備份到公開位置。把 Telegram 當成檔案搬運管道的各種玩法,可以對照我們寫過的 OtterHub,那篇處理的是另一端的儲存與整理問題。

內容界線要自己畫。只抓你有權保存的內容,預期會撞到限額,Windows 用戶先看過 issue #286 再動工。抓回來的媒體若要整理成資料庫,KOMA 那類工具可以接在後面。

低成本的第一步很簡單:挑一個小頻道試跑一輪,在進度面板看到任務確實落地、檔案出現在 save_path,再考慮放大規模。判斷標準也具體:小量測試就頻繁出現卡死或限額,代表你的情境不適合全自動批次,回到官方桌面版的匯出功能或分批手動會更省心。如果你的需求只是偶爾備份自己的對話,先試官方匯出,它對一次性需求通常夠用。

有些人從一開始就該繞過這個工具。不願意把 Telegram 帳號登入第三方程式的人,帳號價值高於備份便利的人,需要有人負責修問題的商業使用者,還有想抓取無權保存內容的人,這四種情境在這裡都沒有合理的報酬。反過來說,看得懂設定檔、願意自己顧伺服器、手上確實有大批有權保存的媒體的人,會在這裡找到官方用戶端給不了的東西。

總結這個判斷:三道門看得清楚的人,拿到的是一個免費、開源、能常駐自動化的備份引擎;沒看清就上線的人,承擔的是帳號、面板與授權三種風險。它是同一段程式碼,差別只在架它的人知不知道自己簽了什麼。

Sliven 褚崇名
Sliven 褚崇名

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

文章: 935

發佈留言

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


Share to...