更新於 2025年9月19日
9 分鐘
ffmpeg 用於影片操作)以及您選擇的 ASR(例如 Whisper)用於轉錄結合起來。video-automation/├─ config/│ ├─ brand_voice.yaml│ ├─ platforms.yaml│ └─ prompts/│ ├─ script_prompt.md│ ├─ title_desc_prompt.md│ └─ clip_rules.md├─ data/│ ├─ raw/│ ├─ processed/│ └─ captions/├─ scripts/│ ├─ generate_script.py│ ├─ transcribe.py│ ├─ autoclip.py│ ├─ captions.py│ ├─ repurpose.py│ └─ schedule_upload.py└─ Makefileconfig/prompts 中的模組化,以便 Claude 可以改進個別步驟,而無需觸及您的程式碼。platforms.yaml 中。Makefile 或任務執行器來鏈結工作流程:make shorts、make upload。config/brand_voice.yaml。Claude Code 可以幫助正規化和驗證架構,然後在提示中參考它。brand:persona: "務實但樂觀的教育家"audience: "B2B SaaS 行銷人員和獨立創作者"pillars:- "實用自動化勝於理論"- "數據驅動的決策"- "眼見為憑"banned_phrases:- "改變遊戲規則者"- "顛覆"style:tone: "清晰、簡潔、友善"reading_level: "8–9 年級"ctas:primary: "訂閱以取得每週自動化建構"secondary: "取得工作流程範本"script_prompt.md,將品牌聲音和您的主題合併。範例提示內容:您是一位資深的影片行銷人員和腳本編寫人員。撰寫一個 60–90 秒的腳本,該腳本:- 在 3 秒內以數據點吸引注意<a3>- 提供 1 個可操作的要點</a2>- 使用 brand_voice.yaml 中的品牌聲音- 輸出具有時間戳記、建議的 B 卷和螢幕文字的場景列表scripts/generate_script.py,該檔案:scripts/transcribe.py:# 提取音訊ffmpeg -y -i data/raw/input.mp4 -vn -acodec pcm_s16le data/processed/audio.wav# 執行 Whisper(範例)whisper data/processed/audio.wav \--model medium \<a7>--language en \</a6>--task transcribe \--output_dir data/captions.srt 轉換為 .ass 或燒錄字幕:ffmpeg -i data/raw/input.mp4 -vf subtitles=data/captions/input.srt -c:a copy data/processed/captioned.mp4config/prompts/clip_rules.md 中定義剪輯規則:scripts/autoclip.py 以:ffmpeg 修剪和簡單的縮放/平移ffmpeg 剪切和放大:# 剪切 00:02:10–00:02:40ffmpeg -ss 00:02:10 -to 00:02:40 -i input.mp4 -c copy out_clip.mp4# 放大效果(縮放 + 裁剪)ffmpeg -i out_clip.mp4 -filter:v "scale=iw*1.08:ih*1.08, crop=iw:ih" -c:a copy out_clip_zoom.mp4config/prompts/title_desc_prompt.md 和 platforms.yaml 中保留範例以進行限制:scripts/captions.py 和 scripts/repurpose.py 以:pango 文字的本地範本)以匯出變體。schedule_upload.py 中。platforms.yaml 讀取平台設定。.env 中並使用 OAuth 流程。Makefile 目標:shorts: transcribe autoclip captions repurpose@echo "Shorts created in data/processed/shorts"longform: generate_script captionsupload:python scripts/schedule_upload.py --platform youtube --input data/processed/shortsargparse 或 typer)。data/raw/。make shorts 以轉錄和自動剪輯。clip_rules.md 來重新產生任何弱的剪輯。make upload 以排程帶有字幕和元數據的貼文。clip_rules.md,提出 6 個帶有時間戳記和標題的剪輯。確保每個剪輯都有一個強大的引人入勝的開頭和獨特的角度。」autoclip.py 以接受 JSON 轉錄,並確保時間戳記在 29.97fps 下是精確到幀的。」pytest 測試。」ffmpeg 用於剪切、縮放、重新定時、音訊正規化。.gitignore 中忽略媒體輸出。import refrom typing import List, TupleHOOK_PATTERNS = [r"\bhere's the\b", r"\bthe mistake\b", r"\bdo this\b", r"\bin 30 seconds\b",]def score_line(line: str) -> int:s = 0if len(line) < 140: s += 10if re.search(r"\b\d+%|\d+x|\b\d+ (seconds|minutes|steps)\b", line): s += 20if any(re.search(p, line.lower) for p in HOOK_PATTERNS): s += 20if line.endswith: s += 10return min(s, 100)def propose_clips(transcript: List[Tuple[float, float, str]], max_len=35):clips = []cur = []cur_len = 0for start, end, text in transcript:cur.append((start, end, text))cur_len += (end - start)if cur_len >= max_len or score_line(text) > 40:clips.append((cur[0][0], end))cur, cur_len = [], 0if cur:clips.append((cur[0][0], cur[-1][1]))return clipsffmpeg 命令。data/ 掛載為卷。brand_voice.yaml 和提示檔案。transcribe.py、autoclip.py 和 repurpose.py。Makefile 目標並執行您的第一個 make shorts。ffmpeg 命令以進行修剪和放大。將簡單的啟發式方法與 LLM 提示相結合,以確保每個剪輯都有一個引人入勝的開頭、一個要點和一個 CTA。ffmpeg 將 SRT 轉換為 ASS 或燒錄。Claude Code 可以將其包裝到腳本中並新增驗證,以便時間戳記在各個平台之間保持同步。brand_voice.yaml 中,並在提示中參考它。Claude Code 可以在產生標題、描述和螢幕文字時強制執行禁止短語、閱讀水平和 CTA 位置等約束。