write-post-event-highlight-reel-script
将活动笔记转化为社交平台用的简短回顾脚本。
基于阿里云的云端视频编辑技能,无需本地安装ffmpeg。
openclaw skills install @sdk-team/alibabacloud-video-editor命令、参数、文件名以原文为准
一个自动化的视频编辑工具,可根据提供的素材和编辑需求提交阿里云视频编辑任务,无需安装 ffmpeg,等待任务完成后输出最终视频的 URL。
本技能采用 关注点分离 的设计原则:
LLM 应参考 references/ 中的文档生成符合阿里云 ICE 格式的 Timeline JSON,然后使用 scripts 提交任务。
前置检查:安装 Python 依赖
pip install -r requirements.txt
前置检查:需配置阿里云凭证
脚本会通过阿里云默认凭证链自动获取凭证,支持以下方法(按优先级顺序):
- 环境变量中的凭证
- 配置文件:
~/.alibabacloud/credentials.ini- ECS RAM 角色(在 ECS 上运行时)
推荐使用
aliyun configure命令配置凭证:aliyun configure或参考 [阿里云凭证配置文档](https://help.aliyun.com/document_detail/China Site/2China Site/Chinese2Chinese10China Site/Chinese0China Site/Chinese6China Site/Chinese2China Site.html) 配置默认凭证链。
OSS 存储桶配置
OSS 上传功能需要通过环境变量配置存储桶信息:
export OSS_BUCKET=your_bucket_name export OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com若未配置
OSS_BUCKET,则列出当前账号下的所有存储桶,由用户选择一个作为最终视频的输出存储桶。OSS 操作复用阿里云默认凭证链,无需单独配置 OSS 凭证。
User-Agent 配置
所有阿里云服务调用必须设置 User-Agent 为
AlibabaCloud-Agent-Skills。脚本
scripts/video_editor.py已自动完成该配置。
分析用户希望创建的视频类型:
查阅 references/ 中对应的文档:
| 文档 | 适用场景 |
|---|---|
01-timeline-basics.md | Timeline 基础结构说明 |
02-multi-track-audio.md | 多轨道音频混音 |
03-subtitles-and-titles.md | 字幕与标题效果 |
04-effects-and-transitions.md | 视觉特效与转场 |
05-slideshow-template.md | 相册视频模板 |
06-multi-clip-editing.md | 多片段视频编辑 |
根据参考文档生成符合阿里云 ICE 格式的 Timeline:
{
"VideoTracks": [...],
"AudioTracks": [...],
"SubtitleTracks": [...]
}使用脚本提交任务(基于阿里云通用 SDK):
# 提交并等待完成
python scripts/video_editor.py submit \
--timeline timeline.json \
--output-config output.json \
--wait
# 仅提交,不等待
python scripts/video_editor.py submit \
--timeline timeline.json \
--output-config output.json参数说明:
| 参数 | 描述 | 是否必填 |
|---|---|---|
--timeline, -t | Timeline JSON 文件路径或 JSON 字符串 | 是 |
--output-config, -o | 输出配置 JSON 文件路径或 JSON 字符串 | 是 |
--region, -r | 区域 ID(默认:cn-shanghai) | 否 |
OutputMediaConfig 示例:
{
"MediaURL": "https://{your-bucket}.oss-cn-shanghai.aliyuncs.com/{your-target-video-path}",
"Width": 1080,
"Height": 1920
}若上下文中未明确指定输出分辨率,使用常见分辨率:1080×1920 或 1920×1080。
任务提交后将返回 JobId。
使用脚本查询或等待任务完成:
# 查询状态
python scripts/video_editor.py status --job-id <job_id>
# 等待任务完成
python scripts/video_editor.py status --job-id <job_id> --wait当任务状态为 Success 时,根据返回的 MediaId 调用 GetMediaInfo 获取带鉴权的 OSS URL,并返回该地址。
markdown
{
"VideoTracks": [
{
"VideoTrackClips": [
{
"Type": "Image",
"MediaURL": "https://bucket.oss-cn-shanghai.aliyuncs.com/image1.jpg",
"In": 0,
"Out": 5,
"TimelineIn": 0,
"TimelineOut": 5
},
{
"Type": "Image",
"MediaURL": "https://bucket.oss-cn-shanghai.aliyuncs.com/image2.jpg",
"In": 0,
"Out": 5,
"TimelineIn": 5,
"TimelineOut": 10,
"Effects": [
{
"Type": "Transition",
"SubType": "linearblur",
"Duration": 0.3
}
]
}
]
}
],
"AudioTracks": [
{
"AudioTrackClips": [
{
"Type": "Audio",
"MediaURL": "https://bucket.oss-cn-shanghai.aliyuncs.com/music.mp3",
"In": 0,
"Out": 10,
"TimelineIn": 0,
"TimelineOut": 10,
"Effects": [
{
"Type": "Volume",
"Gain": 0.3
}
]
}
]
}
],
"SubtitleTracks": []
}在生成时间线时,请按以下逻辑思考:
alibabacloud-video-editor/
├── SKILL.md # 本文件
├── references/
│ ├── 01-timeline-basics.md # 时间线基础
│ ├── 02-multi-track-audio.md # 多轨道音频
│ ├── 03-subtitles-and-titles.md # 字幕与标题
│ ├── 04-effects-and-transitions.md # 特效与转场
│ ├── 05-slideshow-template.md # 相册模板
│ └── 06-multi-clip-editing.md # 多剪辑编辑
└── scripts/
├── requirements.txt # Python 依赖
└── video_editor.py # 通用 SDK 脚本已收录 3 个 Skill