Communitygithub.com

zaddy99999/video-editing

ffmpegを使用した端末でのビデオ編集、特にショート動画(Shorts、TikTok、Reels)向けのエントリーポイント。画面収録、アプリキャプチャ、ゲームプレイ、音楽コンテンツから自動カット、フックオーバーレイ、字幕、音声加工、ループ・GIF・ステッカー、レンダリングQC、YouTube公開までをルーティングします。

video-editing とは?

このスキルは、ffmpegをベースにしたビデオ編集ルーターです。ユーザーが「動画を編集して」「カットして」「字幕を入れて」「公開して」と依頼した際に、適切なサブスキル(auto-cut、hook-overlay、captions、audio-polish、loops-gifs-stickers、render-qc、youtube-publish)を自動選択し、正しい順序で実行します。各ステップは独立したスクリプトとして実装されており、JSON出力を介して連携します。動画自体を見るのではなく、判断ポイントでのみ証明写真(フル解像度静止画)を確認します。対応プラットフォームはClaude Code、Cursor、CodexなどのAIエージェント環境で、Node.js(>=18)とffmpegが必須です。ハードルールとして、オリジナルファイルには決して触れず、編集結果はすべて`edit/`ディレクトリに出力します。また、音声カット時には約30msのフェードを入れ、単語の途中でカットしない、テキストはセーフゾーン内に配置する、QCは必ずフル解像度で実施する、公開の承認は必ず人間から得る、といった厳格なルールが定められています。スタイルパックによりチャンネルやブランドごとにフォント・色・キャンバスサイズをカスタマイズ可能で、ブランド設定はJSONファイルで管理します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zaddy99999/video-editing-skills/tree/main/skills/video-editing

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

video-editing (ルーター)

実行するのは、小規模で単一目的のスクリプトとそのJSON出力を読むことです。動画自体を見ることはありません。判断ポイントでのみフレーム(証明写真、フル解像度静止画)を確認します。

どのスキルを使うか

ユーザーが望むことスキル
長い録画をクリップに分割、カットポイントを提案、不要なリーディンを除去auto-cut
フック/タイトル/「POV:」テキストを動画に重ねるhook-overlay
字幕、キャプション、トランスクリプト、単語を尊重したカットcaptions
ラウドネス修正、無音除去、きれいな結合、クロスフェードaudio-polish
シームレスループ、GIF、ミームGIF、ステッカーloops-gifs-stickers
レンダリングがOKか確認、コンタクトシート、承認ステップrender-qc
動画をYouTubeに公開youtube-publish

デフォルトパイプライン(生の画面収録から公開Shortまで)

auto-cut  ->  hook-overlay  ->  captions  ->  audio-polish  ->  render-qc  ->  youtube-publish
提案、      Plate PNG +      文字起こし、    無音トリミング、  検証、         ドライラン、
承認、      オーバーレイ     ASS、焼き込み    loudnorm         証明写真、      アップロード非公開、
分割、トリミング                  (最後の視覚的工程)  (最後の音声工程)  ユーザー承認      台帳

すべてのジョブがすべてのステップを必要とするわけではありません。音楽クリップはキャプションをスキップし、GIFは公開をスキップします。目標が不明な場合は質問し、そうでなければ計画を提示して実行します。

ハードルール(全スキル共通)

  1. オリジナルには決して触れない。 出力はソースの隣の edit/ に配置されます(スクリプトはデフォルトでこの動作をします)。
  2. 計画してからカットする。 破壊的または時間のかかるステップの前に、カットポイント/フック/設定を提案し、ユーザーの承認を得てください。
  3. 単語の途中でカットしない。 音声の場合、カットは単語間のギャップにスナップします(captions/snap-to-words)。
  4. すべての音声カットには約30msのフェードを入れる。 クリックノイズは非ゼロサンプルでのカットから発生します。
  5. クリップはコンテンツから始める。 黒フレーム、ローディング画面、前の画面の尻尾は含めません(auto-cut/trim-lead、render-qcでチェック)。
  6. テキストはセーフゾーン内に配置する。 フックプレートは上部エリア、最大2行。キャプションは下部のプラットフォームUIより上に。何も重ならないようにします。
  7. 順序が重要。 カット → オーバーレイ → キャプション(最後の視覚的工程)→ ラウドネス(最後の音声工程)→ QC。
  8. すべての最終レンダリングをQCする。 render-qc/verify-render を使用し、ユーザーに証明写真または実際のMP4を表示します。ダウンスケールされたプレビューで判断してはいけません。
  9. 承認は人間が行う。 この会話内でユーザーが明示的に言わない限り、--approved や --allow-public を渡してはいけません。
  10. シークレットはgitやログから除外する。 OAuthクライアントやトークンは環境変数またはgitignoreされたファイルに保存し、決して表示してはいけません。
  11. 手書きのffmpegコマンドよりも、スクリプトを異なるフラグで再実行することを推奨する。 すべてのスクリプトは --help と --help --json に応答します。

セットアップ確認

ffmpeg -version && ffprobe -version     # 必須(任意の最近のビルド、drawtextは不要)
node --version                          # >= 18
npm install                             # 一度だけ、リポジトリルートで(sharpをインストール)
python3 -m pip install faster-whisper   # captions/transcribe.py のみに必要

ffmpegがPATHにない場合は、FFMPEG_PATH と FFPROBE_PATH を設定してください。

スタイルパック

brands/example.json には、キャンバスサイズ、フォント、色、フックプレートのジオメトリ、キャプションスタイルが格納されています。チャンネルやブランドごとにコピーし、--brand brands/<name>.json で指定します。システムフォントまたはオープンライセンスフォント(--font-file)を使用し、商用フォントは絶対にコミットしないでください。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル