Hao0321/video-autopilot-kitPublic

Fill-in-your-own-data framework for YouTube / short-form video automation: CapCut JSON + ffmpeg tooling + an onboarding questionnaire. Ships with zero private data.

AI summary: A framework and methodology toolset for fully automating YouTube and short-form video production.

Stars
2.2K
+4 today
Forks
352
Watchers
9
Open issues
2
Open PRs
3
Contributors
~1
Commits
61
Branches
4

PythonMITCreated Jun 1, 2026Last push 3d agoLatest release v0.23.0+18 stars this week+198 this month

Quick answers

What is video-autopilot-kit?
A framework and methodology toolset for fully automating YouTube and short-form video production.
What does video-autopilot-kit do?
The Video Autopilot Kit is a comprehensive automation pipeline designed to generate publish-ready video content—including long-form YouTube videos, Shorts, and Reels. It provides pure programmatic tooling utilizing ffmpeg and CapCut JSON manipulation to automate tedious editing tasks like cutting, tracking, and transitions. The system operates entirely on local, user-provided configurations via a setup questionnaire, ensuring no private media or analytics data is ever committed to the repository. It focuses on maintaining high production quality by intelligently falling back to clean cuts when tracking or effects data is insufficient.
Who is video-autopilot-kit for?
This toolkit is for YouTube creators, social media marketers, and video automation engineers who want to drastically scale their content production while maintaining strict control over their data and visual style.
How do I get started with video-autopilot-kit?
python src/system_health.py --quick
How popular is video-autopilot-kit on GitHub?
Hao0321/video-autopilot-kit has 2,165 stars and 352 forks on GitHub, and gained 18 stars in the last 7 days.
What license does video-autopilot-kit use?
Hao0321/video-autopilot-kit is released under the MIT license.

Star history

since Jul 28, 2026
01K2KJul 2026Aug 2026Sep 2026Oct 2026
2.2K stars as of Oct 3, 2026. Measured daily since Jul 28, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 2 commits2026-06-02: 1 commit2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 1 commit2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 3 commits2026-06-16: 1 commit2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 1 commit2026-06-21: 0 commits2026-06-22: 1 commit2026-06-23: 5 commits2026-06-24: 0 commits2026-06-25: 1 commit2026-06-26: 0 commits2026-06-27: 1 commit2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 3 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 1 commit2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 1 commit2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 1 commit2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 5 commits2026-08-13: 4 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 1 commit2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
33 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What video-autopilot-kit does

The Video Autopilot Kit is a comprehensive automation pipeline designed to generate publish-ready video content—including long-form YouTube videos, Shorts, and Reels. It provides pure programmatic tooling utilizing ffmpeg and CapCut JSON manipulation to automate tedious editing tasks like cutting, tracking, and transitions. The system operates entirely on local, user-provided configurations via a setup questionnaire, ensuring no private media or analytics data is ever committed to the repository. It focuses on maintaining high production quality by intelligently falling back to clean cuts when tracking or effects data is insufficient.

This toolkit is for YouTube creators, social media marketers, and video automation engineers who want to drastically scale their content production while maintaining strict control over their data and visual style.

  • Multi-Format Compilation: Utilizes a unified template compiler to efficiently generate both horizontal long-form videos and vertical short-form content.
  • Programmatic Editing Pipeline: Automates complex video editing workflows, including camera movements, audio mixing, and color grading, via scriptable ffmpeg and CapCut JSON tools.
  • Privacy-First Architecture: Strictly isolates personal data, media files, and analytics performance metrics from the core repository codebase.
  • Intelligent Fallbacks: Automatically defaults to clean, professional cuts if specific tracking or evidence data for advanced effects is missing.
  • Template-Driven Personalization: Employs a comprehensive setup questionnaire to mold the generic automation engine into a customized system tailored to a specific channel's style.

Where teams use it

High-Volume Content Creation

YouTube creators automate the repetitive editing of daily vlog or news summaries to significantly increase their publishing cadence.

Cross-Platform Formatting

Social media teams utilize the pipeline to automatically re-edit and format single long-form videos into multiple platform-optimized Shorts and Reels.

Faceless Channel Automation

Entrepreneurs build fully automated faceless channels by feeding scripts and stock assets into the pipeline to generate finished videos without manual intervention.

Standardized Video Branding

Corporate marketing departments ensure absolute consistency in transitions, color grading, and audio levels across all promotional content.

Getting started: python src/system_health.py --quick

README

main branch

🎬 video-autopilot-kit

Current version: v0.23.0

v0.23.0/架構 7.0:長片/Shorts/Reels 共用自研 composition runtime、Imagegen-first 材質閘門、證據式電影工藝、統一濾鏡庫與唯一發布中樞; 38 組調色/動態/轉場/主體濾鏡、33 圖設計 DNA、Tracking、Quality-95 審片、發佈包、成效學習與安全自動更新都在同一套公開版。沒有鏡頭證據時仍會退回乾淨切鏡。 執行 python src/system_health.py --quick 可驗證乾淨安裝;個人媒體與成效資料不會進 release。

一套框架式的 YouTube / 短影音自動化工具 + 方法論模板。 給你 Editkin edit-plan/v4 可續跑剪輯流程、可重現的素材/QA 工具,加上一份「問卷」—— 你回答關於你自己頻道的問題,它就變成屬於你的系統。

⚠️ 不含任何人的私人數據 —— 後台讀數(自己的與別人的)/個人檔案一律不進 repo(profiles/、config.py 是 gitignored 本機檔)。 兩類具名例外,兩類都是公開資訊不是私人數據:① LICENSE 與各 README 的作者署名; ② knowledge/ 引用第三方公開創作者/頻道時會直接寫名字(例如演算法檔引用的公開戰術、 teaching-niche-playbook.md 的參考頻道列),規矩是 citation-first:沒有可點的出處連結就不給數字。 voice 詞表、KPI 門檻與社群欄位要嘛是空白模板(<fill in> / ______ / 產出檔的 {你的…} 佔位字樣),要嘛標示為「範例值」,你填你的。 反過來說:knowledge/ 裡的方法論是原作者的實戰結論,那是刻意開源的部分 —— 是「怎麼想」,不是「他的數字」。

🧭 現行剪輯執行方式

  • 唯一 editor contract:Editkin v4(素材證據 → plan → audit → atomic apply → render)。
  • Python/ffmpeg 是跨平台的素材分析、正規化與 QA 支援層,不是另一套 editor path。
  • 舊 GUI/草稿 JSON/Path A-E 文件只保留為 benchmark-only 歷史,不是 fallback。

▶️ 60 秒看它跑(不用真素材)

想先看它真的會動?examples/ 裡有自包含、可直接跑的 demo —— 用 ffmpeg 合成測試素材,或以 disposable fixture 驗證 Editkin v4 contract,不需要任何真實影片:

python examples/01_vertical_short.py      # 合成素材 → 完整 1080x1920 直式 Short
python examples/02_caption_broll_match.py # Editkin v4 contract:完整 DAG + fail-closed 回歸測試
python examples/04_shorts_gate.py         # 直式 Shorts 閘門:壞剪法被擋 → 修好放行 → 換你的門檻放行 → 換平台也放行
python examples/05_interview_plan.py      # 訪談來賓閘門:沒來源的數據在「錄影之前」就被擋下
python examples/06_teardown.py            # 競品拆解數學:中位數騙人、標準差不騙人、換句÷剪點是拍攝決策

需求:Python 3.9+。04 / 05 / 06 連 ffmpeg 都不用(純 Python、零 pip install、零素材);01 需要 ffmpeg/ffprobe,03 另需 Pillow + numpy。細節見 examples/README.md。

🎛️ 統一濾鏡庫

同一套 registry 同時供長片、Shorts 與 Reels 使用;不是把 LUT、全螢幕 模板和轉場混成一類。調色只能套一次且必須先於字幕/圖卡,轉場必須有 剪輯動機或證據,主體濾鏡必須提供已驗證遮罩。

python src/filter_runtime.py list
python src/filter_runtime.py inspect torn_paper_vertical
python src/filter_runtime.py apply input.mp4 output.mp4 --preset vlog_bright_clean
python src/filter_runtime.py transition a.mp4 b.mp4 out.mp4 \
  --preset torn_paper_vertical --motivation "章節翻頁" --manual-approved
python src/filter_runtime.py gallery a.mp4 review/filter-library --source-b b.mp4

完整分類、合成契約與 QA 規則見 filter-library.md。

為什麼不一樣

市面上的「creator 系統」要嘛賣你某個人的設定(抄了對你沒用、還可能誤導), 要嘛太通用沒有方法論。這個 kit 給你骨架(經實戰的結構), SETUP.md 一區一區問你問題,用你的答案填滿它 —— 這樣它才真的是你的系統。

🆕 v0.12.0 新增 — 把「借來的數字」清出去

這一版沒有拿掉任何功能,拿掉的是借來的把握。四個地方犯的是同一種錯: 一個沒人量過的數字,掛上權威標籤,比沒有數字更糟 —— 因為你會信它。

  • Shorts 片長帶改平台感知 —— 死區是在 YT Shorts 上量出來的,套到 IG/FB 會擋掉正常的剪法。 改用 spec["platform"] 選帶(rules= 仍逐鍵優先);平台名打錯是擋下的失敗,不是靜默 fallback
  • 腳本 gate 的四層詞表改成出貨即空 —— 行話分級只能從你自己的逐字稿審計出來; 照抄別人的白名單 = 用別人的觀眾檢查你的稿。空表不擋你(只回一條 warn),load_vocab() 載你自己的
  • 演算法線補上合規層+「沒出處就不引用」 —— knowledge/ai-content-compliance.md(R26-R38 + 發布前 10 項 checklist) + 53 條分級法源;查無官方出處的門檻數字就地標記,不再與有出處的並排
  • 新工具 src/teardown.py —— 一個指令把競品直式短片拆成可比較的數字(刀速/刀距分布/換句速率/換句÷剪點/LUFS); OCR 是選配,沒裝只跳過字幕抽取、退出碼仍是 0

完整清單(含兩個靜默失敗修復)→ CHANGELOG。

三條同構的生產線(v0.10 起)

以前這個 kit 只回答一件事:「怎麼把一支長片做好。」現在是三條生產線 —— 而且刻意長成同一個形狀:知識層(為什麼這樣做)→ 機械閘門(不靠任何人記得)→ 一鍵驅動(幾個指令跑完)。 學會一條就等於學會三條;要加第四條(Podcast?教程系列?)也照這個骨架接。

生產線 知識層(為什麼) 機械閘門(擋在前面) 一鍵驅動
教學長片 knowledge/premium-motion-fx.md+production-safety-principles.md+腳本三支柱 script-style-framework.md/script-retention-craft.md plan_gate → script_gate(觀眾語言 fail/節奏 warn)→ delivery_qa(profile='teaching_longform') src/longform_maker/ 各模組
直式 Shorts knowledge/shorts-mastery-2026.md+knowledge/vertical-teardown-method.md(怎麼量競品) src/longform_maker/shorts_gate.py 九條結構/字幕規則擋出片 + S-O 換句節奏 warn;片長帶平台感知(YT 的死區不套用到 IG/FB),純 Python src/shorts_autopilot.py scan → 看畫面填字 → build(含自動 QA 驗證圖)
線上訪談 knowledge/interview-show-playbook.md src/interview_gate.py I-A~I-E:沒來源的來賓數據不上鏡 src/interview_autopilot.py invite → plan(產 7 件套)→ build
  • 閘門共用外殼 src/longform_maker/gate_core.py —— 回傳結構 / assert 訊息 / self-test 印法一致, 你自己加的閘門 import 三個函式就跟內建的行為一模一樣(判定規則各自留在自己的檔,不集中才不會互相污染)
  • 經營層(v0.9 起):src/channel_tracker.py D2/D7/D28 快照排程+待辦、src/system_health.py 一鍵 GREEN/RED 健檢 → 接線指南 knowledge/ops-automation.md;爆款定義框架 knowledge/viral-playbook-framework.md
  • ⚠️ 兩道閘門裡的門檻數字都是範例校準值,不是宇宙常數 —— Shorts 片長帶 / 首刀秒數 / 非白字上限請用你自己的 3-5 支片重算 (做法見 SETUP.md 的「Shorts 規則校準」)

內容 —— 單一 Editkin-first 執行路徑

三條生產線(長片 / Shorts / 訪談)共用同一個 Editkin v4 執行合約。公開 Python/ffmpeg 模組負責規劃、素材處理與 QA;它們不構成第二套 editor runtime。

層 模組 是什麼 平台
Editkin durable controller src/workflow_contract.py + workflow_state.py + receipts source-byte binding、逐素材 evidence、edit-plan/v4、audit、atomic apply、render、真人審片與 outcome 的可續跑 DAG Editkin 支援環境
長片規劃/素材支援 src/longform_maker/ premium motion、word-timestamp captions、screen cleanup、腳本與節奏 gates;輸出提供 Editkin plan 使用 Win / Mac / Linux
Shorts / vlog 支援 src/shorts_autopilot.py + src/silent_vlog_maker/ 9:16 掃描、接觸表、素材正規化、Shorts gate、BGM/字幕支援 Win / Mac / Linux
訪談企劃 src/interview_autopilot.py + src/interview_gate.py + templates/interview/ 邀約、主持稿、訪綱、準備包、授權、錄製 checklist、發布包與 Shorts 切條;無來源數據在錄製前阻擋 Win / Mac / Linux
腳本/競品量測 src/longform_maker/script_gate.py + src/teardown.py 觀眾語言/留存擋稿,以及刀速、刀距分布、換句÷剪點、LUFS;OCR 選配、缺套件只降級 Win / Mac / Linux
Editor-neutral QA src/media_delivery_qa.py + src/delivery_media_ops.py 頻閃、死空檔、caption-sync、全幀掃描、audio/A-V、字幕斷句、BGM coverage、blurred-fill 圖片準備 Win / Mac / Linux
知識與合規 knowledge/ M-series 避坑、剪輯 craft、演算法、AI 內容合規與來源分級;索引 → knowledge/README.md —
自包含示例 ▶️ examples/ 合成素材 demo + Editkin v4 contract self-test,不需真素材 —
個人化入口 ⭐ SETUP.md + templates/ + config.example.py 只填自己的 voice、品牌、素材/匯出路徑;不帶任何人的私人設定 —

舊 editor GUI、草稿 JSON、Path A-E 與維護者事故紀錄不進公開執行面;公開版只提供 production-safety-principles.md 的通用安全原則。

Platform support

模組 Windows macOS / Linux
規劃、素材處理、gates、QA ✅ ✅(路徑/字型由 src/platform_compat.py 探測)
Editkin structured execution 依 Editkin release 支援矩陣 依 Editkin release 支援矩陣

🚀 快速開始

  1. 讀 SETUP.md → 照問題把 templates/*.template.md 填成 profiles/*.md (或把整個 repo 丟給 Claude / ChatGPT,說「照 SETUP.md 問我問題,幫我生成 profiles/」)
  2. cp config.example.py config.py → 填你的 Editkin project、素材、candidate、QA 與匯出路徑
  3. 裝好 Python + ffmpeg;editable timeline 連上 Editkin structured tool environment
  4. 用 python scripts/hao_autopilot.py workflow ... 建 run,依 next 完成 receipts,audit 後再 apply / render

♻️ 安裝、舊版升級與自動迭代

這個 repo 現在把完整可執行核心+公開 Codex Skill+更新/回滾系統當作同一個產品發布。 不論你是第一次安裝,或還停在沒有 updater 的舊版,都從同一支 bootstrap 開始:

舊版資料夾沒有這支程式時,只要先下載這一個公開檔(之後的相容版才可自動迭代):

Invoke-WebRequest https://github.com/Hao0321/video-autopilot-kit/releases/latest/download/install_or_upgrade.py -OutFile install_or_upgrade.py
python install_or_upgrade.py --install-root . --check
python install_or_upgrade.py --install-root . --apply --install-skill

macOS/Linux 可用:

curl -fLO https://github.com/Hao0321/video-autopilot-kit/releases/latest/download/install_or_upgrade.py
python3 install_or_upgrade.py --install-root . --check
python3 install_or_upgrade.py --install-root . --apply --install-skill

第一次採用舊資料夾必須明確執行 --apply;不能用 --auto 靜默接管。採用完成並建立管理檔清單後, 未來相容、帶 migration 宣告且本機管理檔未改動的版本才可自動升級。

python install_or_upgrade.py --install-root <你的資料夾> --check
python install_or_upgrade.py --install-root <你的資料夾> --apply --install-skill
  • 新版會比較 semver,驗證 release zip SHA-256 與逐檔 SHA-256 後才套用。
  • shorts_autopilot.py 生產入口每 24 小時最多自動檢查一次;只有相容版本能自動升級,更新後會重新啟動一次再執行。也可手動跑 python src/release_manager.py auto。publish_hub.py 保持純交付服務,避免 updater/workspace migrator 形成反向循環。
  • v0.19 起,安裝/相容升級後會非破壞地補齊 videos/_PUBLISH_HUB 與根目錄發布入口,並把既有 */_out/current.mp4 以 hardlink 註冊為發布包;不刪除、不覆寫影片、設定或未知檔案。
  • config.py、profiles/、projects/、data/、videos/、assets/、後台成效與本機 outcome 永遠留在你的電腦,不進公開包、不被更新器覆蓋。
  • 未知自訂檔永不刪;已修改的官方管理檔在自動模式會停在 CONFIRM_REQUIRED。
  • 每次覆蓋前建立 .video-autopilot/backups/<transaction>/;需要時執行 python src/release_manager.py rollback。
  • 重大/不相容版本不會靜默升級,必須由使用者確認。

完整契約見 codex-skill/video-autopilot/references/open-source-release-and-upgrade.md。 開發者發布前使用 python src/release_manager.py build --base-url <本版 GitHub release URL>,會產生 固定 zip、.sha256 與 release-channel.json;發布時再連同根目錄的 install_or_upgrade.py,共上傳四件 release assets。

安全邊界:自動迭代的是相容而且驗證過的公開核心,不是把任何人的私人影片、數據、設定或 授權不明素材同步給別人。完整開源與保護使用者資料必須同時成立。 套件邊界與「完整」定義見 docs/OPEN_SOURCE_SUITE.md。

需求

公開規劃/素材處理/QA(Win / Mac / Linux)

  • Python 3.9+
  • ffmpeg / ffprobe(在 PATH 上)
  • 完整媒體 runtime:python -m pip install -r requirements-media.txt(固定版本的 Pillow + numpy + opencv-contrib-python-headless)
  • 可重現的 Python/ffmpeg 支援層;editable timeline 一律透過 Editkin v4 contract
  • Mac/Linux:系統路徑與 CJK 字型由 src/platform_compat.py 自動探測(不要 hardcode 系統字型路徑)
  • Pillow / numpy 用於畫面分析、字卡、動態、色彩與 QA 驗證圖;OpenCV contrib 用於 tracked graphics / roto 的 CSRT 追蹤。CI 與正式 Release 共用同一份依賴契約。 規則閘門 src/longform_maker/shorts_gate.py 這個檔案本身是純 Python(連 ffmpeg 都不用), 只想用閘門就不必裝任何東西 → python examples/04_shorts_gate.py。 ⚠️ 但要平面 import(把 src/longform_maker/ 加進 sys.path 再 from shorts_gate import …, 範例 04 就是這樣寫的);走 from longform_maker.shorts_gate import … 會經過套件 __init__, 那裡會載入 fx_lib(需要 numpy + Pillow)。或直接把 shorts_gate.py + gate_core.py 複製走。
  • 訪談生產線(src/interview_autopilot.py / src/interview_gate.py)的訪前企劃全程純 Python —— 產 7 件套不需要 ffmpeg 也不需要 pip 套件;ffmpeg 只有錄完 build 才用得到 → python examples/05_interview_plan.py
  • 競品拆解 src/teardown.py 有兩個選配套件(其餘功能都不需要它們): rapidocr-onnxruntime(本機實測裝完約 25MB 量級,不拉 torch/paddle)+ opencc-python-reimplemented(簡轉繁)
    • 不裝會少什麼:只少「把對方燒錄字幕自動抽成逐字稿」這一段。刀速/刀距分布/ 換句速率/換句÷剪點判讀/LUFS 全部照跑,退出碼仍是 0,工具會印出安裝指令。
    • 只裝 OCR 沒裝 opencc → 逐字稿照抽,只是不做簡轉繁(會混雜簡體字)。
    • 統計那一半(rhythm_stats / pace_profile)是純 Python,連 ffmpeg 都不用 → python examples/06_teardown.py
    • ⚠️ OCR 只讀得動燒錄字幕(0.92-1.00),實景招牌準確率 ≈ 0,而且讀錯時信心值仍有 0.85-0.92 —— 門檻擋不掉。 所以它只能拿來讀別人的片, 不可以拿去自動生成你自己影片的品名/價格字幕 → 邊界說明見 knowledge/vertical-teardown-method.md §2-8

Editkin structured execution

  • Editkin 支援的 client/server 環境,能依 workflow_contract.json 回傳 receipts
  • 現行 plan schema:hao.video-autopilot.edit-plan/v4;v1–v3 只可匯入/檢視
  • apply 狀態不明時必 reconcile;技術 QA 之後仍須真人審片,機器不得代填 certified

(選用) AI 助手(Claude / ChatGPT)也能照 SETUP.md 自動把你的答案生成 profiles。

設計理念

一套創作系統最值錢的是結構與方法論,不是某個人的私人數字。 所以這個 repo 給你骨架,你用自己的血肉填滿。

License

MIT — 保留標註即可自由使用 / 修改 / 商用。

Author

Hao0321 Studio — 從一套實戰的個人創作系統抽出來的開源框架。

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

26 total
  1. v0.23.0v0.23.0Aug 27, 2026751 downloads

    ## What's Changed * release: Video Autopilot v0.21.2 by @Hao0321 in https://github.com/Hao0321/video-autopilot-kit/pull/13 * release: Video Autopilot Kit v0.23.0 by @Hao0321 in https://github.com/Hao0321/video-autopilot-kit/pull/14 **Full Changelog**: https://github.com/Hao0321/video-autopilot-kit/compare/v0.21.1...v0.23.0

  2. Video Autopilot Kit v0.21.1v0.21.1Aug 20, 2026367 downloads

    **Full Changelog**: https://github.com/Hao0321/video-autopilot-kit/compare/v0.21.0...v0.21.1

  3. Video Autopilot Kit v0.19.0 — Architecture v7v0.19.0Aug 13, 2026176 downloads

    Architecture v7 closes the delivery loop: every completed current.mp4 must resolve to one hash-matching publishing package. Shorts Build now registers automatically, long-form has the same required delivery boundary, the project root exposes a single publishing entry, and existing compatible installs receive bounded automatic code updates plus a non-destructive workspace schema migration. User media, profiles, analytics, credentials, unknown files, and locally modified managed files remain protected. Release archive SHA-256: d85e1ae4f6715dbf9219e55902785301952f91b311fcbcf340f8a99b2f1a9d58

  4. Video Autopilot Kit v0.17.0v0.17.0Aug 12, 202612 downloads

    ## What's Changed * Architecture v6.3 Cleanup gate by @Hao0321 in https://github.com/Hao0321/video-autopilot-kit/pull/12 **Full Changelog**: https://github.com/Hao0321/video-autopilot-kit/compare/v0.16.0...v0.17.0

  5. ## Unified publishing and storage governance - One canonical publish entry: videos/_PUBLISH_HUB/START_HERE.md - Separate READY / PUBLISHED / _STATE / _AUDIT lifecycles - One delivery master per package with SHA-256 verification - Legacy publish roots migrate automatically and idempotently - Duplicate/version-like render audit with recoverable retirement - Architecture 6.2 and safe v0.15.0 → v0.16.0 auto-upgrade Validated with clean-install, legacy-upgrade, release-manager, and full quick health gates.

Commits per week

last 52 weeks
90Week of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 3 commitsWeek of 2026-06-07: 1 commitsWeek of 2026-06-14: 5 commitsWeek of 2026-06-21: 8 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 3 commitsWeek of 2026-07-12: 1 commitsWeek of 2026-07-19: 1 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 1 commitsWeek of 2026-08-09: 9 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 1 commitsSep 28, 2025Sep 20, 2026
33 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 0 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 1 commitsMon 2:00 — 1 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 0 commitsMon 20:00 — 1 commitsMon 21:00 — 1 commitsMon 22:00 — 3 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 1 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 1 commitsTue 10:00 — 1 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 0 commitsTue 14:00 — 0 commitsTue 15:00 — 0 commitsTue 16:00 — 0 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 0 commitsTue 20:00 — 0 commitsTue 21:00 — 1 commitsTue 22:00 — 2 commitsTue 23:00 — 3 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 0 commitsWed 15:00 — 0 commitsWed 16:00 — 0 commitsWed 17:00 — 3 commitsWed 18:00 — 2 commitsWed 19:00 — 0 commitsWed 20:00 — 1 commitsWed 21:00 — 0 commitsWed 22:00 — 0 commitsWed 23:00 — 2 commitsThu 0:00 — 0 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 2 commitsThu 4:00 — 1 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 0 commitsThu 10:00 — 0 commitsThu 11:00 — 1 commitsThu 12:00 — 4 commitsThu 13:00 — 1 commitsThu 14:00 — 1 commitsThu 15:00 — 0 commitsThu 16:00 — 1 commitsThu 17:00 — 3 commitsThu 18:00 — 4 commitsThu 19:00 — 1 commitsThu 20:00 — 1 commitsThu 21:00 — 3 commitsThu 22:00 — 4 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 1 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 3 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 0 commitsFri 13:00 — 0 commitsFri 14:00 — 0 commitsFri 15:00 — 0 commitsFri 16:00 — 0 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 0 commitsFri 20:00 — 0 commitsFri 21:00 — 2 commitsFri 22:00 — 0 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 0 commitsSat 15:00 — 0 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 1 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 1 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits11 (18%)
Community commits50 (82%)

61 commits in total over the last year.

DateListRankStars gained
Jul 12, 2026daily#17+3