/start-15-1.en
Lesson command
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/start-15-1.en
Context preview
What this command does when you run it.
Lesson command
Command definition
start-15-1.en.mddescription: "Lesson command"
chapter: "courses/aiagent/lesson03-core/module15-video"
duration: "~30 min"
prerequisites: ["start-0-3"]
level: "intermediate"
tags: ["video", "keyframe", "analysis", "ffmpeg"]
nonInteractiveMode: deferred
Lesson 15-1: Video Frame Analysis
What You Will Do in This Session
Welcome to **Lesson 15-1: Video Frame Analysis**!
| Item | Details | |------|---------| | Goal | Extract keyframes from a video, analyze the content, and create a summary report | | Duration | ~30 min | | Skills used | video-frame-reader (FFmpeg, Gemini Vision API) | | Prerequisites | FFmpeg, Python 3.9+, and Gemini API key configured | | Course page | Refer to [Module 15: Video Generation](https://ai-agent.camp/en/course/module-15) in parallel |
**Session flow:** 1. Verify environment 2. Prepare sample video 3. Extract and analyze keyframes 4. Create a video summary report
By the end of this session, keyframes and a summary will be saved in outputs.
> **Tip**: If the AI response stops midway, type "please continue" or "it stopped" to resume. Responses may pause depending on the tool, but this is not an error.
---
Readiness Check
First, confirm that everything is ready.
**AskQuestion configuration:**
{
"title": "Pre-session check",
"questions": [{
"id": "readiness",
"prompt": "Are you ready?",
"options": [
{"id": "ready", "label": "Ready! Let's start"},
{"id": "check_prereq", "label": "I want to check the prerequisites"},
{"id": "view_html", "label": "I want to see the course page first"},
{"id": "different_lesson", "label": "I want to go to a different lesson"}
]
}]
}(ready -> Go to Step 1) (check_prereq -> Run prerequisite check) (view_html -> Show the course page path) (different_lesson -> Show module list)
---
Step 0: Prepare a Test Video
Use the bundled sample video first. Only add a practice video via FFmpeg if you don't have one.
# Create the data directory under lesson (if needed)
mkdir -p courses/aiagent/lesson03-core/module15-video/practice/data/videos
# Generate a test video with FFmpeg (10 seconds, 640x480, 30fps):
ffmpeg -f lavfi -i testsrc=duration=10:size=640x480:rate=30 -pix_fmt yuv420p courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4
> **Note**: If FFmpeg is not installed, Step 1 environment check will guide you.
---
Step 1: Verify Environment
**AskQuestion configuration:**
{
"title": "Step 1: Verify Environment",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Verify the environment needed for video frame extraction:
- Is FFmpeg installed?
- Is Python 3.9+ installed?
- Is the video-frame-reader skill available?
If anything is missing, show the installation steps.
**Expected result**: The required environment is verified, and installation steps are shown if anything is missing.
---
Step 2: Prepare Sample Video
**AskQuestion configuration:**
{
"title": "Step 2: Prepare Sample Video",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
For video frame extraction testing, verify the following:
1. The `courses/aiagent/lesson03-core/module15-video/practice/data/videos/` folder exists
2. The default official sample `data/videos/module7-lesson1-frame-lab-sample.mp4` or `courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4` can be used
If trying a different video, you may place an MP4 of 30 seconds or less in `courses/aiagent/lesson03-core/module15-video/practice/data/videos/`.
**Expected result**: Test videos including `data/videos/module7-lesson1-frame-lab-sample.mp4` are ready and paths are confirmed.
---
Step 3: Extract Keyframes
**AskQuestion configuration:**
{
"title": "Step 3: Extract Keyframes",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Extract keyframes from data/videos/module7-lesson1-frame-lab-sample.mp4 or
courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4
(use video-frame-reader's extract_keyframes.py).
Settings:
- Extraction interval: every 5 seconds (or skill default)
- Output format: follow skill (PNG, etc.)
- Output path: data/frames/ or another clear path
After extraction, display the list of generated frame images.
**Expected result**: Keyframes are saved as PNG at the specified interval.
---
Step 4: Analyze Extracted Frames
**AskQuestion configuration:**
{
"title": "Step 4: Analyze Extracted Frames",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Analyze the extracted frame images:
For each image in data/frames/, provide:
- Scene content description
- Detected objects
- OCR results if text is present
- Differences from the previous frame
**Expected result**: The content of each frame is described.
---
Step 5: Create Video Summary Rep
Read more
description: "Lesson command" chapter: "courses/aiagent/lesson03-core/module15-video" duration: "~30 min" prerequisites: ["start-0-3"] level: "intermediate" tags: ["video", "keyframe", "analysis", "ffmpeg"] nonInteractiveMode: deferred
Lesson 15-1: Video Frame Analysis
What You Will Do in This Session
Welcome to **Lesson 15-1: Video Frame Analysis**!
| Item | Details | |------|---------| | Goal | Extract keyframes from a video, analyze the content, and create a summary report | | Duration | ~30 min | | Skills used | video-frame-reader (FFmpeg, Gemini Vision API) | | Prerequisites | FFmpeg, Python 3.9+, and Gemini API key configured | | Course page | Refer to [Module 15: Video Generation](https://ai-agent.camp/en/course/module-15) in parallel |
**Session flow:** 1. Verify environment 2. Prepare sample video 3. Extract and analyze keyframes 4. Create a video summary report
By the end of this session, keyframes and a summary will be saved in outputs.
> **Tip**: If the AI response stops midway, type "please continue" or "it stopped" to resume. Responses may pause depending on the tool, but this is not an error.
---
Readiness Check
First, confirm that everything is ready.
**AskQuestion configuration:**
{
"title": "Pre-session check",
"questions": [{
"id": "readiness",
"prompt": "Are you ready?",
"options": [
{"id": "ready", "label": "Ready! Let's start"},
{"id": "check_prereq", "label": "I want to check the prerequisites"},
{"id": "view_html", "label": "I want to see the course page first"},
{"id": "different_lesson", "label": "I want to go to a different lesson"}
]
}]
}(ready -> Go to Step 1) (check_prereq -> Run prerequisite check) (view_html -> Show the course page path) (different_lesson -> Show module list)
---
Step 0: Prepare a Test Video
Use the bundled sample video first. Only add a practice video via FFmpeg if you don't have one.
# Create the data directory under lesson (if needed) mkdir -p courses/aiagent/lesson03-core/module15-video/practice/data/videos # Generate a test video with FFmpeg (10 seconds, 640x480, 30fps): ffmpeg -f lavfi -i testsrc=duration=10:size=640x480:rate=30 -pix_fmt yuv420p courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4
> **Note**: If FFmpeg is not installed, Step 1 environment check will guide you.
---
Step 1: Verify Environment
**AskQuestion configuration:**
{
"title": "Step 1: Verify Environment",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Verify the environment needed for video frame extraction: - Is FFmpeg installed? - Is Python 3.9+ installed? - Is the video-frame-reader skill available? If anything is missing, show the installation steps.
**Expected result**: The required environment is verified, and installation steps are shown if anything is missing.
---
Step 2: Prepare Sample Video
**AskQuestion configuration:**
{
"title": "Step 2: Prepare Sample Video",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
For video frame extraction testing, verify the following: 1. The `courses/aiagent/lesson03-core/module15-video/practice/data/videos/` folder exists 2. The default official sample `data/videos/module7-lesson1-frame-lab-sample.mp4` or `courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4` can be used If trying a different video, you may place an MP4 of 30 seconds or less in `courses/aiagent/lesson03-core/module15-video/practice/data/videos/`.
**Expected result**: Test videos including `data/videos/module7-lesson1-frame-lab-sample.mp4` are ready and paths are confirmed.
---
Step 3: Extract Keyframes
**AskQuestion configuration:**
{
"title": "Step 3: Extract Keyframes",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Extract keyframes from data/videos/module7-lesson1-frame-lab-sample.mp4 or courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4 (use video-frame-reader's extract_keyframes.py). Settings: - Extraction interval: every 5 seconds (or skill default) - Output format: follow skill (PNG, etc.) - Output path: data/frames/ or another clear path After extraction, display the list of generated frame images.
**Expected result**: Keyframes are saved as PNG at the specified interval.
---
Step 4: Analyze Extracted Frames
**AskQuestion configuration:**
{
"title": "Step 4: Analyze Extracted Frames",
"questions": [{
"id": "step_action",
"prompt": "What do you want to do with this step?",
"options": [
{"id": "practice", "label": "Proceed"},
{"id": "review", "label": "Just review examples"},
{"id": "skip", "label": "Skip"}
]
}]
}**Post-selection instructions (example)**: Input:
Analyze the extracted frame images: For each image in data/frames/, provide: - Scene content description - Detected objects - OCR results if text is present - Differences from the previous frame
**Expected result**: The content of each frame is described.
---
Step 5: Create Video Summary Rep
AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your
Other commands on ai-agent-camp.
- /check-setup.en
Top-level alias — see lesson/check-setup.en.md for the full body.
Open command - /check-setup.es
Alias de nivel superior — el cuerpo completo está en lesson/check-setup.es.md.
Open command - /check-setup
Top-level alias — see lesson/check-setup.md for the full body.
Open command - /check-security.en
Lesson command
Open command - /check-security.es
Lesson command
Open command - /check-security
Lesson command
Open command

