vocalsync-downloader Svelte Themes

Vocalsync Downloader

VocalSync Downloader - safe portable YouTube downloader built with Tauri and Svelte

VocalSync Downloader

一款安全導向的 YouTube 影片、音訊與字幕下載器,使用 Tauri v2、Svelte 5 與 Rust 建置。

VocalSync Downloader 專注在清楚可控的下載流程:先確認來源、信任工具,再下載內容。它支援單支影片、播放清單與頻道預覽下載,並提供畫質選擇、檔名自訂、同名檔案處理、片段下載與即時進度。

透明度聲明 本專案由 AI 協作完成,包含架構、程式碼、UI 與測試修復。主要安全項目已經過 Claude / Codex 交叉 review,並以實測驗證;請依你的使用情境自行評估風險後採用。

功能特色

  • YouTube allowlist - 目前只允許 youtube.comyoutu.beyoutube-nocookie.com 與其子網域
  • 影片下載 - 預設 720p,可選最佳、1080p、720p、480p
  • 高畫質影音合併 - 影片模式優先下載 video + M4A/AAC audio,再用 FFmpeg 合併為 MP4
  • 音訊下載 - 支援 MP3 與 M4A
  • 字幕下載 - 支援字幕輸出,不需 FFmpeg
  • 播放清單 / 頻道預覽 - 批次下載前先預覽項目並套用最大下載數量
  • 自訂檔名 - 下載頁可輸入檔名;留空時使用影片原始標題
  • 同名檔案處理 - 偵測到同名檔案時,可選擇覆蓋或另存副本,副本會自動加上 (1)(2) 等序號
  • 片段下載 - 可新增多組開始 / 結束時間,只下載指定片段
  • 暫停 / 繼續 / 停止 - 暫停後保留本次設定,繼續時沿用既有暫存檔
  • 工具信任機制 - yt-dlp、FFmpeg、ffprobe 會先顯示路徑與 SHA-256,再由使用者信任
  • 自動安裝工具 - 可自動下載 managed yt-dlp / FFmpeg,下載後驗證 SHA-256 再寫入信任紀錄
  • 多語系介面 - 支援繁體中文、English、日本語

技術架構

層級 技術
前端 Svelte 5 + TypeScript + Vite
桌面框架 Tauri v2
後端 Rust
下載核心 yt-dlp CLI wrapper
影音處理 FFmpeg / ffprobe
安全檢查 URL allowlist + SHA-256 tool trust manifest

安裝

從 Release 下載

  1. 前往 Releases 頁面
  2. 下載最新的 VocalSync.Downloader.Portable.x.y.z.zip
  3. 解壓縮到任意位置,例如桌面或 D:\Tools\
  4. 進入資料夾,雙擊 vocalsync-downloader.exe 啟動

第一次執行的 Windows SmartScreen 提示 目前 release 尚未做 code-signing 數位簽章,Windows 可能顯示「Windows 已保護您的電腦」。 點選 「其他資訊」,再點 「仍要執行」 即可啟動。 你也可以用下列指令比對 zip 的 SHA-256:

certutil -hashfile "VocalSync.Downloader.Portable.x.y.z.zip" SHA256

已測試環境

項目 版本
OS Windows 11
架構 x86_64
WebView2 Windows 10 / 11 預裝版本

目前正式 release 以 Windows portable zip 為主。macOS / Linux 可從原始碼嘗試建置,但尚未提供正式 release。

首次設定

下載前需要先完成工具信任:

  1. 開啟 工具信任
  2. 點選 自動安裝 yt-dlp
  3. 點選 自動安裝 FFmpeg
  4. 確認 yt-dlp 與 FFmpeg 顯示為已信任
  5. 回到 下載設定 開始下載

手動指定工具時,請確認來源可信。程式會顯示完整路徑與 SHA-256,並要求你勾選來源確認後才會信任。

下載流程

  1. 貼上 YouTube 影片、播放清單或頻道網址
  2. 選擇格式:影片、MP3、M4A 或字幕
  3. 影片格式可選畫質:最佳、1080p、720p、480p
  4. 選擇輸出資料夾
  5. 需要自訂名稱時,在檔名欄位輸入名稱
  6. 播放清單或頻道會先預覽項目,再由你確認下載範圍
  7. 同名檔案出現時,選擇覆蓋或另存副本
  8. 點選 開始下載

影片格式會使用 FFmpeg 合併影音。MP3 / M4A 會使用 FFmpeg 做音訊後處理。字幕下載可只使用 yt-dlp。

品質與相容性

  • 最佳:優先選最高畫質 video + M4A/AAC audio,再合併為 MP4
  • 1080p / 720p / 480p:限制影片高度上限,並優先選擇相容 Windows Media Player 的音訊
  • 720p:預設值,適合檔案大小與畫質的平衡
  • 片段下載:切點受影片 keyframe 影響,開頭或結尾可能有數秒誤差;需要精準分享時,建議多抓 5-10 秒再修剪

安全設計

  • 只允許 YouTube 網域進入下載流程
  • yt-dlp / FFmpeg / ffprobe 需通過 SHA-256 信任後才會被執行
  • managed yt-dlp 會比對版本與 SHA-256,已是最新時會跳過重複更新
  • 手動工具需要額外確認來源可信
  • 工具下載會檢查 SHA-256 與大小上限
  • Windows 下暫停、停止或逾時會清理 yt-dlp / FFmpeg process tree
  • Content Security Policy 已限制 inline script / style

從原始碼建置

前置需求

指令

npm install
npm run tauri dev
npm run tauri build
npm run pack:portable

建置產物位於:

src-tauri/target/release/bundle/

portable zip 位於:

src-tauri/target/release/bundle/portable/

專案結構

vocalsync-downloader-tauri/
├── src/
│   ├── components/          # 共用 UI 元件
│   ├── i18n/                # 多語系文字
│   ├── lib/                 # Tauri API wrapper
│   ├── tabs/                # 關於頁等頁面
│   └── App.svelte           # 主要下載介面
├── src-tauri/
│   ├── src/
│   │   ├── download.rs      # yt-dlp 下載流程、進度、衝突處理
│   │   ├── tools.rs         # 工具偵測、安裝、SHA-256 信任
│   │   ├── lib.rs           # Tauri commands
│   │   └── main.rs          # Tauri 入口
│   ├── capabilities/        # Tauri v2 權限設定
│   └── tauri.conf.json
├── scripts/
│   └── pack-portable.mjs    # portable zip 打包
└── package.json

問題回報

使用遇到問題、下載失敗或想提出功能建議,可以透過以下方式聯絡:

回報時建議附上:

  • 作業系統版本
  • VocalSync Downloader 版本
  • 影片網址類型:單支影片、播放清單或頻道
  • 選擇的格式與畫質
  • 錯誤訊息截圖

授權

VocalSync Downloader 本體以 MIT License 開源發佈。

第三方元件授權

元件 授權 在本專案中的用途
Tauri MIT / Apache-2.0 桌面應用框架
Svelte MIT 前端 UI 框架
yt-dlp The Unlicense YouTube 下載 CLI
FFmpeg LGPL 2.1+ / 可能為 GPL 影音合併、轉檔與片段處理

yt-dlp 與 FFmpeg 皆以 subprocess / CLI 方式呼叫。本倉庫原始碼未內嵌 yt-dlp 或 FFmpeg binaries;使用者透過應用程式下載、處理、轉換的內容,其著作權與合法使用責任由使用者自行承擔。

相關專案

支持開發

Top categories

Loading Svelte Themes