ワンクリックで
video-frame-reader
動画ファイルからキーフレームを抽出し、重複除去・最適化した上で内容を分析するスキル。 「動画の中身を見て」「キーフレームを抽出」「この動画を分析して」等で発動。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
動画ファイルからキーフレームを抽出し、重複除去・最適化した上で内容を分析するスキル。 「動画の中身を見て」「キーフレームを抽出」「この動画を分析して」等で発動。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | video-frame-reader |
| description | 動画ファイルからキーフレームを抽出し、重複除去・最適化した上で内容を分析するスキル。 「動画の中身を見て」「キーフレームを抽出」「この動画を分析して」等で発動。 |
| triggers | ["動画の中身を見て","キーフレームを抽出","この動画を分析して","動画を確認して","スクリーン録画を見て","video-frame-reader","keyframe extraction"] |
Extract keyframes from video, present token cost, then analyze.
Clearly understand why the user wants the video analyzed:
This intent becomes important context for the analysis.
# uv で依存関係をインストール
uv add Pillow numpy --quiet
uv run python skills/video-frame-reader/scripts/extract_keyframes.py "<video_path>"
Output example (JSON):
{
"keyframe_count": 52,
"image_size": "266x576",
"total_tokens": 10400,
"cost_usd_opus": 0.156,
"cost_usd_sonnet": 0.031,
"cost_usd_haiku": 0.0104,
"files": ["/.../key_0001.jpg", ...]
}
After extraction, present the following to the user:
Keyframe extraction complete:
- Frames extracted: {keyframe_count}
- Image size: {image_size}
- Estimated tokens: {total_tokens}
- Cost estimate: Haiku ${cost_usd_haiku} / Sonnet ${cost_usd_sonnet} / Opus ${cost_usd_opus}
Proceed with frame analysis?
After user approval, invoke subagent using Task tool:
Task(
subagent_type="general-purpose",
model="haiku",
description="Frame analysis",
prompt="""
[User Intent]
{Intent captured in Step 1}
[Frame Image Files]
{List of paths from files array}
Analyze the above frame images and identify issues/behaviors according to the user's intent.
"""
)
Benefits of this approach:
| Option | Default | Description |
|---|---|---|
-t, --threshold | 0.85 | Similarity threshold (higher = more frames kept) |
-q, --quality | 30 | JPEG quality (1-100) |
-s, --scale | 0.3 | Resize scale |
-o, --output | <video_name>_keyframes/ | Output directory |
# More aggressive reduction (lower threshold, quality, and size)
python3 extract_keyframes.py video.mp4 -t 0.75 -q 20 -s 0.2
動画ファイルからキーフレームを自動抽出し、重複除去・最適化した上で内容を分析するスキルです。トークンコストを事前提示し、ユーザー承認後にサブエージェントで分析を実行します。
| エラー | 解決方法 |
|---|---|
| ffmpeg not found | brew install ffmpeg(Mac)または apt install ffmpeg(Linux)でインストール |
| No keyframes extracted | --threshold を下げる(例: 0.75)ことでより多くのフレームを抽出 |
上記「Workflow」セクションを参照。基本例:
# キーフレーム抽出
python3 skills/video-frame-reader/scripts/extract_keyframes.py "video.mp4"
# トークン削減オプション付き
python3 skills/video-frame-reader/scripts/extract_keyframes.py "video.mp4" -t 0.75 -q 20 -s 0.2
Slack検索・TODO抽出・タスク管理を行うサブエージェント。 複数データソースからタスクを抽出し、優先順位付けを行う。 「Slackを検索」「タスクを抽出」「TODO確認」「メンション確認」等のリクエストで発動。
ai-agent-campのレッスンをCodexで開始・進行するスキル。 「レッスン開始」「次のレッスン」「start-0-1を始めたい」「Codexでレッスン」「スラッシュコマンドのレッスン」等のリクエストで発動。
YouTube/マルチプラットフォーム動画からAIでハイライトを抽出し、 バイリンガル字幕付きクリップを自動生成するスキル。 「動画からクリップを切り出して」「ハイライトを抽出」「字幕付きクリップ」等で発動。
メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。
コンテンツの投稿・配信実行スキル。Typefully経由のX投稿、画像アップロード、 投稿スケジューリングを行う。 「投稿して」「スケジュール設定」「Typefullyに下書き」等で発動。
CSVファイルの行数・列数の取得、データ型推定、欠損値検出、数値列の統計情報を出力するスキル。 「CSVを分析して」「CSVの中身を確認」「データの概要を見せて」等のリクエストで発動。