Communitygithub.com

Seagey/edit-reel

スマートフォンの動画を編集して、完成された縦型リール(1080x1920 MP4)に仕上げます。無音部分や長い間を音声でトリミングし、フロントカメラの反転を修正、音声をスタジオ品質にクリーンアップ、優しいカラーグレーディングを適用、スマートフォンのセーフゾーン内に読みやすいキャプションを焼き付け、ラウドネスを約-14 LUFSに設定します。「最新の動画を編集して」「このリールを編集して」「iCloudから最新の動画を取得して編集して」「キャプションを黄色にして」「色を控えめに」「もっとタイトにカットして」など、ユーザーがリール設定の変更を依頼したときに使用します。

edit-reel とは?

このスキルは、ユーザーのMac上で動作する縦型リール編集ツールです。有料サービスに頼らず、ユーザーの動画を縦型(1080x1920 MP4)に編集します。主な機能は、音声検出による無音部分の自動トリミング、フロントカメラ反転のOCRベース修正、9:16へのクロップ、適度なカラーグレーディング、ノイズ除去や音声イコライジングを含むスタジオ品質の音声処理、スマートフォンのセーフゾーン内に表示される読みやすいキャプションの自動生成、そしてラウドネスを-14 LUFSに調整することです。ユーザーは「キャプションを黄色にして」「カットをもっとタイトに」などの自然言語で設定を変更でき、AIが`config.json`を編集して再実行します。編集後は、コンタクトシート、カラー比較画像、キャプションフレーム画像、キャプションのテキストファイル、レポートJSONなどの確認用ファイルが生成され、AIはそれらをチェックしてユーザーに結果を報告します。対応プラットフォームはClaude CodeやCursorなどのAIエージェント環境で、ユーザーのMac上でローカルに動作します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Seagey/reel-editor/tree/HEAD/.claude/skills/edit-reel

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

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

ドキュメント

リールの編集

すべての処理はユーザー自身のMac上で実行されます。有料サービスは一切不要です。処理を行うスクリプトはレポジトリルートのscripts/edit.shで、このファイルと同じディレクトリにあるscripts/edit_reel.pyを呼び出します。

ユーザーは技術に詳しくありません。平易な日本語で、短い文、専門用語を使わずに話してください。何をするかを事前に伝え、その後で何が起こったかを説明します。ダッシュ記号(―)は使用しないでください。

目次

  • クイックパス
  • 動画の入手方法
  • 1回の編集で行われること
  • ユーザーが変更を依頼できる設定
  • 引き渡す前のチェック
  • 結果の報告方法
  • 問題が発生した場合
  • 厳守ルール

クイックパス

  1. セットアップが完了しているか確認します: scripts/setup.sh --check。NOT READYと表示された場合は、CLAUDE.md(オンボーディング)に従ってください。インストールを自己判断で行わないでください。
  2. 動画を入手し(下記参照)、次を実行します:
    • ファイル名指定: scripts/edit.sh "<動画ファイルのパス>"
    • Inboxフォルダの最新N個: scripts/edit.sh --latest 3
  3. 下記のチェックを実行し、画像を確認し、キャプションを読んでから報告します。

30〜60秒のクリップは、Appleシリコン搭載Macで約1〜2分、古いMacではそれ以上かかります。

動画の入手方法

次の順序で、最初に成功した方法を使用します:

  1. ユーザーが指定またはドラッグしたファイル。 元の場所で使用します。元のファイルを移動したり削除したりしないでください。
  2. Inboxフォルダ。 ユーザーがAirDropまたはInbox/(レポジトリフォルダ内)にドロップしたファイル。
  3. iCloud写真。 iCloudがセットアップされている場合のみ(docs/ICLOUD.md)。Apple IDのメールアドレスはconfig.jsonのicloud_apple_idにあります。scripts/icloud-fetch.sh <apple id> 30を実行します。
    • 成功するとICLOUD_FETCH_OKと表示されます。最新の動画がInbox/に保存されます。
    • サインインの期限が切れている場合(約2ヶ月有効)または最初から実行されていない場合、ICLOUD_FETCH_FAILEDと表示されます。自分で修正しようとせず、ユーザーに伝え、docs/ICLOUD.mdの「再サインイン」手順を案内してください。ユーザー自身がターミナルでパスワードと6桁のコードを入力します。チャットでは決して入力させないでください。
    • 「最新」とは、最も最近撮影されたものを意味します。撮影したばかりの動画がiCloudに反映されるまでには数分かかることがあるため、該当の動画が見つからない場合はその旨を伝え、1分後に再試行することを提案してください。
    • 編集前に、最新の動画を長さとともに一覧表示し(ffprobeで長さを確認)、不明な場合はどれを意味するか確認してください。
  4. 何も機能しなかった場合。 代替案として、動画をMacにAirDropするか、Inboxフォルダにドラッグするよう提案します。

1回の編集で行われること

順番に:

  1. 音声によるカット。 音声のラウドネスから、実際に声が始まる場所と終わる場所を検出します(キャプションタイム、つまりクリップの先頭にある音声認識タイムは無音内に位置し、デッドエアを隠す可能性があるため)。先頭と末尾の無音部分をトリミングし、長い間を短縮します。カットは最も近い無音の瞬間に配置され、各継ぎ目には15msのフェードが適用されるため、単語が途切れることはありません。文はそのまま保持され、デッドエア以外は削除されません。
  2. ミラーチェック。 フロントカメラのクリップはしばしばミラーリング(反転)されています。フレーム内のテキスト(看板、画面、服のロゴなど)をOCRで正方向と反転方向で読み取り、実際の単語が反転方向で正しく読めた場合のみ動画を反転します。目視による判断は行いません。読み取れるテキストがない場合は動画をそのままにし、その旨を報告に含めます。
  3. 9:16にクロップし、1080x1920にリサイズします(横向きクリップは中央がクロップされます)。
  4. カラー調整。 数フレームを測定し、露出、コントラスト、彩度を控えめに補正します。やりすぎにならないように上限が設定され、before/afterシートが生成されます。HDRのiPhoneクリップはまず標準色域にマッピングされます。
  5. スタジオサウンド。 ノイズ除去、ボイスイコライジング、ディエッサー、コンプレッサー、リミッター、そしてラウドネスを-14 LUFSに調整します。これは測定に基づいて調整されています。耳で判断します:音が耳障りだったり、薄かったり、過度に処理されていると感じる場合は、audio.strengthをlightに設定します。
  6. キャプション。 クリーンアップされた音声を文字起こしし、Pillowを使用してキャプションを描画します。スマートフォンのセーフゾーン内(1080x1920フレーム上でx: 90〜960、y: 250〜1520)に配置されるため、ボタンやアプリのテキストで隠れることはありません。アクティブな単語の色が変わります。アウトラインは暗いままです。単語の後ろに色付きのボックスは配置しません。顔の上にボックスがかかると柔らかく見えるためです。
  7. 出力。 Edited/<名前>-edited.mp4と、Edited/checks/<名前>/内に: contact-sheet.jpg、colour-before-after.jpg、caption-frame.png、captions-words.txt、report.json。

ユーザーが変更を依頼できる設定

すべてconfig.json(レポジトリルート、config.default.jsonから作成され、config.default.jsonは編集されません)にあります。ユーザーはファイルに触れることはありません。ユーザーが平易な言葉で依頼し、あなたが変更して編集を再実行し、結果を表示します。設定の完全な対応表はdocs/STYLE.mdにあります。

例:

  • 「キャプションを黄色にして」はcaptions.highlight_color(アクティブな単語)またはcaptions.color(すべての単語)を設定します。不明な場合はどちらかを尋ねてください。
  • 「キャプションを大きくして」はcaptions.sizeを約12増やします(デフォルト78)。結果がセーフゾーン内に収まるようにしてください。スクリプトがinside_safe_zoneを報告します。
  • 「キャプションを上に移動して」はcaptions.positionをmiddleまたはupperに設定します。
  • 「一度に一単語ずつ」はcaptions.styleをwordに設定します。「行単位」でlineに戻します。
  • 「キャプションなし」はcaptions.enabledをfalseに設定します。
  • 「色を控えめに」はgrade.strengthを0.2下げます。「カラーグレーディングなし」はgrade.enabledをfalseに設定します。
  • 「もっとタイトにカットして」はcuts.tightnessをtightに設定します。「余白をもっと残して」はgentleに設定します。
  • 「音が処理されすぎ」: audio.strengthをlightに設定します。
  • 「顔をもっと近くに」: framing.zoomを1.15に設定します(最大1.4)。
  • キャプションの名前の綴りが間違っている場合: vocabularyに追加します(リスナーが正しく認識するのに役立ちます)。それでも間違っている場合は、replacementsに{"heard": "正しい綴り"}として追加します。

変更後、同じ動画で編集を再実行し、新しい結果を表示します。Edited/のファイルを使用します。再実行すると、同じ名前の古い編集は置き換えられます。

引き渡す前のチェック

スクリプトはサマリーを出力し、report.jsonを書き込みます。それでもあなたが確認する必要があります。

  1. 数値。 loudness_ok、start_ok、end_okがすべてtrueである必要があります。先頭の無音は0.45秒以下、末尾の無音は0.75秒以下である必要があります。そうでない場合はその旨を伝え、--tightness tightを付けて再実行します。
  2. 画像を確認 読み取りツールで: contact-sheet.jpg(顔がフレーム内にあるか、画像が自然に見えるか、キャプションが画面内にあるか)、colour-before-after.jpg(左がオリジナル、右がグレーディング後: 肌が自然でオレンジや灰色になっていない、白が飛んでいない、黒がつぶれていない)、caption-frame.png(すべての単語を拡大して読み、背景に対して各単語が読めるか)。
  3. キャプションを読む。 captions-words.txtを開きます。音声認識は名前やローカルな単語(ブランド名など)を聞き間違えることがあります。vocabularyとreplacementsで修正し、再実行します。レポートのcaption_vs_sound_matchを確認します。0.9未満の場合は何かがおかしいので調査します。
  4. ミラー。 report.jsonのmirrorを確認します。decisionがunknownで、フレーム内にテキスト(看板、画面)がある場合、フレームを確認してテキストが正しく読めるかチェックします。逆になっている場合は、framing.mirror_fixをalwaysに設定して再実行します。
  5. 音声によるデッドエア。 スクリプトは最終ミックスに対してsilencedetectを実行します。この目的でキャプションタイムを信頼しないでください。

あなたは音声を聞くことはできません。その旨を正直に伝えてください。音声は調整され測定されていますが、最終的な判断はユーザーの耳に委ねられます。

結果の報告方法

短く、平易に、次の形式で:

  • ファイルの場所と、開き方(Finder、リールエディタフォルダ内のEditedフォルダ)。
  • 何をカットしたか(「先頭の1.1秒の無音を取り除き、2箇所の長い間を短縮しました。36秒から33秒になりました」)。
  • 画像が反転されたかどうかとその理由。
  • 音声の現在の測定値(「約-14で、InstagramやTikTokの通常レベルです」)。
  • キャプション: フォント、色、変更した単語。
  • 修正できなかった点と、それを変更するためにユーザーが何と言えばよいか。

その後、変更したい点を尋ね、上記の設定リストから1〜2のアイデアを提案します。

問題が発生した場合

  • 「音声が見つかりません」: クリップが無音か音楽のみです。その旨を伝えてください。
  • キャプションの位置が間違っている、または切れている: レポートのinside_safe_zoneを確認します。sizeを小さくします。
  • フォントが見つからない: スクリプトはArial Blackにフォールバックし、その旨を出力します。内蔵フォント(docs/STYLE.md)のいずれかを提案するか、Google Fonts(fonts.google.com)から無料フォント(.ttf)を~/.reel-editor/fonts/にダウンロードし、captions.fontをファイル名(.ttfなし)に設定します。
  • セットアップツールがない: scripts/setup.shを実行します。Homebrewがない場合は、CLAUDE.mdに従ってください。
  • 編集に非常に時間がかかる: 3分を超える4Kクリップは負荷が高いです。その旨を伝えて実行を続行します。

厳守ルール

  • ユーザーの元の動画を決して削除したり変更したりしないでください。
  • パスワードや6桁のコードをチャットで要求したり受け取ったりしないでください。
  • 有料サービスは使用せず、ユーザーの動画をどこにもアップロードしないでください。すべてこのMac上に留まります(iCloudからのダウンロードを除く)。
  • ユーザーが依頼しない限り、スクロールプロンプトや「フォローしてね」のようなオーバーレイは追加しないでください。
  • ユーザーが言っていないことは追加しないでください。キャプションには発言された内容のみを表示します。

関連スキル