yamlreel-video-skills は何をしますか?
YAML仕様を書き、yamlreel でローカルレンダリングし、コンタクトシートを確認して、動画を納品します。<skill> はこのファイルがあるディレクトリを指します。
ワークフロー
- セットアップ
python3 <skill>/scripts/check_setup.pyを実行します(yamlreelのバージョンと機能も確認します)。失敗した場合は、表示された修正方法をユーザーに伝えてください。--installはユーザーが同意した場合のみ実行します。自分でフォントやシステムパッケージをインストールしないでください。 - 明確化 1メッセージで、以下のデフォルト値を提示します:トピック、ターゲット、フォーマット(デフォルト:縦型)、長さ(デフォルト:30秒)、テーマ(
midnight|sumi|washi)、音声(デフォルト:なし)。ユーザーが既に指定した項目はスキップします。 - まずスクリプト
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秒。 - 下書き:
yamlreel story videos/<slug>/outline.yaml --out videos/<slug>/spec.yaml --format <fmt> --theme <t>を実行します。--forceは自分で作成したファイルにのみ使用します。 - 仕様の編集 すべての
TODOを置き換え、meta.title/description/tags、formats、music.seedを設定します。画面テキストは短く、ナレーションは画面を説明し、決して繰り返しません。シーンタイプごとのフィールド:references/scene-types.md。 - プレビュー:
python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage preview --out videos/<slug>/outを実行します。エラー時は、メッセージ(不明フィールドエラーには許可されたキーが表示されます)とreferences/troubleshooting.mdを参照して仕様を修正します。最大3回までリトライし、それでもダメならユーザーに報告します。 - 検査(必須)
RESULT行にリストされたすべてのcontact.pngを画像ビューアツールで開きます。確認項目:オーバーラップがない、テキストが切れたり縮んだりしていない、スチル間で進行がわかる、最初のスチルでフックが読める。仕様を修正し、ステップ6を問題がなくなるまで最大3ループ繰り返します。 - 最終:
python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage final --out videos/<slug>/outを実行します。 - オプションの仕上げ: ユーザーが効果音、ラウドネス調整、ループチェックを希望し、
yamlreel audit --helpが使える場合、完成したvideo.mp4に対してreferences/polish.mdの手順に従います(仕様には触れません)。 - 報告: 各
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、またはプロジェクト内のローカル画像のみを使用します。- 結果をアップロードしたり公開したりしないでください。