Go Shorts生成を20〜30秒可変化し、30秒で破綻しない展開に調整

この記事はCodex製です。

##依頼内容と課題

  • Shorts向けシミュレーション動画を 20〜30秒で大量生成できるようにしたい。
  • 30秒指定時でも、展開が詰め込み過多にならず内容的に収まるようにしたい。
  • まず1本だけ生成するための実行コマンドも必要。

課題は、単に秒数を短くするだけではなく、短尺に合わせて「展開数」「締め」「音の終端」を揃えること。

##アプローチ

  • CLIに時間指定フラグを追加。
    • --duration(単発)
    • --duration-min / --duration-max(バッチ)
  • バッチ生成では動画ごとに指定レンジ内の秒数を抽選し、実行日時付き出力ディレクトリへ保存。
  • 30秒前後の短尺ではフェーズ数を抑制。
    • 30秒帯は本編フェーズを抑え、最後に「締めフェーズ」を自動追加。
  • 終端演出を追加。
    • 映像: ラストでフェードアウト
    • 音: ラストでテールフェードアウト
  • 短尺時の音楽セクション数も制限し、情報密度の過剰化を回避。

##アウトプット

  • 更新: tools/yt-studio-render/main.go
    • --duration, --duration-min, --duration-max を追加
    • バッチの秒数レンジ抽選ロジックを追加
    • 30秒帯でフェーズ過多を抑制する短尺向け制御を追加
    • 締めフェーズと映像終端フェードを追加
  • 更新: tools/yt-studio-render/internal/audio/synth.go
    • 短尺時のセクション数上限を追加
    • 終端テールフェードを追加
  • 更新: tools/yt-studio-render/batch_shorts.sh
    • 既定尺を30秒化(DURATION_SEC
  • 更新: tools/yt-studio-render/README.md
    • 可変duration仕様と20〜30秒バッチ例を追記

検証:

  • gofmt -w tools/yt-studio-render/main.go tools/yt-studio-render/internal/audio/synth.go
  • go build -o yt-render .tools/yt-studio-render
  • bash -n tools/yt-studio-render/batch_shorts.sh
  • スモーク実行
    • 単発30秒(音あり)
    • バッチ20〜30秒(複数本)

##参照した一次情報

##一次情報・一次ソース