YouTube 影片智慧剪輯工具。下載影片與字幕,由 AI 分析並生成精細章節(數分鐘等級),使用者選擇片段後即可自動剪輯、翻譯字幕為中英雙語、將字幕燒錄至影片,並生成總結文案。使用場景:當使用者需要剪輯 YouTube 影片、生成短影片片段、製作雙語字幕版本時。關鍵字:影片剪輯、YouTube、字幕翻譯、雙語字幕、影片下載、clip video
YouTube 影片智慧剪輯工具
安裝說明:若您是從 GitHub 安裝此 Skill,請參閱 README.md 了解詳細安裝步驟。推薦的安裝方式為
npx skills add https://github.com/op7418/Youtube-clipper-skill。
工作流程
你將依照以下 6 個階段執行 YouTube 影片剪輯任務:
階段 1:環境檢測
目標:確保所有必需的工具與相依套件皆已安裝
-
檢測 yt-dlp 是否可用
yt-dlp --version -
檢測 FFmpeg 版本與 libass 支援
# 優先檢查 ffmpeg-full(macOS) /opt/homebrew/opt/ffmpeg-full/bin/ffmpeg -version # 檢查標準 FFmpeg ffmpeg -version # 驗證 libass 支援(字幕燒錄必需) ffmpeg -filters 2>&1 | grep subtitles -
檢測 Python 相依套件
python3 -c "import yt_dlp; print('✅ yt-dlp available')" python3 -c "import pysrt; print('✅ pysrt available')"
若環境檢測失敗:
- yt-dlp 未安裝:提示
brew install yt-dlp或pip install yt-dlp - FFmpeg 缺乏 libass 支援:提示安裝 ffmpeg-full
brew install ffmpeg-full # macOS - 缺少 Python 相依套件:提示
pip install pysrt python-dotenv
注意事項:
- 標準 Homebrew FFmpeg 未包含 libass,無法燒錄字幕
- ffmpeg-full 路徑:
/opt/homebrew/opt/ffmpeg-full/bin/ffmpeg(Apple Silicon) - 必須先通過環境檢測才能繼續執行
階段 2:下載影片
目標:下載 YouTube 影片與英文字幕
-
詢問使用者 YouTube URL
-
呼叫 download_video.py 腳本
cd ~/.claude/skills/youtube-clipper python3 scripts/download_video.py <youtube_url> -
腳本會執行:
- 下載影片(最高 1080p,MP4 格式)
- 下載英文字幕(VTT 格式,自動字幕作為備選)
- 輸出檔案路徑與影片資訊
-
向使用者展示:
- 影片標題
- 影片長度
- 檔案大小
- 下載路徑
輸出檔:
- 影片檔案:
<id>.mp4(使用影片 ID 命名,避免特殊字元問題) - 字幕檔案:
<id>.en.vtt
階段 3:分析章節(核心差異化功能)
目標:使用 Claude AI 分析字幕內容,生成精細章節(2-5 分鐘等級)
-
呼叫 analyze_subtitles.py 解析 VTT 字幕
python3 scripts/analyze_subtitles.py <subtitle_path> -
腳本會輸出結構化的字幕資料:
- 完整字幕內文(含時間戳記)
- 總長度
- 字幕筆數
-
你必須執行 AI 分析(此為最關鍵的步驟):
- 閱讀完整字幕內容
- 理解內容語意與主題轉折點
- 識別自然的話題切換位置
- 生成 2-5 分鐘粒度的章節(避免半小時粗粒度切分)
-
為每個章節生成:
- 標題:精練的主題概括(10-20 字)
- 時間範圍:起始與結束時間(格式:MM:SS 或 HH:MM:SS)
- 核心摘要:1-2 句話說明此段落重點(50-100 字)
- 關鍵字:3-5 個核心概念詞
-
章節生成原則:
- 粒度:每個章節 2-5 分鐘(避免過短或過長)
- 完整性:確保涵蓋所有影片內容,無遺漏
- 有意義:每個章節皆為相對獨立的主題
- 自然切分:於主題轉折點切分,請勿機械化地按時間切割
-
向使用者展示章節清單:
📊 分析完成,共生成 X 個章節: 1. [00:00 - 03:15] AGI 不是時間點,是指數曲線 核心: AI 模型能力每 4-12 個月翻倍,工程師已用 Claude 寫程式碼 關鍵字: AGI、指數成長、Claude Code 2. [03:15 - 06:30] 中國在 AI 上的差距 核心: 晶片禁運卡住中國,DeepSeek benchmark 優化不代表實力 關鍵字: 中國、晶片禁運、DeepSeek ... (所有章節) ✓ 所有內容皆已涵蓋,無遺漏
階段 4:使用者選擇
目標:讓使用者選擇欲剪輯的章節與處理選項
-
使用 AskUserQuestion 工具讓使用者選擇章節
- 提供章節編號供使用者選擇
- 支援複選(可選擇多個章節)
-
詢問處理選項:
- 是否生成雙語字幕?(英文 + 中文)
- 是否將字幕燒錄至影片?(硬字幕)
- 是否生成總結文案?
-
確認使用者選擇並展示處理計畫
階段 5:剪輯處理(核心執行階段)
目標:平行執行多個處理任務
針對使用者選擇的每個章節,執行以下步驟:
5.1 剪輯影片片段
python3 scripts/clip_video.py <video_path> <start_time> <end_time> <output_path>
- 使用 FFmpeg 精準剪輯
- 保持原始影片畫質
- 輸出:
<章節標題>_clip.mp4
5.2 擷取字幕片段
- 從完整字幕中篩選出該時間段的字幕
- 調整時間戳記(扣除起始時間,從 00:00:00 開始)
- 轉換為 SRT 格式
- 輸出:
<章節標題>_original.srt
5.3 翻譯字幕(若使用者選擇)
python3 scripts/translate_subtitles.py <subtitle_path>
- 批次翻譯最佳化:每批 20 筆字幕一同翻譯(節省 95% API 呼叫)
- 翻譯策略:
- 保持技術術語的準確性
- 口語化表達(適合短影片)
- 簡潔流暢(避免冗長)
- 輸出:
<章節標題>_translated.srt
5.4 生成雙語字幕檔案(若使用者選擇)
- 合併英文與中文字幕
- 格式:SRT 雙語(每筆字幕包含英文與中文)
- 樣式:英文在上,中文在下
- 輸出:
<章節標題>_bilingual.srt
5.5 將字幕燒錄至影片(若使用者選擇)
python3 scripts/burn_subtitles.py <video_path> <subtitle_path> <output_path>
- 使用 ffmpeg-full(支援 libass)
- 使用暫存目錄解決路徑包含空格的問題(關鍵!)
- 字幕樣式:
- 字型大小:24
- 底部邊距:30
- 顏色:白色文字 + 黑色描邊
- 輸出:
<章節標題>_with_subtitles.mp4
5.6 生成總結文案(若使用者選擇)
python3 scripts/generate_summary.py <chapter_info>
- 基於章節標題、摘要與關鍵字
- 生成適合社群媒體的文案
- 包含:標題、核心觀點、適合平台(小紅書、TikTok 等)
- 輸出:
<章節標題>_summary.md
進度展示:
🎬 開始處理章節 1/3:AGI 不是時間點,是指數曲線
1/6 剪輯影片片段... ✅
2/6 擷取字幕片段... ✅
3/6 翻譯字幕為中文... [=====> ] 50% (26/52)
4/6 生成雙語字幕檔案... ✅
5/6 將字幕燒錄至影片... ✅
6/6 生成總結文案... ✅
✨ 章節 1 處理完成
階段 6:輸出結果
目標:整理輸出檔案並展示給使用者
-
建立輸出目錄
./youtube-clips/<日期時間>/輸出目錄位於目前的工作目錄下
-
整理檔案結構:
<章節標題>/ ├── <章節標題>_clip.mp4 # 原始剪輯(無字幕) ├── <章節標題>_with_subtitles.mp4 # 燒錄字幕版本 ├── <章節標題>_bilingual.srt # 雙語字幕檔案 └── <章節標題>_summary.md # 總結文案 -
向使用者展示:
- 輸出目錄路徑
- 檔案清單(含檔案大小)
- 快速預覽指令
✨ 處理完成! 📁 輸出目錄: ./youtube-clips/20260121_143022/ 檔案清單: 🎬 AGI_指數曲線_雙語硬字幕.mp4 (14 MB) 📄 AGI_指數曲線_雙語字幕.srt (2.3 KB) 📝 AGI_指數曲線_總結.md (3.2 KB) 快速預覽: open ./youtube-clips/20260121_143022/AGI_指數曲線_雙語硬字幕.mp4 -
詢問是否繼續剪輯其他章節
- 若是,返回階段 4(使用者選擇)
- 若否,結束 Skill
關鍵技術要點
1. FFmpeg 路徑空格問題
問題:FFmpeg subtitles 濾鏡無法正確解析包含空格的路徑
解決方案:burn_subtitles.py 使用暫存目錄
- 建立無空格的暫存目錄
- 複製檔案至暫存目錄
- 執行 FFmpeg
- 將輸出檔案搬移回目標位置
2. 批次翻譯最佳化
問題:逐筆翻譯會產生大量 API 呼叫
解決方案:每批 20 筆字幕一同翻譯
- 節省 95% 的 API 呼叫
- 提升翻譯速度
- 保持翻譯一致性
3. 章節分析精細度
目標:生成 2-5 分鐘粒度的章節,避免半小時的粗粒度劃分
方法:
- 理解字幕語意,識別主題轉折
- 尋找自然的話題切換點
- 確保每個章節皆有完整的論述
- 避免機械化地按時間切割
4. FFmpeg vs ffmpeg-full
差異:
- 標準 FFmpeg:缺乏 libass 支援,無法燒錄字幕
- ffmpeg-full:包含 libass,支援字幕燒錄
路徑:
- 標準:
/opt/homebrew/bin/ffmpeg - ffmpeg-full:
/opt/homebrew/opt/ffmpeg-full/bin/ffmpeg(Apple Silicon)
錯誤處理
環境問題
- 缺少工具 → 提示安裝指令
- FFmpeg 無 libass 支援 → 引導安裝 ffmpeg-full
- 缺少 Python 相依套件 → 提示 pip install
下載問題
- 無效的 URL → 提示檢查 URL 格式
- 字幕缺失 → 嘗試使用自動字幕
- 網路錯誤 → 提示重試
處理問題
- FFmpeg 執行失敗 → 顯示詳細錯誤資訊
- 翻譯失敗 → 重試機制(最多 3 次)
- 磁碟空間不足 → 提示清理空間
輸出檔案命名規範
- 影片片段:
<章節標題>_clip.mp4 - 字幕檔案:
<章節標題>_bilingual.srt - 燒錄版本:
<章節標題>_with_subtitles.mp4 - 總結文案:
<章節標題>_summary.md
檔名處理原則:
- 移除特殊字元(
/,\,:,*,?,",<,>,|) - 將空格替換為底線
- 限制長度(最多 100 個字元)
使用者體驗要點
- 進度透明:每個步驟皆展示進度與狀態
- 錯誤提示友善:提供清晰的錯誤資訊與解決方案
- 主導權高:由使用者自訂欲剪輯的章節與處理選項
- 高品質交付:章節分析具實質意義,翻譯精準流暢
- 完整性兼備:提供原始與處理後的多元版本
開始執行
當使用者觸發此 Skill 時:
- 立即啟動階段 1(環境檢測)
- 依序執行 6 個階段
- 每個階段完成後自動進入下一階段
- 遇到問題時提供清晰的解決方案
- 最後展示完整的輸出結果
記住:此 Skill 的核心價值在於 AI 精細章節分析 與 無縫的技術流程,讓使用者能快速從長影片中擷取高品質的短影片片段。






