video-to-gif
使用 meitu-cli 把视频转 GIF 动图,支持普通 GIF(长边 ≤480px)和透明底 GIF(240×240px)。当用户说视频转 GIF、做表情包、做动图、透明底贴纸、浮动表情时触发。
How do I install this agent skill?
npx skills add https://github.com/meitu/meitu-skills --skill video-to-gifIs this agent skill safe to install?
- Gen Agent Trust Hubfail
This skill converts videos to GIF files using a tool called meitu-cli. It requires access to sensitive credential files on your computer and runs commands that include information from the internet, which could potentially be used to run unauthorized code or access private information if the inputs are not properly handled.
- Socketwarn
1 alert: gptSecurity
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Video To GIF
Overview
调用 meitu video-to-gif 将已有视频转换为 GIF 动图,覆盖 2 类:
- 普通 GIF:
api_video_to_gif,等比例 GIF,长边 ≤480px,适用于微信表情包、社交动图 - 透明底 GIF:
api_convert_video_to_gif,固定 240×240px 透明底,适用于透明贴纸、浮动表情
尺寸不可自定义。不处理:图片转 GIF、GIF 转视频、GIF 编辑、视频拼接、视频配音、视频风格变换。
API Mapping
| 场景 | 后端 API |
|---|---|
| 普通 GIF | api_video_to_gif |
| 透明底 GIF | api_convert_video_to_gif |
Dependencies
- meitu-cli:
>=2.0.6 - 凭证:CONFIG AKSK →
meitu tools update;EXEC AKSK → 跑命令 - 环境变量:
MEITU_OPENAPI_TOOL_TASK_MODE=command
路径别名:
$VISUAL={OPENCLAW_HOME}/workspace/visual/
Core Workflow
Preflight → Execute → Deliver
Preflight
meitu --version≥ 2.0.6;meitu auth verify --json- 确认已跑过 Config Phase;
MEITU_OPENAPI_TOOL_TASK_MODE=command - output_dir 解析:openclaw.yaml →
./output/| else →$VISUAL/output/video-to-gif/;mkdir -p {output_dir}
Execute
触发信号/路由
命中信号词:
api_video_to_gif(普通):转 GIF、做表情包、动图、GIF 转换(无透明需求)api_convert_video_to_gif(透明底):透明底 GIF、透明贴纸、浮动表情、透明背景 GIF
决策顺序:
- Agent 画面识别视频内容生成
prompt(如"人物在纯色背景前做表情""猫咪在户外奔跑") - 按透明底需求分支:
- 需要透明背景(用户明确要求 + 纯色/绿幕/简单背景)→
api_convert_video_to_gif - 否 / 通用 →
api_video_to_gif(默认)
- 需要透明背景(用户明确要求 + 纯色/绿幕/简单背景)→
无法判断 → prompt 写"通用视频"走默认 api_video_to_gif。
参数定义
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
video_url | STRING | 是 | 视频地址;缺失 → "请提供视频链接" |
prompt | STRING | 是 | Agent 对视频内容的描述,用于判断 GIF 类型 |
API 参数映射
两路 API 均直传 video_url:
api_video_to_gif→ 输出等比例 GIF,长边 ≤480pxapi_convert_video_to_gif→ 输出 240×240px 透明底 GIF
工具调用
普通 GIF:
meitu video-to-gif \
--skill_name skill_video-to-gif \
--video_url {video_url} \
--prompt "{content_description}" \
--json --download-dir {output_dir}
透明底 GIF:
meitu video-to-gif \
--skill_name skill_video-to-gif \
--video_url {video_url} \
--prompt "{content_description}" \
--transparent true \
--json --download-dir {output_dir}
错误降级
| 场景 | 处理 |
|---|---|
video_url 缺失 | 提示"请提供视频链接" |
video_url 不可访问 | 直接返回无效错误,不重试 |
| 用户要透明底但视频无透明通道 | 尝试调用透明 API,效果不佳则提示限制 |
| 用户要 >480px 的 GIF | 告知 api_video_to_gif 最大 480px |
| 用户要自定义尺寸透明底 | 告知 api_convert_video_to_gif 固定 240×240px |
| 视频时长过长 | 提示裁剪或降低质量重试 |
api_convert_video_to_gif 超时 | 降级为 api_video_to_gif(放弃透明底)重试,告知透明底暂不可用 |
api_video_to_gif 调用失败 | 重试 1 次,仍失败返回错误 |
| 内容合规拦截 | 直接返回合规提示,不重试 |
| 图片转 GIF / GIF 转视频 / GIF 编辑 | 拒绝,告知能力范围外 |
Deliver
解析 --json → downloaded_files[0].saved_path 或 media_urls[0]。
mv {file} {output_dir}/{YYYY-MM-DD}_{name}_{gif_type}.gif(gif_type = normal | transparent)
Output
- 格式:GIF
- 普通:等比例,长边 ≤480px
- 透明底:240×240px 透明背景
- 命名:
{YYYY-MM-DD}_{descriptive-name}_{normal|transparent}.gif - 位置:项目 →
./output/;一次性 →$VISUAL/output/video-to-gif/
基线 Task ID
t_mt1a3i5n7b1680836b-8e05-47d2-b6f0-3bd10eb0c5d3
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/meitu/meitu-skills/video-to-gif">View video-to-gif on skillZs</a>