Communitygithub.com

TheSmokeDev/taskchad-os

動画ファイルをYouTubeコンテンツ作成向けに処理し、ソーシャルメディア向けグラフィックを生成します。動画/クリップのタイムスタンプ付きトランスクリプト、SRT字幕、AI生成チャプターの作成、顔参照によるAIパワードYouTubeサムネイル生成、LinkedIn投稿インフォグラフィックの作成、柔軟なサイズ指定で任意のプラットフォーム向けカスタム画像生成を実現します。

taskchad-os とは?

このスキルは、動画ファイルの処理やソーシャルメディアグラフィックの生成タスクに特化した多機能ツールスイートです。主に4つの機能を提供します。(1) **トランスクリプション&チャプター生成**:動画からタイムスタンプ付きトランスクリプト、SRT字幕、AI生成のYouTubeチャプターを作成します。(2) **YouTubeサムネイル生成**:顔参照やスタイル参照を用いた、AIによる16:9のYouTubeサムネイルを生成します。(3) **LinkedIn投稿画像生成**:プロフェッショナルなスクエア形式のインフォグラフィックを生成します。(4) **汎用画像生成**:InstagramやTwitterなど、任意のプラットフォーム向けにカスタムサイズの画像を生成します。内部では `thumbnail.py`、`linkedin-post.py`、`image-gen.py` という3つの専用スクリプトを使い分け、プラットフォームに最適化された出力を実現します。OpenAI Whisper、Gemini、Replicate(オプション)のAPIを利用し、サムネイル内の顔を実際の顔に置き換えるフェイススワップ機能も備えています。このスキルは主にCLI操作(`uv run`)で使用し、プロジェクトリポジトリ内の `video-processor/` ディレクトリに配置されています。

対応~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/TheSmokeDev/taskchad-os/tree/HEAD/.claude/skills/video-processor

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

動画プロセッサー

動画ファイルを処理してYouTubeコンテンツを作成し、ソーシャルメディア向けのグラフィックを生成します。このスキルは主に4つの機能を提供します。

  1. トランスクリプション&チャプター: 動画クリップをタイムスタンプ付きトランスクリプト、SRT字幕、AI生成のYouTubeチャプターに変換します。
  2. YouTubeサムネイル生成: 顔参照とスタイルマッチングを用いた、AIパワードのYouTubeサムネイルを作成します。
  3. LinkedIn投稿画像: プロフェッショナルなLinkedInインフォグラフィックと投稿画像を生成します。
  4. 汎用画像生成: 柔軟な寸法とプロンプトで、あらゆるプラットフォーム向けのカスタム画像を作成します。

このスキルを使用するタイミング

以下のようなユーザーリクエストがあった場合にこのスキルを使用します:

  • 動画ファイルやクリップの文字起こしを希望する場合
  • 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つのファイルを生成します。

  1. transcript.md - タイムスタンプ付きのMarkdown

    # トランスクリプト
    
    [00:00] チャンネルへようこそ...
    [00:15] 今日は...についてお話しします
    
  2. transcript.srt - 動画編集者/YouTube向けSRT字幕

    1
    00:00:00,000 --> 00:00:15,500
    チャンネルへようこそ...
    
  3. 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

顔参照のセットアップ

一貫したサムネイルのために:

  1. あなたの顔写真を assets/ フォルダに追加します:

    video-processor/assets/
    ├── face.jpg           # デフォルトの顔(自動ロード)
    ├── face-excited.jpg   # 代替表情
    ├── face-shocked.jpg
    └── logo.png           # チャンネルロゴ
    
  2. スクリプトは assets/face.jpg が存在すれば自動的に使用します。

  3. 異なる表情には --face で上書きします。

  4. 顔参照を完全にスキップするには --no-face を使用します。

スタイル参照

--style フラグは、既存のサムネイルの美学に合わせます:

  • 全体的なレイアウトと構成
  • カラースキームと雰囲気
  • テキストスタイリング(フォントの太さ、色、配置)
  • 背景スタイルとエフェクト

一貫したチャンネルブランディングを維持するのに最適です。

ブランドガイドラインとベストプラクティス

重要: サムネイルを生成する前に、references/brand-guidelines.md を読んで以下の点を確認してください:

  • ブランドカラー(青)の使用方法(アクセントとして、支配的ではない)
  • 自然な肌のトーン要件(顔に青みがからないように)
  • バランスの取れたカラーパレット(鮮やかな色の組み合わせ)
  • テキスト強調パターン(1~2のキーワードを青で)
  • 構成ガイドライン(レイアウト、視覚的な流れ)
  • 実績のある例(過去の成功したサムネイルから)

これらのガイドラインは、彩度過多や不自然な照明などの一般的な問題を回避しながら、サムネイルがブランドの一貫性を維持することを保証します。

正確な似顔絵のための顔入れ替え

AI生成の顔は正確ではない場合があります。後処理には --face-swap を使用してください:

uv run thumbnail.py "私の動画アイデア" --face ./me.jpg --face-swap

仕組み:

  1. AIでサムネイルを生成します(配置の参照として顔を使用)。
  2. 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サムネイル1920x108016:9代わりに thumbnail.py を使用
LinkedInスクエア1200x12001:1代わりに linkedin-post.py を使用
Instagramスクエア1080x10801:1--dimensions 1080x1080
Instagramストーリー1080x19209:16--dimensions 1080x1920
Twitter投稿1200x67516:9--dimensions 1200x675
Facebook投稿1200x6301.91:1--dimensions 1200x630
Pinterestピン1000x15002: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

関連スキル