Agent skill

Video Merge

by godot-fun in godot-fun/gai

Merges multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between each pair; freeze-pads so total duration equals the sum of sources.

MITAuto-check passedMedia & Creative

Install Video Merge

skills CLI
$ npx skills add godot-fun/gai --skill video-merge -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install godot-fun/gai video-merge --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/video-merge .claude/skills/video-merge && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
video-merge
GitHub stars
183
Token cost
~904 tokens
SKILL.md length
336 words
Files
2
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Merges multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between each pair; freeze-pads so total duration equals the sum of sources.

  • Works in 7 steps: Use the bundled script — do not… → Transition duration is fixed at 0.5s —… → Every clip except the first must be… → …
  • The user wants video merge
  • SKILL.md covers Rules, Quick Start, Output Spec (fixed) and Transition Pool (random per cut), plus 3 more sections
  • Calls python

What it does

Video Merge is an agent skill from godot-fun/gai. Merges multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between each pair; freeze-pads so total duration equals the sum of sources. Exports 3840×2160 60fps H.265 Main10 40Mbps + AAC 320kbps. Use when the user wants video merge, concatenate videos, video concat, transition animation, xfade, join clips, or batch stitch clips with transitions.

Its SKILL.md is about 900 tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It sits in Media & Creative. It works with FFmpeg and Python. The repository describes itself as: A lightweight AI agent and skill workflow framework built with Godot. The licence is MIT.

When your agent uses it

  • The user wants video merge
  • Concatenate videos
  • Transition animation
  • Batch stitch clips with transitions

Example prompts

  • “Use the video-merge skill to merge multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between…”
  • “/video-merge”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Use the bundled script — do not hand-write ffmpeg xfade chains.
  2. Transition duration is fixed at 0.5s — no duration override flag.
  3. Every clip except the first must be longer than 0.5s (incoming side of xfade).
  4. Single file in the folder → re-encode to the output spec with no transition.
  5. Many clips (4K10) auto-chunk (max 4 inputs per filtergraph) to avoid OOM; transitions stay correct across chunk boundaries.
  6. Missing Python/FFmpeg → populate .dependency/ per skill-dependency-manager, retry.
  7. FFmpeg filter details: reference.md

What it can do on your machine

Read from SKILL.md and the folder at commit 6394686. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Video Merge loads about 904 tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 336 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~904

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from godot-fun/gai at commit 6394686, republished under its MIT licence (© godot-fun). 336 words, ~904 tokens.

Download SKILL.mdSave it as .claude/skills/video-merge/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
video-merge
description
Merges multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between each pair; freeze-pads so total duration equals the sum of sources. Exports 3840×2160 60fps H.265 Main10 40Mbps + AAC 320kbps. Use when the user wants video merge, concatenate videos, video concat, transition animation, xfade, join clips, or batch stitch clips with transitions.
disable-model-invocation
true

Video Merge

Concatenate every video in a folder (filename sort) into one high-quality MP4. Between each pair, pick a random FFmpeg xfade transition (0.5s). Audio uses matching acrossfade.

Duration is preserved: each cut freeze-pads the outgoing clip by 0.5s (last frame + silence) before the overlap, so output length equals the sum of source clip durations (not shortened by transitions).

Rules

When this skill applies, read and follow skill-dependency-manager — run scripts as documented, install missing tools into .dependency/.

  • Run merge.py through .dependency/python/python.exe. Never use host python / ffmpeg.
  • Never overwrite sources. Outputs go under video-merge/.
  • Use the bundled script — do not hand-write equivalent FFmpeg commands.
  • Folder input only — pass --folder with a directory of clips (top-level files; no recurse).

Quick Start

bash
.dependency/python/python .ai/video-merge/merge.py --folder path/to/clips

Example:

assets/shots/
  01.mp4
  02.mp4
  03.mp4
→ assets/shots/video-merge/shots.mp4

Output Spec (fixed)

SettingValue
Resolution3840×2160 (scale + letterbox pad)
Frame rate60 fps
VideoH.265 Main10 (libx265, yuv420p10le) @ 40 Mbps
AudioAAC 320 kbps, 48 kHz stereo
Transition0.5 s, random from the pool below (freeze-pad; duration preserved)
Container.mp4 (hvc1 tag)

Transition Pool (random per cut)

fade · dissolve · wipeleft · wiperight · wipeup · wipedown · slideleft · slideright · circlecrop · pixelize · distance · radial · smoothleft · smoothright · circleopen · circleclose · diagtl · diagtr · hblur · zoomin

Each cut independently samples one transition. Printed in the run log.

Common Flags

--folder · -o / --output

bash
.dependency/python/python .ai/video-merge/merge.py --folder clips
.dependency/python/python .ai/video-merge/merge.py --folder clips -o out/final.mp4

Never overwrite source files. Input must be a folder (--folder), not a single video file. Only top-level videos in the folder (no recurse). Supported: .mp4, .mkv, .mov, .avi, .webm, .wmv, .flv, .m4v, .mpeg, .mpg, .ts, .mts, .m2ts, .3gp, .ogv.

Agent Notes

  1. Use the bundled script — do not hand-write ffmpeg xfade chains.
  2. Transition duration is fixed at 0.5s — no duration override flag.
  3. Every clip except the first must be longer than 0.5s (incoming side of xfade).
  4. Single file in the folder → re-encode to the output spec with no transition.
  5. Many clips (4K10) auto-chunk (max 4 inputs per filtergraph) to avoid OOM; transitions stay correct across chunk boundaries.
  6. Missing Python/FFmpeg → populate .dependency/ per skill-dependency-manager, retry.
  7. FFmpeg filter details: reference.md

Tests

From repo root:

bash
.dependency/python/python .ai/video-merge/test_merge.py

Manual CLI examples: cli/video-merge.md

© godot-fun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/video-merge of godot-fun/gai.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit 6394686

Compare with similar skills

Video Merge next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Video Merge compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Video Merge this skillgodot-fun/gai183—~904Automated safety check: PassMIT
Vox DirectorAlisa0808/vox-director2.2k—~5.6kAutomated safety check: PassMIT
Youtube Clipperop7418/Youtube-clipper-skill2.2k—~1.6kAutomated safety check: NotesMIT
Gbro Collage Brollpyang5166/gbro-collage-broll1.3k—~2.6kAutomated safety check: NotesMIT
Ffmpeg Skillkajisho5/ffmpeg-skill1.9k—~7.4kAutomated safety check: PassMIT
Claude Real VideoHUANGCHIHHUNGLeo/claude-real-video2.2k—~639Automated safety check: PassMIT

Similar skills

  • Vox Director

    Alisa0808/vox-director

    Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all…

    2.2k GitHub stars~5.6k tokensUpdated 5 days ago
    Media & CreativeAuto-check passed
  • Youtube Clipper

    op7418/Youtube-clipper-skill

    YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。

    2.2k GitHub stars~1.6k tokensUpdated 8 mo ago
    Media & CreativeAuto-check: notes
  • Gbro Collage Broll

    pyang5166/gbro-collage-broll

    将约 5 秒口播文稿、观点句或抽象概念做成高级 editorial halftone paper-collage / 半调纸拼贴 B-roll。用户说“collage b-roll”“纸拼贴 b-roll”“半调拼贴”“拼贴风格配画面”“用这段文稿做拼贴动画”“gbro-collage-broll”,或希望把一句文稿转成拼贴视觉隐喻时,必须使用此…

    1.3k GitHub stars~2.6k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Ffmpeg Skill

    kajisho5/ffmpeg-skill

    Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…

    1.9k GitHub stars~7.4k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Claude Real Video

    HUANGCHIHHUNGLeo/claude-real-video

    Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.

    2.2k GitHub stars~639 tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • OpenStoryline Install Helper

    FireRedTeam/FireRed-OpenStoryline

    Installs, repairs and starts a local source checkout of FireRed-OpenStoryline, from prerequisites and a venv to resources, config and the MCP and web servers.

    3.5k GitHub stars~1.5k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes

More from godot-fun/gai

All 36 skills in this repo
  • AI Text To Speech

    godot-fun/gai

    Zero-shot text-to-speech with voice cloning via IndexTTS2 (index-tts).

    184 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audio Denoise

    godot-fun/gai

    Reduces background noise in a single audio file using FFmpeg afftdn.

    184 GitHub stars~465 tokensUpdated today
    Auto-check passed
  • Audio Fade

    godot-fun/gai

    Applies fade-in and fade-out at the start and end of a single audio file using FFmpeg.

    184 GitHub stars~652 tokensUpdated today
    Auto-check passed
  • Normalizes a single audio file to consistent LUFS loudness with true-peak limiting using FFmpeg.

    184 GitHub stars~684 tokensUpdated today
    Auto-check passed
  • Standardizes a single audio file to 44100 or 48000 Hz and exports 16-bit PCM WAV using FFmpeg.

    184 GitHub stars~638 tokensUpdated today
    Auto-check passed
  • Audio Split

    godot-fun/gai

    Splits a single audio file into two segments (part 1 before the split point, part 2 after) using FFmpeg.

    184 GitHub stars~554 tokensUpdated today
    Auto-check passed

Works with

Questions about Video Merge

What does Video Merge do?

Merges multiple videos from a folder (sorted by filename) into one clip with a random xfade transition (0.5s) between each pair; freeze-pads so total duration equals the sum of sources. Video Merge is an agent skill from godot-fun/gai.5s) between each pair; freeze-pads so total duration equals the sum of sources.

When should I use Video Merge?

Video Merge fits situations like: the user wants video merge; concatenate videos; transition animation; batch stitch clips with transitions.

How do I install Video Merge in Claude Code?

Run `npx skills add godot-fun/gai --skill video-merge -a claude-code`. Or copy the skill folder (.agents/skills/video-merge in godot-fun/gai) into .claude/skills/video-merge in your project. Claude Code loads it when a task matches its description.

How do I install Video Merge in Codex?

Run `npx skills add godot-fun/gai --skill video-merge -a codex`. Or copy the skill folder (.agents/skills/video-merge in godot-fun/gai) into .agents/skills/video-merge in your project. Codex loads it when a task matches its description.

Can I use Video Merge in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add godot-fun/gai --skill video-merge -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-merge, .gemini/skills/video-merge, .github/skills/video-merge and .opencode/skills/video-merge in your project.

What does Video Merge need to run?

Going by SKILL.md and its folder, Video Merge needs the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Video Merge access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Video Merge safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Video Merge use?

Video Merge is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Video Merge use?

About 904 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Video Merge?

Skills that share tags, products or a category with Video Merge: Vox Director (Alisa0808/vox-director, 2.2k stars), Youtube Clipper (op7418/Youtube-clipper-skill, 2.2k stars), Gbro Collage Broll (pyang5166/gbro-collage-broll, 1.3k stars) and Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Video Merge?

godot-fun (a GitHub organization) maintains it in godot-fun/gai, which has 183 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 10, 2026.

Source: godot-fun/gai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.