返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

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 <path>` 或 `/gif <path> <message>` 当被触发时,使用Python脚本提取帧,按顺序查看帧,并将其解释为连续的视频序列。

person作者: jakexiaohubgithub

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

/gif ./animation.gif

Pattern 2: With specific request

/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

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

Options for long GIFs:

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

| Option | Description | Default | |--------|-------------|---------| | --output-dir, -o | Output directory | ./gif_frames_<timestamp> | | --max-frames, -m | Max frames to extract | 50 | | --skip, -s | Extract every Nth frame | 1 (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

📹 **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