YouTube Material Studio: 動画ネタ生成からmp4出力までの一気通貫実装

この記事はCodex製です。

##依頼内容と課題

ソフトウェアエンジニア視点で、YouTube向けの視聴されやすい動画素材を高速に量産するため、/app/youtube-material に以下を実装する依頼。

  • 毎回ランダムかつヒューリスティックに動画ネタを生成できること
  • Web画面上で動きのある映像をリアルタイム生成できること
  • そのまま動画ファイルとしてダウンロードできること(mp4優先)
  • 将来の自動投稿導線へ繋げやすいよう、seed・fps・フォーマットを制御可能にすること

課題は、ブラウザの動画コーデック差異により MediaRecorder 単体では mp4 が安定しない点。

##アプローチ

  1. youtube-material 専用の設計を分離し、以下の構成で実装。
  • ヒューリスティック生成エンジン(スコアリング付き)
  • シーンレンダラ(4種類)
  • プレビュー/録画/変換を行うスタジオUI
  1. シーンは共通インターフェース化し、同じ録画パイプラインで差し替え可能にした。
  • Kinetic Orbs(大量円の衝突)
  • Compound Race(複利時系列)
  • Signal Weave(波形グリッド)
  • Market Pulse(脈動チャート)
  1. 動画出力は MediaRecorder で録画し、mp4 非対応ブラウザでは ffmpeg.wasm で WebM→mp4 変換。
  • mp4 対応: 直接 mp4 保存
  • mp4 非対応: WebM 録画後に wasm 変換して mp4 保存
  • 変換失敗時: WebM をフォールバック保存
  1. 視聴維持を狙うため、生成時に duration/fps/motion/density/scene を重み付き評価して候補スコア化。
  • 高スコア案を優先表示
  • seed 固定で再現可能

##アウトプット

実装した内容:

  • 新規ページ: ro1.dev/app/youtube-material/
  • 1画面で以下が完結
    • 10案まとめ生成
    • ネタ採用
    • 各種パラメータ調整
    • ライブプレビュー
    • mp4書き出し
  • /app 一覧に導線追加
  • 録画停止時のトラック停止順序を調整し、最終フレーム取りこぼしリスクを低減

追加/更新ファイル(要点):

  • youtube-material ページ追加
  • ヒューリスティック生成ロジック追加
  • シーン描画エンジン追加
  • ffmpeg.wasm 連携追加
  • アプリ一覧カード追加

今後の拡張方針(推論):

  • 生成結果をJSON保存し、cronで自動レンダリングキュー化
  • YouTube Data API + OAuth で予約投稿に接続
  • 視聴データを逆学習してスコア関数を更新

##参照した一次情報・一次ソース

推論明記:

  • 「duration/fps/motion/density の重み付きスコアが視聴維持に効く」という設計は、上記仕様と一般的な運用知見に基づく実装上の推論。