AOI Demo Clip Maker
通过终端命令本地制作、裁剪和修剪 hackathon 演示视频,基于 ffmpeg/ffprobe。
通过命令行管理 Tella 视频、剪辑、播放列表及 Webhook,支持自动化编辑与导出。
openclaw skills install @melvynx/tella-cli命令、参数、文件名以原文为准
在需要执行以下操作时使用 tella-cli 技能:
linkScope、密码、允许嵌入的域名、搜索引擎索引video.created、export.ready、transcript.ready 等),并恢复已丢失的消息如果未找到 tella-cli,请先安装并构建:
bun --version || curl -fsSL https://bun.sh/install | bash
npx api2cli bundle tella
npx api2cli link tellaapi2cli link 会自动将 ~/.local/bin 添加到 PATH。CLI 工具将在下一条命令中可用。
程序化调用时,请始终使用 --json 参数。
--json,以便下游步骤能够解析结果<resource> --help 或 <resource> <action> --help,不要猜测delete、remove-*)前,先通过 get/list 确认目标对象<videoId> 和 <clipId> 作为位置参数(顺序为先 videoId 后 clipId)0-1 范围*-ms 标志),除非文档另有说明tella-cli auth set "tella_pk_xxx..." # 从 https://www.tella.tv/settings/api-keys 获取的 API 密钥
tella-cli auth test # 验证密钥是否有效
tella-cli auth show # 显示掩码后的令牌
tella-cli auth remove # 删除存储的令牌令牌存储路径为 ~/.config/tokens/tella-cli.txt(权限设为 600)。
| 操作 | 描述 | 关键参数 |
|---|---|---|
list | 列出工作区中的所有视频 | --cursor, --limit, --playlist-id, --fields |
get <id> | 获取单个视频的元数据 | - |
update <id> | 更新标题、描述、分享设置、播放配置 | --name, --description, --link-scope, --password, --allowed-embed-domains, --custom-thumbnail-url, --default-playback-rate, --captions-default-enabled, --comments-enabled, --comment-emails-enabled, --downloads-enabled, --raw-downloads-enabled, --publish-date-enabled, --search-engine-indexing-enabled, --transcripts-enabled, --view-count-enabled |
delete <id> | 删除视频 | - |
duplicate <id> | 复制视频,可选裁剪 | --name, --trim-start-ms, --trim-end-ms |
export <id> | 启动导出任务 | --resolution (1080p/4k), --fps (30/60), --speed, --granularity (video/clips/raw), --subtitles |
thumbnail <id> | 获取缩略图或动态预览 | --format (jpg/png/webp/gif/mp4), --inpoint-ms, --duration-ms, --width, --height, --download, --response json |
add-collaborator <id> | 添加工作区成员 | --email (必填), `--role editor\ |
大多数剪辑相关命令需以 <videoId> <clipId> 作为位置参数。
Skill: tella-cli
Version: 0.1.0
Chunk: 2/2
| 操作 | 描述 | 关键参数 |
|---|---|---|
list <videoId> | 列出视频的剪辑 | --fields |
get <videoId> <clipId> | 获取单个剪辑 | - |
update <videoId> <clipId> | 重命名或重新排序剪辑 | --name, --order |
delete <videoId> <clipId> | 删除剪辑 | - |
duplicate <videoId> <clipId> | 复制剪辑 | --name, --order |
cut <videoId> <clipId> | 裁剪指定时间范围 | --from-ms(必需),--to-ms(必需) |
reorder <videoId> <clipId> | 移动到新位置 | --order(必需) |
remove-fillers <videoId> <clipId> | 自动移除填充词 | - |
silences <videoId> <clipId> | 列出静音区间 | --min-duration-ms |
transcript-cut <videoId> <clipId> | 编辑后的转录文本(裁剪后) | - |
transcript-uncut <videoId> <clipId> | 原始转录文本 | - |
thumbnail <videoId> <clipId> | 剪辑缩略图/预览 | --format, --inpoint-ms, --duration-ms, --width, --height, --download, --response |
list-sources <videoId> <clipId> | 列出录制源 | --fields |
source-thumbnail <videoId> <clipId> <sourceId> | 源缩略图 | 与剪辑 thumbnail 相同 |
source-waveform <videoId> <clipId> <sourceId> | 音频波形 JSON 数据 | - |
list-blurs <videoId> <clipId> | 列出模糊遮罩 | - |
add-blur <videoId> <clipId> | 添加模糊遮罩 | --start-time-ms, --duration-ms, --point-x, --point-y, --dim-width, --dim-height(全部必需) |
update-blur <videoId> <clipId> <maskId> | 更新模糊遮罩 | 上述任意遮罩参数 |
remove-blur <videoId> <clipId> <maskId> | 删除模糊遮罩 | - |
list-highlights <videoId> <clipId> | 列出高亮遮罩 | - |
add-highlight <videoId> <clipId> | 添加高亮遮罩 | 与 add-blur 相同的遮罩参数 |
update-highlight <videoId> <clipId> <maskId> | 更新高亮遮罩 | 遮罩参数 |
remove-highlight <videoId> <clipId> <maskId> | 删除高亮遮罩 | - |
list-layouts <videoId> <clipId> | 列出布局 | - |
add-layout <videoId> <clipId> | 添加布局(JSON 形状) | --layout(必需,JSON 格式),--start-time-ms, --duration-ms, --transition-style |
update-layout <videoId> <clipId> <layoutId> | 更新布局 | --layout, 时间相关参数,--transition-style |
remove-layout <videoId> <clipId> <layoutId> | 删除布局 | - |
list-zooms <videoId> <clipId> | 列出缩放效果 | - |
add-zoom <videoId> <clipId> | 添加缩放效果 | `--type manualZoom\ |
update-zoom <videoId> <clipId> <zoomId> | 更新缩放效果 | 与 add-zoom 相同 |
remove-zoom <videoId> <clipId> <zoomId> | 删除缩放效果 | - |
遮罩坐标(--point-*, --dim-*, --focus-*)为归一化值,范围是 0-1 的画布比例。
| 操作 | 描述 | 关键参数 |
|---|---|---|
list | 列出所有播放列表 | --visibility(个人/组织),--cursor, --limit, --fields |
get <id> | 获取播放列表详情 | - |
create | 创建新的播放列表 | --name(必需),--description, --emoji, --link-scope, --password, --visibility, --search-engine-indexing-enabled |
update <id> | 更新播放列表 | --name, --description, --link-scope, --password, --search-engine-indexing-enabled |
delete <id> | 删除播放列表 | - |
add-video <id> | 向播放列表添加视频 | --video-id(必需) |
remove-video <id> <videoId> | 从播放列表移除视频 | - |
| 操作 | 描述 | 关键参数 |
|---|---|---|
create-endpoint | 订阅事件 | --url(必需),--filter-types(必需,逗号分隔,如 video.created,export.ready) |
delete-endpoint <id> | 删除端点 | - |
get-secret <id> | 获取签名密钥 | - |
list-messages | 查看最近的交付消息 | --event-types, --limit, --fields |
get-message <id> | 获取特定消息 | - |
可用事件类型包括:video.created, video.viewed, view.milestone, transcript.ready, export.ready, playlist.created, playlist.video_added。
使用 --json 参数返回标准化的封装结构:
{ "ok": true, "data": { ... }, "meta": { "total": 42 } }发生错误时返回:
{ "ok": false, "error": { "message": "...", "status": 401 } }tella-cli --help # 列出所有资源和全局参数
tella-cli videos --help # 列出视频相关操作
tella-cli videos list --help # 显示视频列表的参数
tella-cli clips add-zoom --help # 显示 add-zoom 命令的参数所有命令支持以下参数:--json, --format <text|json|csv|yaml>, --verbose, --no-color, --no-header
退出码说明:
0 = 成功
1 = API 错误
2 = 使用错误
已收录 1 个 Skill