Reelsmith は何をしますか?
コードで動画を生成:スクリプト → 企画 → 承認 → テンプレートレンダリング → レビュー → 書き出し。
すべて無料かつオフラインで動作。オプションのキーで機能追加。
以下のパス(scripts/、templates/、references/)はReelsmithフォルダからの相対パスです。このファイルの隣、またはGrok Bot環境では /workspace/reelsmith/ に配置されます。
開始するたびに
python3 scripts/capabilities.py- ON/OFF状態を表示(キーは決して表示しない)。どの無料キーが役立つかを一度だけ伝える(例:Pexels for stock video)。決して必須にしない。- 以下の情報を収集:目的、視聴者、プラットフォーム、尺、ブランド(
brand.json。なければreferences/brand-kit.mdを参考に作成)、メディア、音楽の好み、ナレーションの有無。不明な点だけ質問する。 - テンプレート(下記参照)またはカスタムビルドを選択。
ジョブのルーティング
| ジョブ | 使用するもの | 参照ドキュメント |
|---|---|---|
| ローンチリール、機能リリース、プロモーション | テンプレート product-launch(音楽主導) | templates.md, music.md |
| 写真を使ったイベントハイライト | event-recap | templates.md, stock-media.md |
| カスタマー引用・レビュー | testimonial | templates.md |
| ティーザー、「近日公開」日付告知(ループ可能) | countdown-teaser | templates.md |
| 数字、レポートハイライト、マイルストーン | stat-callout | templates.md |
| トーク/ブース/キオスクループ、アニメーションデッキ | slides-presentation(--loop) | templates.md |
| チュートリアル、ウォークスルー、オンボーディング(+ YouTubeチャプター) | howto-tutorial | templates.md, youtube-publishing.md |
| ナレーション付きプロダクトエクスプレーナー+キャプション | feature-explainer(Remotion使用; render.sh) | remotion.md |
| カスタムキネティック作品、オーバーレイ、アルファ、GIF | HyperFramesで手動作成 | hyperframes.md, motion-design.md |
| 図解/数式、Lottie、ユーザー映像のカット、文字起こし | Manim、Lottie、auto-editor、parakeet | helpers.md |
| スクリプトまたはVOライン | 2~3案 + script_lint.py | scriptwriting.md, voiceover.md |
| キャプション(SRT/VTT/ASS、焼き込み) | captions.py | captions.md |
| プラットフォーム仕様、セーフゾーン、納品ファイル | export.py、presets.json | platform-specs.md, loudness-accessibility.md |
| AI Bロール、画像、アバター、AI音楽(有料) | Fal / Higgsfield、事前に引用 | ai-generation.md |
ライセンス:HyperFramesはApache-2.0。Remotionは個人および最大3名のチームは無料。4名以上の企業はライセンスが必要(商用なら一度確認)。音楽、ストック、フォント:ライセンス済み、クレジット表示(stock.py credit、credits.json)。
ワークフロー
- スクリプト: 2~3案を作成(3秒以内にフック、1シーン1アイデア、最後にCTA)、約2.5語/秒。リントチェック。
- 企画:
reelsmith.py sample TEMPLATE > content.jsonを実行して内容を記入。その後reelsmith.py render --template T --content content.json --brand brand.json --out OUT --dry-runを実行。ショットリスト(シーン、テキスト、VO、秒数)、音楽+ライセンス、声(無料または引用済み)、アスペクト比を表示。 - 承認(常に) 長時間のレンダリング前、および有料生成の前に実施。
- 下書き:
reelsmith.py render … --aspect 16x9,9x16,1x1 --music track.mp3|synth --vo auto --draftを実行。 - レビューゲート:
review.py check VIDEO --out OUT/_review --preset P --job OUT/job.jsonを実行。scenes.jpg、safe.jpg、phone.jpg を確認。修正。プレビューを送信。ユーザーの承認後、review.py approveを実行。 - 最終+書き出し:
--draftなしでレンダリング。その後export.py run VIDEO --preset reels,tiktok,youtube --review OUT/_review --out OUT/deliveryを実行(承認なしでは拒否)。YouTube用:youtube_prep.py(アップロードはしない)。 - 納品: ファイルを1行ずつ添付(アスペクト比、尺、LUFS)、クレジット、AI開示情報を付記。再編集の提案。
スクリプト(scripts/)
capabilities.py 機能のON/OFF | brand.py 検証、バンドル、ロゴから生成、サイトから生成 | reelsmith.py 一覧表示、サンプル生成、レンダリング、ループ、シームレス接続 | script_lint.py | beats.py グリッド、スナップ、フィット、シンセ | stock.py 検索、取得、クレジット表示(APIキーのみ、--dry-run) | captions.py ビルド/焼き込み | review.py チェック、承認、ステータス | export.py 実行、オーバーレイ、一覧表示、ラウドネスノーマライズ | youtube_prep.py | presets.json。
HyperFramesのセットアップと固定:references/hyperframes.md。Kokoro使用時は HYPERFRAMES_PYTHON=<venv>/bin/python が必要。
ルール
- キーはプラットフォームのシークレットプロンプト経由で環境変数としてのみ渡す。決して表示、ログ出力、書き込みをしてはならない。
REELSMITH_IGNORE_KEYS=1で無料パスを強制。 - 有料の音声/AIは、名前指定 +
--allow-paid+ キー存在 + ユーザーが見積もりを承認した場合のみ使用可能。拒否されたらそれで終了。 - ストックメディアは公式APIとキーを通じてのみ取得。スクレイピングやホットリンクは禁止。クレジットを保持すること。
- 実際の引用、ロゴ、顔写真の使用は許可を得ること。アバターや音声クローンは同意が必要。AI使用を開示すること。
- 発話がある場合はキャプションを付ける。テキストはセーフゾーン内に配置。1秒あたり最大3回のフラッシュ。ラウドネスは-14 LUFS、最大-1 dBTP。
- Remotion最終出力:
export.py loudnorm(ノーマライズは行われない)。 - 自動投稿やアップロードは絶対に行わない。ファイルをユーザーが使える形で準備する。
障害対応
OOM:--workers 2(HyperFrames)/ --concurrency=2(Remotion)。Chrome:$HF doctor / npx remotion browser ensure。HyperFramesのフレームが真っ黒:タイムラインが一時停止/登録されていない、またはアセットパスが不正。librosaがない:ビートは固定BPMにフォールバック(--bpm を渡す)。Kokoroがない:espeak-ng。401エラー:シークレットプロンプト経由でキーを再要求。
ユーザーに質問するタイミング
企画承認(常に)。スクリプトの選択。音声の選択。プラットフォーム、尺、ブランド、音楽が不明な場合。有料生成(見積もり付き)の場合。顔や声の使用許可。最終レビュー承認。商用利用の場合のRemotionの人数確認。