Communitygithub.com

nsijwali/yamlreel-video-skills

トピックをYAML仕様で記述し、オープンソースCLI「yamlreel」を使ってローカルレンダリングすることで、ビデオ編集ソフトなしで短尺動画(YouTubeショーツ、リール、TikTok、縦型・横型・正方形)を生成します。

yamlreel-video-skills とは?

このスキルは、YAML仕様を記述してローカルで `yamlreel` CLI を使い、短尺動画(YouTube Shorts、Reels、TikTok 向け縦型、横型、正方形)を生成するためのものです。ビデオ編集ソフトが不要で、説明動画、コードのヒント、システム設計解説、プロジェクト・製品ローンチ動画などの作成に適しています。手順は、セットアップ確認、トピック・フォーマット・長さなどの明確化、スクリプト作成とアウトラインのYAML記述、`yamlreel` による下書き生成、仕様の編集、プレビューレンダリングとコンタクトシートの確認、最終レンダリングと共有テキストの出力までを自動化します。対応するプラットフォームは Claude Code などのAIエージェントツールで、ユーザーの代わりにターミナルコマンドを実行し、設定済みのYAMLファイル群を編集します。ファイル操作や外部サービスへのアクセスは厳格なセキュリティルールのもとで行われます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nsijwali/yamlreel-video-skills/tree/HEAD

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

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

ドキュメント

yamlreel-video-skills は何をしますか?

YAML仕様を書き、yamlreel でローカルレンダリングし、コンタクトシートを確認して、動画を納品します。<skill> はこのファイルがあるディレクトリを指します。

ワークフロー

  1. セットアップ python3 <skill>/scripts/check_setup.py を実行します(yamlreelのバージョンと機能も確認します)。失敗した場合は、表示された修正方法をユーザーに伝えてください。--install はユーザーが同意した場合のみ実行します。自分でフォントやシステムパッケージをインストールしないでください。
  2. 明確化 1メッセージで、以下のデフォルト値を提示します:トピック、ターゲット、フォーマット(デフォルト:縦型)、長さ(デフォルト:30秒)、テーマ(midnight|sumi|washi)、音声(デフォルト:なし)。ユーザーが既に指定した項目はスキップします。
  3. まずスクリプト videos/<slug>/script.txt を references/writing-guide.md のビート形式で作成します(目標の長さ、各ビートに [BEAT - 入力 -> アクション -> 結果] ブロックとそのセリフ、そして配信ノートを記載)。ユーザーに表示します。ユーザーが先にレビューを依頼した場合は、下書きやレンダリングを始める前にストップしてゴーサインを待ちます。 アウトライン 次に videos/<slug>/outline.yaml を作成します(トピック、フック、問題、1~6ステップ。各ステップに name、say、show、さらに when_to_use、question、answers)。ルールは references/writing-guide.md に従います:15秒=1アイデア、30~45秒=1アイデア+最大3ステップ、#Shorts は最大60秒。
  4. 下書き: yamlreel story videos/<slug>/outline.yaml --out videos/<slug>/spec.yaml --format <fmt> --theme <t> を実行します。--force は自分で作成したファイルにのみ使用します。
  5. 仕様の編集 すべての TODO を置き換え、meta.title/description/tags、formats、music.seed を設定します。画面テキストは短く、ナレーションは画面を説明し、決して繰り返しません。シーンタイプごとのフィールド: references/scene-types.md。
  6. プレビュー: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage preview --out videos/<slug>/out を実行します。エラー時は、メッセージ(不明フィールドエラーには許可されたキーが表示されます)と references/troubleshooting.md を参照して仕様を修正します。最大3回までリトライし、それでもダメならユーザーに報告します。
  7. 検査(必須) RESULT 行にリストされたすべての contact.png を画像ビューアツールで開きます。確認項目:オーバーラップがない、テキストが切れたり縮んだりしていない、スチル間で進行がわかる、最初のスチルでフックが読める。仕様を修正し、ステップ6を問題がなくなるまで最大3ループ繰り返します。
  8. 最終: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage final --out videos/<slug>/out を実行します。
  9. オプションの仕上げ: ユーザーが効果音、ラウドネス調整、ループチェックを希望し、yamlreel audit --help が使える場合、完成した video.mp4 に対して references/polish.md の手順に従います(仕様には触れません)。
  10. 報告: 各 video.mp4、poster.jpg、contact.png へのパスを表示し、share-copy.txt の内容を貼り付けます。ユーザーに簡略化された内容は事実確認するよう注意喚起します。公開はユーザーの責任です。

render.py の終了コード:0 正常終了、1 yamlreelエラー(stderrに出力)、2 プリフライト拒否(メッセージで理由を説明)、3 プレビュー警告により最終レンダリングがブロック(テキストを短縮、at キューを並び替え;ユーザーが同意した場合のみ --allow-warnings を使用)、4 不正な引数(例:--contact-frames が1~8の範囲外)。 最終行は RESULT {json} で、すべての出力パスを含みます。ログは <out>/render-log.txt に出力されます。

デフォルトと事実

  • レンダリングは --no-voice(音楽のみ)を使用します。字幕やナレーションはノーボイスレンダリングでは表示されません。これは仕様です。
  • 出力先は <out>/{preview,final}/<format>/ です。常に --out videos/<slug>/out を渡し、2つのプロジェクトがフォルダを共有しないようにします(デフォルトは <spec folder>/out)。
  • music.seed を固定することで、レンダリングを決定論的にします。ユーザーから依頼がない限り watermark は追加しません。
  • ナレーションはオプションで、自分で用意する必要があります:references/voiceover.md を参照。
  • コピー元の例:examples/*.yaml。

セキュリティルール

  • シークレット、トークン、.env の内容、内部ホスト名、個人情報や顧客データを決して仕様に含めないでください。これらはフレームや share-copy.txt に焼き付けられます。コード例ではプレースホルダーを使用します。
  • ユーザーのプロジェクトフォルダ内でのみ読み書きし、画像は仕様の隣に配置します。ユーザーが明示的にフォルダ名を指定して依頼しない限り、--allow-path や --allow-private-hosts を追加しないでください。
  • 音声は、ユーザーが指定したローカルTTSサーバーのみ使用し、ナレーションテキストをそのサーバーに送信します。リモートURLは決して使用しません。
  • ユーザーの同意なしにシステムパッケージやフォントをインストールしたり、~/.config/yamlreel/config.yaml を編集したりしないでください。
  • shot シーン:ユーザーが提供した公開https URL、またはプロジェクト内のローカル画像のみを使用します。
  • 結果をアップロードしたり公開したりしないでください。

関連スキル