ワンクリックで
short-thumbnail
Use when ショート用 9:16 サムネ作成、または short.png のループ動画化をするとき。「ショートサムネ」「short.png」「short-loop」「9:16 画像」で発動
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when ショート用 9:16 サムネ作成、または short.png のループ動画化をするとき。「ショートサムネ」「short.png」「short-loop」「9:16 画像」で発動
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Use when YouTube Analytics データの収集・最新化が必要なとき。「データ更新」「統計を取得」「分析の準備」で発動。/analytics-analyze の前段
Use when コレクションの楽曲を DistroKid 配信用に準備し、distrokid-helper Chrome 拡張へ渡すローカルサーバーを起動したいとき(30-distrokid 生成 / disc 分割 / metadata.md / ジャケット 3000×3000 新規生成 / uv run yt-collection-serve 起動)。『DistroKid 準備』『配信準備』『アルバム化』『distrokid-helper』で発動。DistroKid Web への転記・アップロード操作そのものは Chrome 拡張側の責務
Use when Suno UI で生成した曲のプレイリストを一括 DL + マスター化するとき(前工程 /suno、次工程 /videoup)。Lyria チャンネルでは不要
Use when プレイリストの作成・割り当て・確認をするとき。「プレイリスト作って」「初投稿」「初回投稿」「初回公開前にプレイリスト初期化」「/playlist」で発動
Use when Suno UI に投入する曲をブラウザで連続生成 + playlist 追加 + 一括ダウンロードしたいとき。uv run yt-collection-serve で suno-prompts.json を配信し、suno-helper Chrome 拡張で 1 タブ完結の自動実行(pattern 注入 → Generate → 完了待機 → 次へ → 全件完了で playlist 一括追加 → ZIP 一括 DL)を回す operator 手順。`/suno` でプロンプトが揃った後、または既存 collection の途中再開で使用する
Use when Suno ボーカル曲の歌詞を生成するとき。「歌詞生成」「vocal」「rap」「suno-lyric」で発動。/suno の前工程。Style / UI 投入は /suno と /suno-helper の責務
| name | short-thumbnail |
| description | Use when ショート用 9:16 サムネ作成、または short.png のループ動画化をするとき。「ショートサムネ」「short.png」「short-loop」「9:16 画像」で発動 |
/short Mode A の素材として 10-assets/short.png(9:16 縦型サムネ)と
10-assets/short-loop.mp4(Veo 3.1 で生成した 9:16 ループ動画)を準備するための前段スキル。
config/channel/ がロード可能(load_config())gcloud auth application-default login + set-quota-project)。project_id は ADC quota project から自動解決(GOOGLE_CLOUD_PROJECT は任意で上書き可)10-assets/main.png または main.jpg(16:9 textless 動画背景 / 参考ビジュアル)が既存| コマンド | 説明 |
|---|---|
uv run yt-generate-image --aspect-ratio "9:16" --prompt "<text>" --output <collection-path>/10-assets/short.png -y | 9:16 縦型サムネ生成(Gemini) |
uv run yt-generate-shorts-loop <collection-path> -y | short.png → 9:16 ループ動画 (Veo 3.1) |
uv run yt-generate-shorts-loop <collection-path> --prompt "..." -y | カスタムプロンプトでループ生成 |
open <collection-path>/10-assets/main.*
シーンの構成要素(キャラクター・背景・小道具・カラー)を把握する。16:9 のクロップではなく 9:16 構図でゼロから再描写 するための参考とする。
references/prompt-template.md のテンプレートに沿って構築:
Tall vertical portrait composition. を必ず明記references/prompt-template.md の末尾テンプレを貼り付け構図の制約:
詳細プロンプト例は references/prompt-template.md を参照。
export $(grep -v '^#' .env | xargs) && \
uv run yt-generate-image \
--aspect-ratio "9:16" \
--prompt "<Step 2 のプロンプト>" \
--output <collection-path>/10-assets/short.png \
-y
出力: 10-assets/short.png(1536x2752)+ 自動生成 short.jpg
open <collection-path>/10-assets/short.png
AskUserQuestion で承認 / 再生成を選ばせる。再生成時は --output short-v2.png のように自動バージョニング。
チェック項目:
承認された short.png を Veo 3.1 で 9:16 ループ動画に変換:
export $(grep -v '^#' .env | xargs) && \
uv run yt-generate-shorts-loop <collection-path> -y
カスタム動作プロンプトで微調整可:
uv run yt-generate-shorts-loop <collection-path> \
--prompt "Gentle character animation: the woman slowly turns her head, hair sways in the breeze. Keep all text static and unchanged." \
-y
出力: 10-assets/short-loop.mp4(9:16、~7 秒、末尾 1 秒自動トリム)
open <collection-path>/10-assets/short-loop.mp4
チェック項目:
| 配置 | ファイル | 責務 |
|---|---|---|
| ループ動画 skill 動作 | .claude/skills/short-thumbnail/config.default.yaml(あれば) | Veo モデル / プロンプト / クロップオフセット |
| チャンネル上書き | config/skills/short-thumbnail.yaml | skill-config 差し替え |
--aspect-ratio "9:16" 必須: 省略すると 16:9 で生成される--reference) は使わない: 16:9 構図に引っ張られるため。シーンを言葉で再描写するconfig/channel/audio.json の audio.target_duration_min を 60 で割って「Full N-hour collection」を埋めるconfig/skills/thumbnail.yaml の image_generation.<provider>.cost_per_image_usd を指定したときのみ CLI 表示に出る。未指定なら GCP Cloud Console > Billing で実コスト確認)、ループ動画は Veo 3.1(別途課金、Vertex AI コンソールで確認)Keep all text completely static and unchanged を含める。last_frame=image で開始 / 終了フレームのテキストを固定generate_short_loop.py がデフォルトで末尾 1 秒をトリム10-assets/
├── main.png # 16:9 textless 動画背景 / 参考ビジュアル
├── thumbnail.jpg # 16:9 テキスト付きサムネ(YouTube 用)
├── short.png # 9:16 ショート用サムネ(本スキルで生成)
├── short.jpg # 9:16 JPEG 版(自動生成)
├── short-loop.mp4 # 9:16 ループ動画(Step 5 で生成)
└── loop.mp4 # 16:9 ループ動画背景
yt-generate-image(Gemini で 9:16 サムネ生成、10〜30 秒)と yt-generate-shorts-loop(Veo 3.1 で 9:16 ループ動画、30〜90 秒)はどちらも API 同期呼び出しでブロックする。特にループ動画は長いため、必ず Bash ツールを run_in_background=true で起動する。これによりユーザーは処理中も同じセッションで質問できる(Claude Code は完了時に自動でメッセージ通知するため、sleep ループや until での自前ポーリングは禁止)。
spawn 例(ループ動画化):
uv run yt-generate-shorts-loop <collection-path> -y \
> /tmp/short-thumbnail-$(date +%s).log 2>&1
これを Bash run_in_background=true で投げ、spawn 直後に次のメッセージを返す:
⏳ Veo 3.1 で 9:16 ループ動画を生成中(推定 30〜90 秒)。完了まで他の質問にもお答えできます。 ログ: /tmp/short-thumbnail-*.log
cmux 環境下($CMUX_WORKSPACE_ID あり)であれば補助で cmux set-status "short-thumbnail" "running" --icon "hourglass" --color "#f59e0b"、完了で cmux clear-status "short-thumbnail" + cmux notify --title "short-thumbnail 完了" を呼ぶ(非 cmux 環境では skip)。
サムネ画像生成(Step 3 の yt-generate-image)は 10〜30 秒のため short 化判断はチャンネルポリシー次第だが、再生成を繰り返す運用なら同じ background パターンが安全。完了通知が届いたらログ末尾から結果サマリー(short.png / short-loop.mp4 のパス)をユーザーへ返す。
short.png または short-loop.mp4 が揃ったら:
→ /short <collection-path> でショート動画本体を生成・投稿