A skill that generates game promotional videos (Shorts/ad creatives) with fully local + free tools.
- Input:
--game-id(Steam app id) - Automation: screenshot collection + aspect ratio normalization + text overlay
- Output: 15–30 second MP4 (
1080x1920or1920x1080) - Constraints: ffmpeg required, no external paid APIs, runnable on MiniPC
Structure
game-video-ad-pipeline/
├─ SKILL.md
├─ scripts/
│ └─ generate-video.py
└─ references/
├─ RESEARCH.md
├─ AUDIT.md
└─ TEST_REPORT.md
Quick Usage
cd misskim-skills
python3 skills/game-video-ad-pipeline/scripts/generate-video.py \
--game-id steam:570 \
--template action \
--orientation vertical \
--duration 18 \
--output skills/game-video-ad-pipeline/output/dota2-action-vertical.mp4
Landscape ad (1920x1080):
python3 skills/game-video-ad-pipeline/scripts/generate-video.py \
--game-id 730 \
--template puzzle \
--orientation horizontal \
--duration 20 \
--output skills/game-video-ad-pipeline/output/cs2-puzzle-horizontal.mp4
If you want to use a local image/GIF folder as input:
python3 skills/game-video-ad-pipeline/scripts/generate-video.py \
--game-id 999999 \
--input-dir ./my-assets \
--template idle \
--duration 15
Template System
| Template | 톤 | Default Copy |
|---|---|---|
action |
High saturation/high contrast, strong impact emphasis | Play Now |
puzzle |
Bright and clean tone | Challenge Your Brain |
idle |
Soft and stable tone | Start Your Idle Journey |
All templates are implemented as ffmpeg filter chains and behave identically in MiniPC/CLI environments.
Core Pipeline
- Extract screenshot URLs from Steam store HTML (no key/payment)
- Normalize images/GIFs to the target resolution (portrait/landscape)
- Generate per-cut clips and concat
- Overlay title/tagline/CTA text
- Output MP4 (H.264, yuv420p, faststart) and verify playability
Parameter Summary
--game-id(required):570orsteam:570--template:action|puzzle|idle--orientation:vertical|horizontal--duration:15~30초--max-shots: number of screenshots to use (default 6)--title,--tagline,--cta: directly specify overlay text--input-dir: use local media instead of Steam auto-collection--keep-temp: keep intermediate files for debugging
4 Critical Absorption Questions (Application Summary)
- What to take?
- ffmpeg's reliable portability/speed, Remotion's template concept, the workflow structure of competing skills.
- What to discard?
- Dependence on paid generation APIs, forced cloud rendering, excessive JS runtime complexity.
- How to change it to fit our environment?
- Rewrite as a single Python + ffmpeg script, keyless collection via Steam HTML parsing.
- How to measure success?
- Generate a 15–30 second/1080 resolution/playable MP4, MiniPC compatible, cost $0.
Safety/Operations Notes
- No external LLM/paid API calls
- Before running, check that
ffmpeg,ffprobeexists - Render text overlays with Pillow(PIL) so they work even in environments without ffmpeg drawtext
- For large batches, keep
--max-shotsbetween 4 and 8
For detailed rationale, see references/RESEARCH.md, references/AUDIT.md .