- 逆向行駛 - https://520.be/ -

再戰FlexGet,打造BT下載機

/* ================================================================ ✨ 本篇專屬特殊功能樣式 注意:全域版面(.my-article、h1~h4、表格、blockquote、清單等)已載入外部 CSS 此區塊僅保留本篇文章專屬之「程式碼區塊」擴充樣式 ================================================================ */

.my-article pre { background-color: #111; border-left: 4px solid var(--color-code); padding: 16px; border-radius: 8px; overflow-x: auto; color: #d0d0d8; font-family: var(--font-mono); font-size: 14.5px; margin: 16px 0; line-height: 1.6; } .my-article code { background-color: #1a1a1c; color: var(--color-code); padding: 2px 6px; border-radius: 4px; font-family: var(--font-mono); }

🚀 再戰 FlexGet!打造 24 小時全自動 BT 追劇下載機

🔥 一句話總結懶人包: 手動找種子下載已經落伍了!透過 FlexGet 這套超強大的自動化腳本工具,只要設定好一次,伺服器就會像個不知疲倦的數位管家,全天候自動幫你把最新的影集、電影通通抓回家!

最近我把手邊的伺服器系統全面改換成 💻 CentOS 6.5,畢竟 CentOS 6 系列已經相當穩定,而老舊的 5 系列只支援到 2017 年,真的是時候汰換升級了!剛好這次系統內建的 Python 環境已經原生升級到 ⚙️ Python 2.6.6,省去了我們手動編譯更新的麻煩手續,只要能讓 FlexGet 順利運作就行了 🤓。

但好死不死,這次剛好碰上 FlexGet 進行了全面大改版,🚨 舊版的設定檔格式已經完全不相容、無法再使用了! 系統會直接報錯罷工,所以只好摸摸鼻子,把設定檔重新研讀、重寫一遍 🤖🤓🤖。

💡 白話文教室:什麼是 FlexGet?它能幹嘛?
如果把 BT 下載軟體(像是 Transmission 或 qBittorrent)比喻成「負責搬貨的貨運司機」,那麼 FlexGet 就是你的 💯 專屬數位採購管家

以前你必須自己上網逛論壇、找種子檔、點擊下載;現在,你只要給 FlexGet 一份「採購清單」(各大影音論壇的 RSS 訂閱網址),它就會定時去各大網站巡邏。只要發現有符合你口味的新影集出爐,它就會自動把任務丟給貨運司機去載,你下班回家只要打開資料夾,影片就已經準備好在那裡了!

⚠️ 溫馨提醒: 科技日新月異,如果您使用的是較新的 Linux 發行版,請優先參考本站的最新版教學:
👉 2020年10月6日 – 三戰FlexGet(CentOS 8 與 Python 3.6.8 架設篇) [1]


🟩 🟩 🟩

🛠️ 基礎建設:為管家準備工作環境

就像請管家來上班前,你得先幫他準備好辦公桌跟基本文具。因為 FlexGet 是由 Python 語言編寫的,所以我們得先把 Python 的執行環境和套件管理工具安裝到位。

  1. ❶ 安裝系統基本套件
    先把 Python 的開發包和 SQLite 資料庫套件裝起來,這是讓系統能讀懂腳本的基石。
  2. ❷ 升級 PiP 套件管理員
    PiP 就像是 Python 專屬的「App Store 軟體應用商店」,為了避免安裝時出現各種靈異報錯,我們必須先把它更新到最新版。
  3. ❸ 正式安裝 FlexGet 主程式
    基礎建設弄好後,只要一行指令,就能把我們的主角請進伺服器裡啦!

🟦 🟦 🟦

📜 核心靈魂:編寫 FlexGet 任務設定檔 (config.yml)

軟體裝好了,但這位管家現在還不知道你要抓什麼。我們必須建立一個名為 config.yml 的設定檔,這就像是給管家的 👌「標準作業程序 (SOP) 手冊」。裡面會清楚記載要去哪裡找檔案、抓到後要交給哪個軟體處理。

  1. ❹ 建立設定檔目錄與空檔案

🚨 老司機警告:YAML 格式的縮排陷阱!
編寫 .yml 結尾的檔案時,⛔ 絕對不能用鍵盤的 Tab 鍵來縮排,必須乖乖使用「空白鍵 (Space)」!
YAML 的層級關係非常嚴格,只要多空一格或少空一格,程式就會看不懂而直接報錯罷工。

請參考以下的範例內容,將它貼入 config.yml 中並依據你的環境進行修改:

📊 FlexGet 設定檔參數白話文解析

⚙️ 參數名稱 📖 實際作用與白話分解
tasks: 所有任務的開頭宣告。告訴系統:「接下來我要交代任務清單囉!」
CHD: 這是你自己取的「任務名稱」,你可以隨便取,例如 Anime_Download。
rss: 🔑 關鍵採購清單! 填入各大 PT 站或 BT 論壇提供的 RSS 訂閱專屬網址。
accept_all: 設為 yes 表示「只要出現在這份清單上的東西,我全都要!」完全不挑食。
free_space: 硬碟空間的安全檢查機制。指定下載路徑與最小剩餘空間(例如 💾 5168 MB),避免把伺服器硬碟塞爆導致系統崩潰。
transmission: 指定要把抓到的種子檔交接給 Transmission 這套 BT 軟體,並確實填入登入用的 username 與 password。

🟪 🟪 🟪

🩺 驗收成果:測試與排程設定

  1. ❺ 測試 FlexGet 運作是否成功
    SOP 手冊寫好之後,我們要先讓管家「彩排」一次,看看他有沒有看懂。使用 check 檢查設定檔語法,再用 –test 進行模擬執行(這個指令只會演習測試,不會真的下載東西)。

    如果畫面上跑出成功的提示,且沒有出現紅色的 ERROR,就代表大功告成啦 🤓!

    FlexGet 版本檢查與執行測試畫面 [2]
    FlexGet 成功抓取 RSS 列表畫面 [3]

  2. ❻ 定時排程:啟動自動化鬧鐘
    最後一步,也是自動化的靈魂。我們要利用 Linux 系統內建的 crontab 功能,設定一個💯「隱形鬧鐘」。讓系統每 ⏱️ 10 分鐘 就把管家叫醒,去讀取一次 RSS 看有沒有新東西。

    進入排程編輯模式:

    或者直接一鍵寫入排程內容(每 10 分鐘自動執行一次):


🟫 🟫 🟫

🧹 日常維護與延伸學習

  1. ❼ 日常更新 FlexGet
    開源軟體會一直出新版來修復 Bug,未來只要想幫 FlexGet 升級,輸入以下指令即可:

💡 進階玩家看過來:
FlexGet 的威力遠不止於此,它還可以串接 IMDb 評分來決定要不要下載(例如低於 7 分的爛片拒抓)、過濾畫質(只抓 1080p 或 4K 版本)、甚至可以搭配 Telegram 機器人,在下載完成時傳訊息到手機通知你喔!

📚 官方參考文件與 Plugin 資源

</div