YouTube Downloader
YouTube 影音下載器
Windows 桌面應用程式,支援 YouTube 單檔與批次下載(音訊 M4A / 影片 MP4 best+remux)。內建 yt-dlp / FFmpeg / Deno 自動下載與 SHA256 驗證,提供 GitHub Release 自動更新;架構重構為 Form1 thin coordinator 加 5 個 service。
01 問題
網路上的 YouTube 下載器多含廣告或捆綁;yt-dlp 在 2025.11+ 開始需要 Deno 作 JS runtime,使用者得手動安裝 yt-dlp / FFmpeg / Deno;批次下載、取消支援、完成後校驗與自動更新也常被忽略。
02 解法
.NET 8 + C# 12 + WinForms 桌面應用,三層架構(Form1 thin coordinator 串 5 個 service:ToolManager / FileDownloader / URLValidator / DownloadService / UIManager)。ToolManager 自動偵測並下載 yt-dlp / FFmpeg / Deno(含 SHA256 驗證 + SharpCompress 7z 解壓 + Deno zip 解壓到 yt-dlp 同層);DownloadService 支援 CancellationToken 與批次 per-item 進度;AutoUpdater 走 GitHub Release API + SHA256 + batch-file restart。
03 成果
CI/CD 透過 GitHub Actions 同時發布 Framework-dependent 與 Self-contained 兩種 zip。提供零依賴一鍵安裝體驗,繁體中文 UI、High DPI、批次下載、取消與自動更新。
04 功能特色
- ▸ 單檔 / 批次下載,per-item 進度與結束 summary
- ▸ 音訊 M4A / 影片 MP4 best+remux
- ▸ yt-dlp / FFmpeg / Deno 自動偵測與下載
- ▸ SHA256 完整性驗證 + 7z / zip 解壓
- ▸ GitHub Release 自動更新(batch-file restart)
- ▸ 取消下載(CancellationToken + Process.Kill)
- ▸ High DPI PerMonitorV2、繁體中文 UI