AgentSkillsCN

gif-analyzer

通过提取并按顺序播放帧,将动画 GIF 文件解析为连续视频。 适用场景: - 当用户提及 GIF 文件路径(例如“./demo.gif”、“~/Downloads/animation.gif”) - 当用户想要分析或理解 GIF 动画 - 当用户询问 GIF 中的运动、变化或内容 - 当用户附上或引用 .gif 文件进行分析 - 当用户希望以 GIF 格式查看屏幕录制 - 当用户调用 /gif 斜杠命令 关键词:“GIF”、“.gif”、“动画”、“动图”、“帧”、“屏幕录制”, “分析 GIF”、“GIF 分析”、“查看 GIF”、“GIF 内容”、“GIF 运动” 触发模式: - 自然语言:“分析这个 GIF:./demo.gif” - 斜杠命令:`/gif <路径>` 或 `/gif <路径> <消息>` 触发时,使用 Python 脚本提取帧,按顺序查看帧, 并将其解读为连续的视频序列。

SKILL.md
--- frontmatter
name: gif-analyzer
description: |
  Analyze animated GIF files by extracting and viewing frames as sequential video.

  Use when:
  - User mentions a GIF file path (e.g., "./demo.gif", "~/Downloads/animation.gif")
  - User wants to analyze or understand a GIF animation
  - User asks about motion, changes, or content in a GIF
  - User attaches or references a .gif file for analysis
  - User wants to examine a screen recording in GIF format
  - User invokes /gif slash command

  Keywords: "GIF", ".gif", "animation", "animated", "frames", "screen recording",
  "analyze gif", "gif analysis", "view gif", "gif content", "gif motion"

  Trigger patterns:
  - Natural language: "Analyze this GIF: ./demo.gif"
  - Slash command: `/gif <path>` or `/gif <path> <message>`

  When triggered, extract frames using the Python script, view frames in order,
  and interpret as continuous video sequence.

GIF Analyzer

Analyze animated GIFs by extracting frames and interpreting them as sequential video.

Quick Start

When the user uses /gif:

Pattern 1: Basic analysis

code
/gif ./animation.gif

Pattern 2: With specific request

code
/gif ./animation.gif describe what happens step by step
/gif ./demo.gif what is the character doing?
/gif ./screen.gif summarize this screen recording

Workflow

Step 1: Parse User Input

Extract from the user's message:

  1. GIF path: The file path immediately after /gif
  2. User request (optional): Any text after the GIF path

Example parsing:

  • Input: /gif ./demo.gif explain the animation
  • GIF path: ./demo.gif
  • User request: explain the animation

Step 2: Extract Frames

bash
python3 ~/.claude/skills/gif-analyzer/extract_gif_frames.py <gif_path> --output-dir /tmp/gif_frames_analysis

Options for long GIFs:

bash
python3 ~/.claude/skills/gif-analyzer/extract_gif_frames.py <gif_path> --max-frames 30 --skip 2

Step 3: Read Metadata

Check gif_metadata.json for:

  • Total frames and duration
  • Individual frame timestamps
  • Resolution and loop information

Step 4: View and Analyze Frames

View frames in order: frame_001.png, frame_002.png, etc.

CRITICAL: Treat frames as a continuous video sequence:

  1. Frame 001 = START of the animation
  2. Frame numbers increase in TIME ORDER
  3. Consecutive frames show MOTION/CHANGE over time

Step 5: Respond to User

If user provided a specific request, focus on answering that. Otherwise, provide a general analysis of the GIF content.

Script Options

OptionDescriptionDefault
--output-dir, -oOutput directory./gif_frames_<timestamp>
--max-frames, -mMax frames to extract50
--skip, -sExtract every Nth frame1 (all frames)

Frame Analysis Guidelines

  1. Temporal Awareness: Frame 001 is the beginning
  2. Motion Detection: Compare adjacent frames to identify movement
  3. Key Frames: Identify significant moments (start, middle, end)
  4. Loop Points: Note if the animation appears to loop
  5. Duration Context: Use timestamp info to understand pacing

Output Format

code
📹 **GIF Analysis: [filename]**

**Overview:**
[1-2 sentence summary]

**Timeline:**
- [0.0s - 0.5s] Frame 1-5: [Description]
- [0.5s - 1.0s] Frame 6-10: [Description]
...

**[Answer to user's specific question if provided]**

Troubleshooting

  • Pillow not found: pip install Pillow
  • Too many frames: Use --skip 2 or higher
  • Large output: Use --max-frames 20