Communitygithub.com

lesliedominguezriquezaacademy-creator/edicion-reels-nivel-1

生の動画から、無音部分を除去し、Whisperで文字起こし、カラオケ風字幕(白暖色、アクティブワードはソフトゴールド、ネイビーブルーの背景)、最大2.5%のソフトズーム、フェードアウト、クリーンなオーディオを施した、レベル1(クリーン&ミニマル)の9:16縦型Reel / TikTok / Shortsに編集します。

edicion-reels-nivel-1 とは?

このスキルは、ユーザーが提供した生の動画(`01-crudo/`フォルダ内)を、**クリーンでミニマルな9:16縦型ショート動画(Reel / TikTok / Shorts)**に変換するための、完全ローカルで無料のパイプラインです。主な処理は、Python + FFmpeg + Whisperを使用して行われ、無音部分の自動除去、Whisperによる単語レベルの文字起こし、カラオケ風字幕の付与、最大2.5%のソフトズーム&パン、フェードアウト、-14 LUFSへのオーディオノーマライズを含みます。処理は段階的に行われ、**最初にDRAFTを作成し、ユーザーの明示的な承認を得た後にのみ最終版を生成する**という重要なルールに従います。ユーザーはmuletilla(不要な言い回し)のカットや速度調整などの微調整を、スクリプトのパラメータを指定することで依頼できます。このスキルは、APIや有料サービスを一切利用せず、すべてユーザーのローカル環境で動作する点が特徴で、初心者でも安心して利用できます。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/lesliedominguezriquezaacademy-creator/kit-edicion-reels-nivel-1./tree/HEAD/.claude/skills/edicion-reels-nivel-1

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

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

ドキュメント

Reel編集 — レベル1(クリーン&ミニマル)

01-crudo/に録画された動画を、無音を除去し、カラオケ字幕、控えめな動き、フェードアウトを施した、確認用のクリーンな9:16縦型Reelに変換します。

基本ルール:最初は必ずDRAFT;最終版は、ユーザーが承認してから初めて作成します。有料サービスは、事前に確認なしに決して使用しないでください。

全処理はローカルかつ無料で実行できます(Python + FFmpeg + Whisper)。スクリプトは既にscripts/に含まれています。書き換えずにそのまま使用してください。


ステップ0 — ツールの準備(初回のみ)

まず python scripts/verificar_entorno.py を実行します:Python、FFmpeg(キットで使用するフィルタ込み)、Whisperの有無を確認し、不足しているものを表示します。すべてOKならステップ1へ進みます。そうでなければ、不足しているものを以下のコマンドで解決します。サイレントに存在確認を行い、不足しているものがあれば、親切なメッセージ(「ツールを準備しています。初回は数分かかります」)を添えてインストールします:

python --version
ffmpeg -version
ffprobe -version
python -c "import whisper"

不足している場合:

  • Python:ユーザーにpython.orgからインストールしてもらい(「Add Python to PATH」にチェック)、ターミナルを再起動してもらいます。
  • FFmpeg(Windows):winget install Gyan.FFmpeg — その後ターミナルを再起動。Macの場合:brew install ffmpeg。
  • Whisper:pip install openai-whisper(初回はsmallモデルをダウンロード、無料で自分のコンピュータで動作します)。

インストールできないものがあれば、ブロックせずに、何が不足しているかを説明し、最も簡単な代替案を提示してください。

ステップ1 — 素材の確認

  1. 01-crudo/(および02-assets/内のリソース)にあるファイルをリスト表示します。
  2. 動画が1つだけならそれを使用します。複数ある場合はどれを使うか尋ねます。フォルダが空の場合は、そこに動画をコピーするよう依頼します。
  3. 長さと音声の有無を確認します:
    ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "01-crudo/NOMBRE.mp4"
    
  4. 必要最小限の1つの設定質問のみ行います(例:手動でカットしたい「えー」「あー」などのフィラーはありますか?)。そうでなければ、デフォルト値で進めます。

ステップ2 — DRAFTの生成

完全なパイプライン(文字起こし → 無音除去 → 縦型出力)を実行します:

python scripts/pipeline.py "01-crudo/NOMBRE.mp4"

各ステップの内容(個別に実行したり調整する場合に備えて):

ステップスクリプト結果
Whisperによる文字起こし(small、単語レベル)scripts/transcribir.py02-assets/subtitulos/NOMBRE.srt と .words.json
無音除去(> 0.5秒、-35 dB)scripts/limpiar_silencios.py02-assets/sin_silencios/NOMBRE.mp4 と .timeline.json
9:16出力(字幕、ズーム、フェード付き)scripts/exportar_reel.py03-output/NOMBRE.mp4

limpiar_silencios.py で利用可能な調整(ユーザーが要求した場合や結果に必要な場合のみ使用):

  • --silence-duration 0.35 → より短いポーズをカット(より速いテンポ)。
  • --cut-range 開始 終了(繰り返し可)→ 元の動画の秒数で正確な範囲をカット。「えー」「あのー」「つまり」などのフィラーや撮り直しを除去する方法です:02-assets/subtitulos/NOMBRE.words.json を読み、その時間を特定し、範囲として指定します。カットが複数ある場合は、適用前に一覧をユーザーに表示します。
  • --speed-range 開始 終了 速度(繰り返し可)→ 特定の範囲(元の動画の秒数)の速度を変更します。例:--speed 1.32 --speed-range 13 21.8 1.5。説明部分など遅い箇所をさらに速くし、重要な部分は通常速度に戻す場合に使用します。ユーザーが最大長(例:55秒)を指定した場合、--speed を調整してそれを満たし、ffprobe で測定します。
  • --speed 1.1 → ピッチを維持しながらわずかに速度を上げます(0.5~2.0の間)。ユーザーが要求した場合のみ使用します。

調整を加えてクリーニングステップのみを再実行し、その後エクスポートする場合:

python scripts/limpiar_silencios.py "01-crudo/NOMBRE.mp4" --cut-range 12.4 13.1
python scripts/exportar_reel.py "02-assets/sin_silencios/NOMBRE.mp4" "02-assets/subtitulos/NOMBRE.srt" --output "03-output/NOMBRE_draft.mp4"

ドラフトは接尾辞 _draft を付けて保存し(さらに反復する場合は _draft2、_draft3…)、以前のバージョンを上書きしないようにします。pipeline.py を使用した場合は、出力を NOMBRE_draft.mp4 にリネームします。

スタイル標準(スクリプトに既に組み込み済み — 要求なしに変更しないでください)

  • フォーマット:縦型 9:16、1080×1920、30 fps。
  • カラオケ字幕:白暖色のテキスト、アクティブワードはソフトゴールド、半透明で控えめなネイビーブルーの背景、最大2行、セーフゾーン内(下端やアプリのボタンから離す)。
  • 動き:低強度のズームとパン、最大2.5%。エフェクトを積み重ねたり、すでに充実した画像にさらにグラフィックを追加したりしない。
  • 終了:フェードアウト(映像と音声)。
  • 音声:元のクリーンな音声、-14 LUFSにノーマライズ、追加の音楽や装飾エフェクトはなし(開始音はオプションで各ユーザー独自のもの、下記参照)。
  • テンポ:要点を凝縮。ユーザーがキーワードを強調したい場合は、ゴールドカラーを使用し、過剰にしない。

独自の開始音(オプション)

デフォルトでは、Reelに追加の音声は含まれません。ユーザーが最初に音声マークを付けたい場合は、そのユーザー自身のものでなければなりません:既にファイル(.wav または .mp3)を持っているか尋ねるか、独自のものを作成するのを手伝います(例:FFmpegやPythonで合成する、またはユーザーが使用する権利を持つリソースを使用)。その後、エクスポート時に音声にミックスされます:

python scripts/exportar_reel.py "02-assets/sin_silencios/NOMBRE.mp4" "02-assets/subtitulos/NOMBRE.srt" --sonido "ruta/a/mi_sonido.wav" --output "03-output/NOMBRE_draft.mp4"
  • 音声を覆い隠してしまう場合は、scripts/exportar_reel.py の SOUND_VOLUME(デフォルト0.55)を下げます。
  • 事前に確認し、使用許可を得ずに、サードパーティの音声や有料の音声をダウンロードしたり使用したりしないでください。

ステップ3 — ドラフトの最終確認

公開準備完了と言う前に:

  1. 03-output/ にファイルが存在することを確認し、ffprobe で長さを測定します。
  2. 2~3フレームを抽出し、字幕が表示されセーフゾーンからはみ出していないことを確認します:
    ffmpeg -y -ss 5 -i "03-output/NOMBRE_draft.mp4" -frames:v 1 "03-output/_chequeo.png"
    
    確認後、_chequeo.png を削除します。
  3. 元の長さと最終的な長さを比較します。

何か問題が発生した場合(Whisperが文字起こししない、FFmpegがエラーを出すなど)、問題を簡単な言葉で説明し、修正して再試行します。字幕の同期がずれていたり、途切れたりしているドラフトは提出しないでください。

ステップ4 — 提示と承認待ち

ユーザーが視聴できるようにドラフトを開きます:

  • Windows:start "" "03-output/NOMBRE_draft.mp4"
  • Mac:open "03-output/NOMBRE_draft.mp4"

数行で要約します:

  • ファイルのパスと長さ(元 → 最終)。
  • カットしたもの(無音、および該当する場合はフィラーや手動トリミング)。
  • 適用したもの(字幕、ズーム、フェード)。

最後に質問で締めくくります:「承認しますか、それとも調整したい点はありますか?」(音声、字幕、テンポ、ズーム、カット)。

明示的な承認を得るまで、最終版は生成しないでください。

ステップ5 — 反復と最終版の納品

  • 変更を求められた場合:適用し、新しいドラフト(_draft2)を生成し、ステップ3に戻ります。
  • 承認された場合:同じエクスポートコマンドを使用して最終版を出力し、--output "03-output/NOMBRE_final.mp4" とします。
  • 最終ファイルのパスを伝え、Reels / TikTok / Shortsに公開するよう提案します。

ルール

  • 有料サービス(API、クラウドエディタ、音楽ライブラリ、AI音声など)を使用する前に、必ず尋ねること。 標準フローには一切不要です。
  • ローカルのWhisper で文字起こしします。動画を外部サービスにアップロードしないでください。
  • 01-crudo/ のファイルを削除または上書きしないこと。元のファイルは常に保持します。
  • 結果は 03-output/ に、中間ファイルは 02-assets/ に保存します。
  • 簡単な言葉で話すこと:相手は編集やプログラミングの知識がないかもしれません。
  • ユーザーがレベル1の範囲外(複雑なアニメーション、モーショングラフィックス、複数カメラ、カラーグレーディングなど)を要求した場合は、正直に伝えます:このフローはクリーニング、字幕、控えめな動きをカバーします。別のステップとして行うことを提案します。

関連スキル