Communitygithub.com

Talking-head reels

トークヘッド動画を、大胆なエディトリアルスタイルの縦型9:16 Instagram Reel / TikTok / YouTube Shortに変換します。ポーズを詰め、キネティックなAnton + Didotタイポグラフィ、赤/白/黒白のパレット、発言内容を視覚化するB-roll挿入、スピーカーのスプリットスクリーン、カメラ移動トランジション、フィルムグレイン、-14 LUFSの音声マスタリングを施します。すべてPython + ffmpeg/libassでコードレンダリング。

Talking-head reels とは?

このスキルは、トークヘッド動画の録画から縦型ショート動画(Instagram Reel、TikTok、YouTube Short)を自動生成します。エディトリアルでテンポの良いスタイルを特徴とし、スピーカーの発言内容に合わせて2〜4秒ごとにフレームが変化します。処理は完全にスクリプト化されており、ポーズのカット、音声マスタリング、マット生成、EDL(Edit Decision List)に基づくフレームレンダリングをPython + ffmpeg/libassで実行します。macOSとWindowsの両方に対応し、B-roll素材はユーザー自身の素材や無料ライブラリ(Pixabay、Wikimedia Commonsなど)から取得します。ユーザーはエディトリアル判断(ビート分割、B-roll選択、テキスト処理)に集中でき、スキルがすべてのレンダリングをコードで処理するため、After Effectsなどの編集アプリは不要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SergeoDev01/talking-head-reels/tree/HEAD

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

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

ドキュメント

トークヘッドリール

カメラに向かって話す人物の録画を、完成された縦型リール(MP4)に変換します。

見た目はエディトリアルで速い:スピーカーが動画の背骨となり、2〜4秒ごとにフレームが変わります – パンチイン、大きな単語、B-roll挿入、スプリットスクリーン – 常にその瞬間の発言内容に基づきます。

メカニクスはスクリプト化されています:ポーズのカット、音声のマスタリング、マット、そして編集決定リスト(EDL)から直接フレームを描画するレンダラー。あなたの仕事はエディトリアル部分です:話の内容を理解し、各ビートの見た目を決め、それに合ったフッテージを見つけるか生成し、EDLを作成し、静止画をチェックし、ユーザーと修正ラウンドを実施することです。

要件

macOS(ネイティブレンダリングターゲット)- Python 3.9+(numpy、faster-whisper付き)、ffmpeg with libass(Homebrew ffmpegまたはimageio-ffmpeg)。オプション - Xcodeコマンドラインツール(Apple Visionマット用)。

Windows 10/11 レンダリングボックス:レンダリングエンジンはプラットフォームに依存しません。Python 3.9+(numpy、faster-whisper付き)と、libassを同梱したffmpegビルド(gyan.devの"full"ビルド)があれば十分です。その後、assets/fonts/win/にバンドルされている無料代替フォント(Playfair Display 400/700/italic + Inter Medium、OFLライセンス)を使用します:

  1. ユーザー環境変数を一度設定します – REEL_FONT_FILES = 4つの.ttfパスをセミコロンで区切ったもの。エンジンは自身のREEL_FONT_FILESフック(textass.py)を介してこれらを取得し、libassフォルダにフェースを抽出します。
  2. すべてのEDLに組み込みのEDLフォントオーバーライドを配置します: "fonts": {"anton": "Anton-Regular", "serif": "PlayfairDisplay-Bold", "didot": "PlayfairDisplay-Regular", "sub": "Inter-Medium"} (reel_plan.pyのデフォルトマップは変更しないでください – macOSのEDLにはオーバーライドは不要です)。
  3. Apple VisionのカットアウトマットはWindowsには存在しないため、該当するビートはスキップします。 python scripts/check_setup.pyでWindows対応の結果が報告されます。

クレジットは不要:B-rollはユーザーの素材と無料ライブラリ(Pixabay / thesvg MCPコネクター、Wikimedia Commons)から取得します;有料生成付録(Higgsfield / Seedance)は明示的なリクエストがあった場合のみ使用します。

あなたが提供するもの

  • PROJECT/render/<name>_vN.mp4 - 1080x1920、H.264、AAC 320 kbps、音声約-14 LUFS。
  • PROJECT/edl.json(およびラウンドごとのedl_vN.jsonコピー)- 編集全体をデータとして保持;再レンダリングすると常に同じ動画が得られます。
  • QA用静止画(PROJECT/qa/.../sheet.jpg)。

ステップ0 – セットアップと受け入れ

python3 scripts/check_setup.pyを実行し(このファイル内のパスはスキルフォルダからの相対パスです)、報告された問題を修正します。すべてのスクリプトに同じPythonを使用します;numpy faster-whisper imageio-ffmpegを入れたvenvを使うのが簡単です。ffmpegにlibassが含まれている必要があります(すべてのテキストはlibassで描画されます) – checkスクリプトがどのバイナリが見つかったかを示します。

次に、不足しているものだけを尋ねて確認します(1つの短いメッセージで):

  1. 録画ファイル(パス)。理想的には4K横長または1080x1920縦長、スピーカーがほぼ中央に配置されていること。
  2. 言語、およびスクリプトがあればそれも(フィラーワードや誤認識の修正に役立ちます)。
  3. カラーグレード:既にグレードされたファイル、.cube LUT、または「カメラの色を使う」のいずれか。
  4. 最後のコールトゥアクション(例:「コメントにWORDと書いてリンクを送ってください」)。
  5. B-rollの取得元:ユーザー自身のフッテージ(デフォルト)、無料ストックとアーカイブ(Pixabay MCP、Wikimedia Commons)、ロゴ/アイコンはthesvg MCP経由(CommonsのPNGレンダリングにフォールバック)。何の権利を持っているか尋ねます。有料AI生成(Higgsfield / Seedance)は明示的に依頼があった場合のみ。
  6. プロジェクトフォルダの保管場所(デフォルト:動画の隣に<name>_reel/)。

ステップ1 – 準備と分析(スクリプト化)

python3 scripts/prepare_project.py VIDEO.mov [--graded GRADED.mov | --lut grade.cube] [--project DIR]
python3 scripts/transcribe.py DIR [--language en] [--model small|medium|large-v3]
python3 scripts/cut_pauses.py DIR [--remove 2.40-2.72 ...]
python3 scripts/master_audio.py DIR
python3 scripts/presenter_mattes.py DIR        # swiftcが必要;利用できない場合のみスキップ

cut_pauses.pyは、保持された各セグメントとその単語を出力します。それをトランスクリプトと照らし合わせてください:--remove start-end(ソース秒)を使用して誤ったスタート、繰り返し、フィラーワードを削除し、再度実行します。削除された量をユーザーに報告します(例:「81.5秒 → 73.4秒」)。以降のステップはすべてプログラムタイムライン(analysis/program_words.json)を使用します。

ステップ2 – 編集の計画(あなたの判断)

references/style-guide.md(ルックとルール)とreferences/edit-planning.md(トークをビートに変換する方法)を読み、ビートシートを作成します:各ビートにつき1行、プログラム時間、発言内容、画面に表示されるもの(プレゼンターのワイド/タイト、挿入の種類、レイアウト)、テキスト処理、フッテージのアイデアを記載します。フッテージを調達する前にユーザーに表示します – 今変更するのは安価で、後で高くつきます。

ステップ3 – フッテージ

references/broll-sourcing.mdに従います:何を探すか、どこから取得できるか、ライセンス、テスト済みの無料取得レシピ(Pixabay MCP検索 + URL確認、Wikimedia Commons API + curl UA/リトライ + SHA-1チェック、thesvg MCPによるロゴ、ffmpegトランスコード)。有料生成(Seedance via Higgsfield)は付録にあります – ユーザーが明示的にAI生成ショットを依頼し、コストを承認した場合のみ。すべてをPROJECT/broll/に、ロゴをPROJECT/logos/に配置します。候補をscripts/clip_sheet.pyでレビューします。ユーザーが既にクリップやインサートを持っている場合は、それらを使用します – 既存のものを再調達しないでください。

ステップ4 – EDLと検証

references/edl-schema.mdに従ってPROJECT/edl.jsonを作成します(完全な動作例 – このスタイルが構築されたリール – がassets/examples/example_edl.jsonにあります)。その後:

python3 scripts/validate_edl.py DIR/edl.json

すべてのエラーを修正し、すべての警告を読み、修正するか意識的に受け入れます。

ステップ5 – 静止画、そしてレンダリング

python3 scripts/render_reel.py DIR/edl.json --stills 0.6 2.4 4.8 ... --out-dir DIR/qa/stills_v1
python3 scripts/render_reel.py DIR/edl.json --out DIR/render/<name>_v1.mp4

静止画は数秒で完了します:各ビート内の1つの瞬間と、各トランジションの中央を選び、コンタクトシートをreferences/style-guide.mdのチェックリストと照らし合わせて確認します(空のエッジがない、単語が読み取れてフレーム内にある、目の上に何もない、テキストが中央スタックにある、カラー処理が正しい)。EDLを修正し、きれいになるまで再チェックします。その後、完全なリールをレンダリングし(最近のMacで数分;references/renderer.mdを参照)、ユーザーにパスとレンダラーが出力する数値(サイズ、fps、持続時間、ラウドネス)を伝えます。

ステップ6 – 修正ラウンド(ユーザーが希望する方法で)

  • ユーザーは1つずつ、しばしばスクリーンショットと一言のコメントでノートを送ります。それらに番号を付け(1、2、3...)、簡単に確認し、ユーザーが「開始」、「go」、「以上」と言うまで何も変更しません。その後、すべてのノートを一度に適用します。
  • 各ラウンドは新しいバージョンです:編集前にedl.jsonをedl_vN.jsonにコピーし、<name>_vN.mp4にレンダリングします。ユーザーが既に見たレンダリングやEDLバージョンを上書きしないでください。
  • 変更された瞬間を最初に--stillsでチェックし、その後フル動画を一度レンダリングします。
  • ラウンド間で同じスタイルを維持します;ノートが一般的なルール(「空のエッジなし」、「字幕を大きく」)を示す場合、スクリーンショットだけでなく、すべての場所に適用します。
  • ユーザーがショットに別のフッテージを希望する場合、EDLでそのクリップを変更します(references/edl-schema.mdの「クリップの交換」を参照) – 他のものは動かしません。

その他のツール

  • scripts/render_reel.py --stills ... - 任意の瞬間をPNGとコンタクトシートとして出力。
  • scripts/clip_sheet.py - 候補クリップのフレームとハードカット時間を出力。
  • references/renderer.md - レンダラーの動作、速度、フォント、トラブルシューティングについて。

基本ルール

  • フッテージ:ユーザーが権利を持つ素材のみを使用します – 自身のもの、ライセンス済みまたは無料ライセンスのストック、またはユーザーのために生成されたクリップ。生成された人物は実際の俳優や有名人に似ていてはならず、有名なキャラクター、衣装、ロゴ、映画シーンを再現してはなりません。
  • すべてのレンダリングは新しいファイルです。ユーザーがレビューしたものを上書きしないでください。
  • プロジェクトファイルは英語で作業します;ユーザーとはその言語で話します。

関連スキル