Discord 機器人2023

YouTube Discord 機器人

Discord 機器人,自動爬取 YouTube 頻道的最新影片和直播,並推送到指定頻道

YouTube Discord 機器人

專案概述

這是一個自動化的 Discord 機器人,專門用於爬取 YouTube 頻道的最新影片和直播內容,並將其推送到指定的 Discord 頻道。機器人支援自動排程(每小時整點和半點檢查)和手動觸發,並具備完整的頻道管理功能,避免重複推送相同內容。

技術挑戰與解決方案

YouTube 爬蟲實現

需要穩定地爬取 YouTube 頻道內容,並處理各種反爬蟲機制。

解決方案:
實作雙重爬蟲策略:Fetch API 作為主要方式,Puppeteer 作為備用方案,確保爬取穩定性。

重複內容避免

需要追蹤已推送的影片,避免重複通知用戶。

解決方案:
建立本地快取機制,記錄已推送內容的 ID,並實作智能過濾算法。

定時任務管理

需要確保機器人能夠穩定地執行定時檢查任務,不受服務重啟影響。

解決方案:
使用 PM2 進行程序管理,配置自動重啟和錯誤處理機制。

系統架構

系統架構圖

使用 Node.js + Discord.js 開發,支援 Fetch API 和 Puppeteer 兩種爬蟲模式,透過 PM2 進行程序管理,定時任務確保穩定運行。

學習與心得

這個專案讓我深入學習了 Discord 機器人開發、網頁爬蟲技術,以及自動化任務的設計。特別是在處理反爬蟲機制和確保服務穩定性方面積累了寶貴經驗。

技術棧

核心技術

Node.jsDiscord.jsJavaScript

爬蟲技術

YouTube APIPuppeteerFetch API

部署管理

PM2Linux Cron