動画プロセッサー
動画ファイルを処理してYouTubeコンテンツを作成し、ソーシャルメディア向けのグラフィックを生成します。このスキルは主に4つの機能を提供します。
- トランスクリプション&チャプター: 動画クリップをタイムスタンプ付きトランスクリプト、SRT字幕、AI生成のYouTubeチャプターに変換します。
- YouTubeサムネイル生成: 顔参照とスタイルマッチングを用いた、AIパワードのYouTubeサムネイルを作成します。
- LinkedIn投稿画像: プロフェッショナルなLinkedInインフォグラフィックと投稿画像を生成します。
- 汎用画像生成: 柔軟な寸法とプロンプトで、あらゆるプラットフォーム向けのカスタム画像を作成します。
このスキルを使用するタイミング
以下のようなユーザーリクエストがあった場合にこのスキルを使用します:
- 動画ファイルやクリップの文字起こしを希望する場合
- YouTubeチャプターの生成を必要とする場合
- 既存のトランスクリプトからチャプターを再生成したい場合
- YouTubeサムネイルを作成したい場合
- LinkedInの投稿画像やインフォグラフィックを作成したい場合
- 他のプラットフォーム(Instagram、Twitter、Facebook等)向けの画像を生成したい場合
- サムネイルの顔入れ替えについて言及した場合
- グラフィックの顔やスタイルの参照について質問があった場合
適切な画像生成ツールの選択
このスキルは3つの画像生成スクリプトを提供します。プラットフォームと要件に基づいて選択してください。
以下の場合は thumbnail.py(YouTubeサムネイル)を使用:
- ユーザーが「YouTube」、「サムネイル」、「動画サムネイル」に言及した場合
- 16:9のアスペクト比がリクエストされた場合
- 顔を含む、劇的で目を引くスタイルが求められる場合
- デフォルト: 1920x1080
以下の場合は linkedin-post.py(LinkedInインフォグラフィック)を使用:
- ユーザーが「LinkedIn」、「LinkedIn投稿」、「ビジネスインフォグラフィック」に言及した場合
- スクエア形式のインフォグラフィックがリクエストされた場合
- プロフェッショナルでダークテーマ、顔なし
- デフォルト: 1200x1200
以下の場合は image-gen.py(汎用)を使用:
- カスタム寸法が指定された場合(Instagram、Twitter、Facebook等)
- プラットフォームがYouTubeやLinkedInでない場合
- ユーザーが明示的に柔軟/カスタムツールをリクエストした場合
- ユーザーが特定のスタイル要件を含む完全なプロンプトを提供した場合
- 必須パラメータ:
--dimensions 幅x高さ
優先順位: ユースケースに合致する場合は、常に thumbnail.py または linkedin-post.py を優先してください。その他のプラットフォームやカスタム要件の場合は、image-gen.py をフォールバックとして使用します。
インストールと要件
動画プロセッサーは、プロジェクトリポジトリの video-processor/ にあります。
要件:
- Python 3.9以上
- uv パッケージマネージャー
- FFmpeg(文字起こし用)
- OpenAI APIキー(Whisper文字起こし用)
- Gemini APIキー(チャプターとサムネイル用)
- Replicate APIトークン(オプション、顔入れ替え用)
環境セットアップ:
cd video-processor
uv sync
# 必要なAPIキーを含む .env ファイルが存在することを確認
1. 動画の文字起こしとチャプター生成
基本的な文字起こしコマンド
動画クリップを文字起こしし、トランスクリプト、字幕、チャプターを生成します。
cd video-processor
uv run transcribe.py <フォルダパス>
例:
uv run transcribe.py ./my-youtube-video/
入力形式
動画は、順序付けのための数値プレフィックスが付いたフォルダに配置します。
my-youtube-video/
├── 1.mp4 # イントロ
├── 2.mp4 # メインコンテンツ
├── 3.mov # デモ
└── 4.mp4 # アウトロ
サポートされている形式: MP4, MOV, MKV, AVI, WEBM, M4V
出力ファイル
スクリプトは、同じフォルダ内に3つのファイルを生成します。
-
transcript.md - タイムスタンプ付きのMarkdown
# トランスクリプト [00:00] チャンネルへようこそ... [00:15] 今日は...についてお話しします -
transcript.srt - 動画編集者/YouTube向けSRT字幕
1 00:00:00,000 --> 00:00:15,500 チャンネルへようこそ... -
chapters.txt - YouTubeチャプター候補(AI生成)
0:00 イントロダクション 2:30 セットアップ 5:45 メインチュートリアル
機能
- マルチクリップ対応: 番号付きクリップを処理し、タイムスタンプオフセットを自動計算します。
- 長尺動画対応: 20分を超える動画は自動的に分割して処理します(API制限対応)。
- タイムスタンプ付きトランスクリプト: 正確なタイムスタンプを持つMarkdown形式。
- AIチャプター: Geminiがコンテキストに応じたチャプターマーカーを生成します。
チャプターのみの再生成
既にトランスクリプトがあり、チャプターのみを再生成したい場合:
cd video-processor
uv run chapters.py <transcript.md または フォルダパス>
例:
# トランスクリプトファイルを直接指定
uv run chapters.py ./my-video/transcript.md
# またはtranscript.mdを含むフォルダを指定
uv run chapters.py ./my-video/
使用例:
- 再文字起こしせずにチャプターを調整する
- トランスクリプト編集後に再生成する
- 別のGeminiモデルを使用する
重要な注意点
- クリップはフラットなフォルダに配置する必要があります(サブディレクトリ不可)。
- 動画はファイル名プレフィックスの数値順に処理されます。
- 推定コスト: オーディオ1分あたり約$0.006(Whisper API)。
- 長尺動画はAPI制限に対応するため自動的に分割されます。
- インターネット接続が必要です。
2. サムネイル生成
基本的なサムネイルコマンド
AIパワードのYouTubeサムネイルを生成します。
cd video-processor
uv run thumbnail.py "あなたのサムネイルアイデア"
デフォルトの動作:
- 3つのバリエーションを生成
- 保存先:
./output/Thumbnails/[YYYY-MM-DD]/ assets/face.jpgが存在する場合は自動的に使用- 出力: 1920x1080のPNGファイル
- ブランドガイドライン: カラーパレット、構成、スタイルのベストプラクティスについては、references/brand-guidelines.md を参照してください。
サムネイルパラメータ
必須
- idea(位置引数): サムネイルのコンセプト/アイデア
顔参照オプション
--face パス: 顔参照画像を指定(デフォルト:assets/face.jpg)--no-face: 顔参照を含めない--face-swap: Replicateで後処理し、実際の顔と入れ替え(REPLICATE_API_TOKENが必要)
スタイルと参照
--style パス: スタイル参照サムネイル - AIがレイアウトと美学を一致させます。--ref パス: 追加の参照画像(複数回使用可能)
ロゴと出力
--logo パス: サムネイルに合成するロゴ--logo-position [bottom-right|bottom-left|top-right|top-left]: ロゴの配置(デフォルト: bottom-right)-o, --output パス: 出力ディレクトリまたはファイルパス--variations N: 生成するバリエーション数(デフォルト: 3)
サムネイルの例
基本 - デフォルト設定で3バリエーション:
uv run thumbnail.py "Googleでの大量解雇に衝撃を受ける反応"
スタイル参照あり:
uv run thumbnail.py "私の新しい動画アイデア" --style ./existing-thumbnail.jpg --face ./me.jpg
正確な似顔絵のために顔入れ替えを使用:
uv run thumbnail.py "新しいAI機能に興奮" --face ./me.jpg --face-swap
クイックテスト用に1バリエーション:
uv run thumbnail.py "クイックテストアイデア" --variations 1
カスタム出力ディレクトリ:
uv run thumbnail.py "私の動画コンセプト" -o ./custom-folder/
顔なし(シーンのみ):
uv run thumbnail.py "エラーが表示されたドラマチックなコード画面" --no-face
ロゴオーバーレイあり:
uv run thumbnail.py "私の動画コンセプト" --logo ./assets/logo.png
顔参照のセットアップ
一貫したサムネイルのために:
-
あなたの顔写真を
assets/フォルダに追加します:video-processor/assets/ ├── face.jpg # デフォルトの顔(自動ロード) ├── face-excited.jpg # 代替表情 ├── face-shocked.jpg └── logo.png # チャンネルロゴ -
スクリプトは
assets/face.jpgが存在すれば自動的に使用します。 -
異なる表情には
--faceで上書きします。 -
顔参照を完全にスキップするには
--no-faceを使用します。
スタイル参照
--style フラグは、既存のサムネイルの美学に合わせます:
- 全体的なレイアウトと構成
- カラースキームと雰囲気
- テキストスタイリング(フォントの太さ、色、配置)
- 背景スタイルとエフェクト
一貫したチャンネルブランディングを維持するのに最適です。
ブランドガイドラインとベストプラクティス
重要: サムネイルを生成する前に、references/brand-guidelines.md を読んで以下の点を確認してください:
- ブランドカラー(青)の使用方法(アクセントとして、支配的ではない)
- 自然な肌のトーン要件(顔に青みがからないように)
- バランスの取れたカラーパレット(鮮やかな色の組み合わせ)
- テキスト強調パターン(1~2のキーワードを青で)
- 構成ガイドライン(レイアウト、視覚的な流れ)
- 実績のある例(過去の成功したサムネイルから)
これらのガイドラインは、彩度過多や不自然な照明などの一般的な問題を回避しながら、サムネイルがブランドの一貫性を維持することを保証します。
正確な似顔絵のための顔入れ替え
AI生成の顔は正確ではない場合があります。後処理には --face-swap を使用してください:
uv run thumbnail.py "私の動画アイデア" --face ./me.jpg --face-swap
仕組み:
- AIでサムネイルを生成します(配置の参照として顔を使用)。
- Replicateで後処理し、実際の顔と入れ替えます。
セットアップ:
- Replicate APIトークンを https://replicate.com/account/api-tokens で取得
.envに追加:REPLICATE_API_TOKEN=r8_あなたのトークン- コスト: 顔入れ替え1回あたり約$0.003($1で約370回の入れ替え)
サムネイル仕様
| 要素 | 値 |
|---|---|
| 解像度 | 1920x1080 (1080p) |
| アスペクト比 | 16:9 |
| フォーマット | PNG(--output .jpg でJPGも可) |
| デフォルトのバリエーション数 | 3 |
| モデル | デフォルト: Gemini 3 Pro (Nano Banana Pro) |
サムネイルに関する重要な注意点
- Geminiモデルは参照画像をサポートしています。Imagenはサポートしていません。
- コスト: Gemini 3 Proで1画像あたり約$0.13
- 顔入れ替えはサムネイル1枚あたり約$0.003追加
- 顔入れ替え込みのサムネイル3枚: 合計約$0.40
- インターネット接続が必要です。
3. LinkedIn投稿画像生成
基本的なLinkedIn画像コマンド
AIパワードのLinkedIn投稿画像とインフォグラフィックを生成します:
cd video-processor
uv run linkedin-post.py "あなたの投稿コンセプト"
デフォルトの動作:
- 3つのバリエーションを生成
- 保存先:
./output/LinkedIn/[YYYY-MM-DD]/ - 出力: 1200x1200のPNGファイル(LinkedInスクエア形式)
- インフォグラフィックレイアウトに最適化(顔なし、白背景、フラットデザイン)
LinkedIn画像パラメータ
必須
- idea(位置引数): LinkedIn投稿のコンセプト/アイデア
スタイルと参照
--style パス: スタイル参照画像 - AIがレイアウトと美学を一致させます。--ref パス: 追加の参照画像(複数回使用可能)
ロゴと出力
--logo パス: 画像に合成するロゴ--logo-position [bottom-right|bottom-left|top-right|top-left]: ロゴの配置(デフォルト: bottom-right)-o, --output パス: 出力ディレクトリまたはファイルパス--variations N: 生成するバリエーション数(デフォルト: 3)
LinkedIn画像の例
基本 - 3バリエーション:
uv run linkedin-post.py "人間とエージェントの責任を示す5層のAIバリデーションピラミッド"
スタイル参照あり:
uv run linkedin-post.py "私のインフォグラフィックコンセプト" --style ./existing-infographic.jpg
テスト用に1バリエーション:
uv run linkedin-post.py "クイックテスト" --variations 1
カスタム出力ディレクトリ:
uv run linkedin-post.py "私のコンセプト" -o ./custom-folder/
ロゴオーバーレイあり:
uv run linkedin-post.py "私のインフォグラフィック" --logo ./assets/logo.png
LinkedIn画像仕様
| 要素 | 値 |
|---|---|
| 解像度 | 1200x1200 (LinkedInスクエア) |
| アスペクト比 | 1:1 |
| フォーマット | PNG(--output .jpg でJPGも可) |
| デフォルトのバリエーション数 | 3 |
| モデル | デフォルト: Gemini 3 Pro (Nano Banana Pro) |
| スタイル | プロフェッショナルなインフォグラフィック、顔なし、フラットデザイン |
LinkedIn画像に関する重要な注意点
- プロフェッショナルなビジネスインフォグラフィック向けに最適化
- モダンで洗練されたダークテーマ
- 顔や人物は含めない(純粋な図/インフォグラフィックスタイル)
- グラデーションのある青のカラーテーマ
- YouTubeサムネイルよりも情報密度が高い
- コスト: Gemini 3 Proで1画像あたり約$0.13
- インターネット接続が必要です。
4. 汎用画像生成
基本的な汎用画像コマンド
任意のプラットフォーム向けに、カスタム寸法でAIパワードの画像を生成します:
cd video-processor
uv run image-gen.py "あなたの画像コンセプト" --dimensions 幅x高さ
主な機能:
- カスタム寸法(必須パラメータ)
- 最小限のプロンプトラッピング(最大の柔軟性)
- スタイル参照をサポート
- 保存先:
./output/Images/[YYYY-MM-DD]/ - デフォルト: 3バリエーション
汎用画像パラメータ
必須
- idea(位置引数): 画像コンセプト、完全なプロンプト詳細を含む
--dimensions 幅x高さ: 画像寸法(例: 1080x1080, 1200x675)
スタイルと参照
--style パス: スタイル参照画像 - AIが美学を一致させます。--ref パス: 追加の参照画像(複数回使用可能)
ロゴと出力
--logo パス: 画像に合成するロゴ--logo-position [bottom-right|bottom-left|top-right|top-left]: ロゴの配置(デフォルト: bottom-right)-o, --output パス: 出力ディレクトリまたはファイルパス--variations N: 生成するバリエーション数(デフォルト: 3)
汎用画像の例
Instagramのスクエア投稿:
uv run image-gen.py "白背景のミニマリスト商品写真" --dimensions 1080x1080
Instagramストーリー:
uv run image-gen.py "縦型のモチベーション向上名言デザイン" --dimensions 1080x1920
Twitter投稿画像:
uv run image-gen.py "青をテーマにしたテックアナウンスグラフィック" --dimensions 1200x675
Facebookカバー写真:
uv run image-gen.py "プロフェッショナルなビジネスヘッダー" --dimensions 820x312
スタイル参照あり:
uv run image-gen.py "私のコンセプト" --dimensions 1200x1200 --style ./reference.jpg
一般的な寸法リファレンス
| プラットフォーム | サイズ | アスペクト比 | コマンド |
|---|---|---|---|
| YouTubeサムネイル | 1920x1080 | 16:9 | 代わりに thumbnail.py を使用 |
| LinkedInスクエア | 1200x1200 | 1:1 | 代わりに linkedin-post.py を使用 |
| Instagramスクエア | 1080x1080 | 1:1 | --dimensions 1080x1080 |
| Instagramストーリー | 1080x1920 | 9:16 | --dimensions 1080x1920 |
| Twitter投稿 | 1200x675 | 16:9 | --dimensions 1200x675 |
| Facebook投稿 | 1200x630 | 1.91:1 | --dimensions 1200x630 |
| Pinterestピン | 1000x1500 | 2:3 | --dimensions 1000x1500 |
汎用画像の例(続き)
Pinterestピン:
uv run image-gen.py "洋服のスタイリングアイデアコラージュ" --dimensions 1000x1500
ブログヘッダー画像:
uv run image-gen.py "ブログ記事のヘッダー画像、クリーンでプロフェッショナル" --dimensions 1200x630
汎用画像仕様
| 要素 | 値 |
|---|---|
| 解像度 | カスタム(--dimensions で指定) |
| アスペクト比 | カスタム |
| フォーマット | PNG(--output .jpg でJPGも可) |
| デフォルトのバリエーション数 | 3 |
| モデル | デフォルト: Gemini 3 Pro (Nano Banana Pro) |
汎用画像に関する重要な注意点
- 最も柔軟性が高いが、詳細なプロンプトが必要
- YouTubeやLinkedInには特化していません(特化スクリプトを使用してください)
--dimensionsは必須パラメータです- コスト: Gemini 3 Proで1画像あたり約$0.13
- インターネット接続が必要です。
トラブルシューティングとよくある問題
APIキーと認証
.env ファイルが video-processor/ ディレクトリに存在し、以下の内容を含んでいることを確認してください:
OPENAI_API_KEY=sk-あなたのキー
GEMINI_API_KEY=あなたのgeminiキー
# オプション: REPLICATE_API_TOKEN=r8_あなたのトークン
FFmpegがインストールされていない
macOS (Homebrew):
brew install ffmpeg
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
Windows (Chocolatey):
choco install ffmpeg
uvがインストールされていない
curl -LsSf https://astral.sh/uv/install.sh | sh
または、https://docs.astral.sh/uv/ を参照してください。
動画が処理されない
- ファイルがサポートされている形式(MP4、MOV、MKV、AVI、WEBM、M4V)であることを確認
- ファイルがフラットなフォルダにあり、サブフォルダがないことを確認
- ファイル名が数値プレフィックスで始まっていることを確認(例:
1.mp4,2.mp4) video-processor/ディレクトリからコマンドを実行していることを確認
画像が期待通りに生成されない
- より詳細なプロンプトを提供する
--styleを使用して参照画像を提供する--variationsを使用して異なるバリエーションを試す- サムネイルの場合は、ブランドガイドライン references/brand-guidelines.md を確認する
- 顔入れ替えが正しく機能しない場合は、
--face-swapを試す
外部リソースとリンク
- OpenAI Whisper API: 文字起こしに使用
- Gemini API: 画像生成とチャプター生成に使用
- Replicate API: 顔入れ替え機能に使用(オプション)
- uv パッケージマネージャー: Pythonの依存関係管理に使用
- FFmpeg: 動画処理に使用
- ブランドガイドライン: references/brand-guidelines.md を参照
すべての画像生成に関する追加注意事項
--output によるファイル形式の指定
-o または --output を使用する場合、拡張子を指定してファイル形式を制御できます:
# JPGとして保存
uv run thumbnail.py "テストアイデア" -o ./output/test.jpg
# PNGとして保存(デフォルト)
uv run thumbnail.py "テストアイデア" -o ./output/test.png
パスを指定しない場合(例: -o ./custom-folder/ のようにディレクトリのみ)、スクリプトはデフォルトのPNG形式を使用します。
コストの見積もり
| 操作 | 推定コスト |
|---|---|
| 文字起こし(1分あたり) | $0.006 |
| 画像生成(Gemini 3 Pro、1画像あたり) | $0.13 |
| 顔入れ替え(1回あたり) | $0.003 |
| サムネイル3枚 + 顔入れ替え | $0.40 |