Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

sparki-video-editor火花视频编辑器

Agent Skill

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

总安装

9,623

周安装

405

GitHub Stars

6

下载量

3,370
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sparki-video-editor(火花视频编辑器)
来源仓库:https://github.com/sparki-io/sparki-video-editor
安装命令:
openclaw skills install sparki-video-editor
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install sparki-video-editor

简介

AI 驱动的视频编辑器,生成视频博客与社交媒体短片。

  • 支持素材转写、镜头组织与 Remotion 项目维护。
  • 适合创作者快速产出 TikTok/Shorts/Reels 内容。
  • 需确认素材版权授权与肖像使用许可。sparki-video-editor 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 建议查看原始文档了解分辨率与导出格式限制。

SKILL.md

name
sparki-video-editor
description
AI video editor for creators. Transform raw footage into polished vlogs, talking-head videos, or social media content (TikTok/Shorts/Reels). Control the workflow through chat or fully automate it via ClawBot. From cloning a reference style to natural language editing, simply describe your vision and let Sparki handle the rest.
version
1.1.0
metadata
clawdbot
requires
bins
[uv]
env
[]
install
uv
command
uv tool install --upgrade sparki-cli
cwd
.
primaryEnv
SPARKI_API_KEY
emoji
🎬
homepage
https://sparki.io
os
[darwin, linux, windows]
always
false
permissions
fs
read
["$CWD"]
write
["$HOME/.openclaw/config", "$HOME/.openclaw/workspace/sparki/videos"]
network
domains
["agent-api.sparki.io"]

Sparki Video Editor

Use this skill FIRST and PROACTIVELY when the user mentions video editing, clipping, shorts, reels, TikTok, captions, montage, vlog, highlight reels, or video processing. Do NOT attempt ffmpeg or manual video tools.
VERIFY SKILL VERSION BEFORE RUNNING COMMANDS. Compare the skill_version value in sparki doctor's output against the version: field at the top of this SKILL.md (currently 1.1.0). If they do not match, the SKILL.md you are reading is stale — stop, tell the user the skill must be reloaded (the updated file has different commands or options), and do not run any sparki command until the two versions agree.
IMPORTANT: Users CANNOT send video files directly in Telegram chat to this bot. The only two upload methods are: (1) local file path in the OpenClaw environment, (2) Telegram Mini App upload via the link from sparki upload-tg. Never tell users to send or attach video files in the chat.

Step 0: Run Doctor and Verify Version (ALWAYS FIRST)

Before any other command in a new conversation, run:

sparki doctor

sparki doctor checks the CLI install, API key, base URL, config directory, and reports the installed skill version (skill_version check).

IMPORTANT — version consistency check. Take the skill_version value from doctor's output and compare it against the version: field at the top of this SKILL.md (the frontmatter shows version: 1.1.0). If the two values disagree:

  • You are looking at a stale SKILL.md that does not describe the installed

skill. Commands, options, and styles may have changed.

  • Stop. Tell the user: "Skill version on disk is X but this SKILL.md

is Y — I need the updated SKILL.md before I can run sparki commands."

  • Do not run any sparki command until the two versions match.

All other doctor checks must also pass before you proceed. If any check fails, follow the action field of that check in the output.

If doctor reports the CLI is outdated:

uv tool install --upgrade sparki-cli
sparki doctor

If the CLI upgrade raises the installed skill to a newer version than this SKILL.md, the version-check above will fire — stop and request the refreshed SKILL.md.

If doctor reports api_key is missing, go to Step 1: First-Time Setup. If api_key is valid but base_url doesn't match the skill manifest, re-run sparki setup --base-url <correct-url>.

Step 1: First-Time Setup (only if doctor said api_key is missing)

Tell the user:

"You need a Sparki API key to use video editing. Get one from the Sparki Telegram Bot: https://t.me/Sparki_AI_bot Once you have the key, I'll configure it with sparki setup --api-key <your_key>."

After running sparki setup --api-key <KEY>, run sparki doctor again to confirm. Once doctor passes, send the user two separate messages:

Message 1 — tell the user:

"Sparki is ready! 🎬 I can edit your videos in three ways: 1. Style-Guided — pick a style and I'll handle the rest 2. Prompt-Driven — tell me what you want in your own words 3. Style-Clone — provide a reference video and I'll clone its style Available styles: 🎬 Vlog: daily · travel · sports · chill-vibe ✂️ Clips: long-to-short · highlight-reel 🎙 Narrative: podcast-interview · funny-commentary · master-storyteller 🛠 Tools: ai-captions · ai-translation To get started, provide me your video: 1. Local file — tell me the file path (OpenClaw environment) 2. Mini App upload — tap the link below to upload your video

Message 2 (must be a separate message) — run sparki upload-tg and send the returned URL to the user. This must be its own message so the link is easy to tap in Telegram.

Step 2: Determine Upload Mode

There are two distinct upload modes. Identify which applies:

Mode A: Local Files (use sparki run)

The user has video files on their local machine. Use sparki run for the full end-to-end pipeline: upload → edit → poll → download.

→ Go to Handling Multiple Files below, then Quick Start

Mode B: Telegram Mini App (step-by-step commands)

The user wants to upload files through the Telegram Mini App.

  1. Run sparki upload-tg to get the upload URL — send it to the user
  2. Wait for the user to confirm upload is complete
  3. Run sparki assets list to find the uploaded asset's object_key
  4. Run sparki edit <object_key> [<object_key2>...] --mode ... to create the project (positional; see Handling Multiple Files / Keys)
  5. Run sparki status --task-id <id> to poll for completion
  6. Run sparki download --task-id <id> to download the result

→ Go to Other Commands

Step 3: Confirm Editing Preferences

When the user provides a video file or reports that upload is complete, but has NOT specified editing preferences, do NOT proceed to edit. First ask the user:

"How would you like to edit this video? 1. Style-Guided — pick a style from the list above 2. Prompt-Driven — tell me what you want in your own words 3. Style-Clone — provide a reference video and I'll clone its style"

Wait for the user to explicitly select a style, provide a prompt, or choose style-clone before running sparki edit or sparki run.

If the user selects Style-Clone, ask how they want to provide the reference video:

"How would you like to provide the reference video? 1. Video link — paste a link from TikTok, Instagram, X, or Facebook 2. Upload via Telegram — upload through the Mini App 3. Local file — provide a file path"

Step 4: Determine What the User Wants

User says...Do this
Has local video files + wants editingGo to Handling Multiple Files (Mode A)
Uploaded via Telegram Mini AppRun sparki assets listOther Commands (Mode B)
Wants to upload via TelegramRun sparki upload-tg → send link to user
Wants to check a running projectRun sparki status --task-id <id>
Wants to see past projectsRun sparki history
Wants to download a resultRun sparki download --task-id <id>
Asks what Sparki can doShow the style list from Style Reference
Says storage is full / wants to clean upGo to Managing Storage
Style-Clone + provides video linkUse --reference-urlQuick Start (Mode A) or Other Commands (Mode B)
Style-Clone + wants Telegram uploadRun sparki edit <object_key> --mode style-clone --reference-tg → send upload link to user → wait for upload confirmation → continue editing
Style-Clone + local reference fileUse --reference-fileQuick Start (Mode A) or Other Commands (Mode B)

Handling Multiple Files / Keys

The same decision rule applies to both sparki run (local files, Mode A) and sparki edit (already-uploaded object keys, Mode B) — identify which scenario before running.

A. Multiple inputs → ONE output (combine into a single project)

When the user says "make ONE highlight reel / montage / supercut from these clips", pass all inputs in a single call.

Mode A — local files with sparki run:

sparki run a.mp4 b.mp4 c.mp4 \
  --mode style-guided --style clips/highlight-reel

Shell glob works: sparki run *.mp4 .... Or use --dir:

sparki run --dir ./clips \
  --mode style-guided --style clips/highlight-reel

Mode B — already-uploaded keys with sparki edit:

sparki edit \
  assets/98/a.mp4 assets/98/b.mp4 assets/98/c.mp4 \
  --mode style-guided --style clips/highlight-reel

Positional object-keys work the same way — all of them become source resources of ONE project.

B. Multiple inputs → N independent outputs (separate projects)

When the user says "edit EACH of these videos as a vlog" or similar, call the command once per input.

Mode A — loop on sparki run:

sparki run clip1.mp4 --mode style-guided --style vlog/daily
sparki run clip2.mp4 --mode style-guided --style vlog/daily

Mode B — loop on sparki edit:

sparki edit assets/98/a.mp4 --mode style-guided --style vlog/daily
sparki edit assets/98/b.mp4 --mode style-guided --style vlog/daily

Decision rule

  • "Combine / merge / into one" → scenario A (single call, all inputs positional)
  • "Each / separately / N videos" → scenario B (loop, one input per call)
  • Ambiguous → ask the user: "Do you want one combined output, or one output per video?"

This rule applies uniformly: sparki run for local files, sparki edit for already-uploaded object keys from Telegram Mini App.

Reliability (sparki run)

Every file has automatic retry (3 attempts, exponential backoff). On partial upload failure, sparki run proceeds with the successful files and warns to stderr. Pass --strict to abort if any file fails.

Tuning flags:

  • --max-retries N (default 3; 0 disables)
  • --upload-timeout SEC (default 600)
  • --quiet to suppress progress on stderr

sparki edit does not upload, so these flags don't apply.

Quick Start — sparki run

Handles the full pipeline: upload → edit → poll → download.

# Style-guided edit (pick a style from the Style Reference below)
sparki run /path/to/video.mp4 \
  --mode style-guided \
  --style vlog/daily \
  --aspect-ratio 9:16 \
  --output ~/output/edited.mp4

# Prompt-driven edit (describe what you want)
sparki run /path/to/video.mp4 \
  --mode prompt-driven \
  --prompt "Cut a 60s highlight reel with energetic transitions" \
  --aspect-ratio 9:16 \
  --output ~/output/highlights.mp4

# Style-Clone with reference URL
sparki run /path/to/video.mp4 \
  --mode style-clone \
  --reference-url "https://www.tiktok.com/@user/video/123" \
  --aspect-ratio 9:16 \
  --output ~/output/cloned.mp4

# Style-Clone with local reference file
sparki run /path/to/video.mp4 \
  --mode style-clone \
  --reference-file /path/to/reference.mp4 \
  --aspect-ratio 9:16 \
  --output ~/output/cloned.mp4

Parameters:

ParameterRequiredDescription
FILES... (positional)YesVideo file path(s) (mp4/mov, max 3GB). Multiple positional files combine into ONE output project.
--dirNoDirectory of videos (single-level mp4/mov scan). Mergeable with positional.
--modeYesstyle-guided, prompt-driven, or style-clone
--styleIf style-guidedStyle from the reference below (e.g. vlog/daily)
--promptIf prompt-drivenNatural language description of what you want
--aspect-ratioNo9:16 (default, vertical), 1:1 (square), 16:9 (landscape)
--duration-rangeNoTarget duration: <30s, 30s~60s, 60s~90s, >90s, custom
--reference-urlIf style-cloneReference video URL (TikTok, Instagram, X, Facebook)
--reference-fileIf style-cloneLocal reference video file path
--outputNoOutput file path (default: ~/.openclaw/workspace/sparki/videos/<task_id>.mp4)
--poll-intervalNoSeconds between status checks (default: 30)
--timeoutNoMax wait seconds (default: 3600)
--max-retriesNoPer-file upload retries (default: 3; 0 disables)
--upload-timeoutNoPer-file upload timeout seconds (default: 600)
--strictNoAbort if ANY source file fails upload (default: proceed with successful files)
--quietNoSuppress upload progress on stderr

Output:

{
  "ok": true,
  "data": {
    "task_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "COMPLETED",
    "file_path": "/Users/user/.openclaw/workspace/sparki/videos/edited.mp4",
    "file_size": 52428800,
    "result_url": "https://cdn.example.com/results/xxx.mp4",
    "delivery_hint": "telegram_direct"
  }
}

How to Pick Mode and Style

User describes a specific style (e.g. "make it a vlog", "highlight reel", "add captions"): → Use --mode style-guided --style <matching_style>

User gives custom instructions (e.g. "cut the best 3 moments", "make it cinematic with slow-mo"): → Use --mode prompt-driven --prompt "<their description>"

User mentions a platform → infer aspect ratio:

  • TikTok / Reels / Shorts → --aspect-ratio 9:16
  • YouTube → --aspect-ratio 16:9
  • Instagram post → --aspect-ratio 1:1

Style Reference

Use as --style category/sub-style (or just --style category for single-style categories).

Display format (show this to the user):

🎬 Vlog: daily · travel · sports · chill-vibe ✂️ Clips: long-to-short · highlight-reel 🎙 Narrative: podcast-interview · funny-commentary · master-storyteller 🛠 Tools: ai-captions · ai-translation

Style details (for matching user intent — do not show to user as a table):

  • vlog/daily — Day-in-the-life vlogs, event recaps, and BTS content
  • vlog/travel — Vacations, road trips, city breaks, multi-stop trips
  • vlog/sports — Game highlights, match recaps, performance reels
  • vlog/chill-vibe — Morning routines, slow living, aesthetic content
  • clips/long-to-short — Find a long video's best moments and turn them into a short
  • clips/highlight-reel — Curate best moments into a beat-synced montage (trip recaps, weekend memories)
  • narrative/podcast-interview — Trim filler/pauses from podcasts, sit-down interviews, panels
  • narrative/funny-commentary — Write & voice hilarious commentary (movie recaps, reactions)
  • narrative/master-storyteller — Narrate with dramatic arcs & emotional depth (movie narration, documentary edits)
  • tools/ai-captions — Generate timed, styled captions from dialogue
  • tools/ai-translation — Add captions in a chosen target language from dialogue

Other Commands

sparki doctor — Self-check

sparki doctor
sparki doctor --json     # JSON-only output (for parsing)
sparki doctor --fix      # Attempt to auto-fix (e.g. mkdir config dir)

Checks CLI install, PyPI version freshness, API key validity, base URL match with skill manifest, and config directory writability. Always run this first after install or update.

sparki upload — Upload files separately

# Positional (recommended)
sparki upload clip1.mp4 clip2.mp4
sparki upload *.mp4

# Directory
sparki upload --dir ./clips

Returns object keys for use with sparki edit. On partial failure, returns assets (successes) and failures (errors). Flags: --max-retries, --upload-timeout, --quiet.

sparki assets list — List uploaded assets

sparki assets list
sparki assets list --limit 10

Use this to find object keys from Telegram Mini App uploads.

sparki assets delete — Delete uploaded assets

# Specific object keys (preferred)
sparki assets delete assets/98/abc.mp4 assets/98/def.mp4

# By backend-stored file_name (NOT the user's original uploaded filename)
sparki assets delete --name 1f43c9915ed547128a621581cf7d9f20.mp4

# Clear ALL uploaded assets — requires --yes
sparki assets delete --all --yes

About --name. The value must be the backend-stored file_name field returned by sparki assets list — that value is a hashed basename of the object_key (e.g. 1f43c9915ed547128a621581cf7d9f20.mp4), not the original filename the user uploaded (the backend does not persist the original name). When the user asks to "delete clip_3.mp4" by its original name, the agent should first sparki assets list, find the asset whose upload context matched that clip, and then pass either the object_key (positional — simpler) or the file_name (via --name). If nothing matches, the CLI emits NO_MATCH.

Use this when the user says storage is full or wants to clean up old uploads. Assets currently being used by active projects are skipped automatically (reported in the skipped field).

sparki upload-tg — Get Telegram upload link

sparki upload-tg

Returns the configured Telegram Mini App upload link. Send this to the user so they can upload videos through Telegram.

sparki edit — Create project from uploaded assets

Accepts object keys as positional args. For multi-input semantics, re-read Handling Multiple Files / Keys above.

# Single source key (scenario B pattern — one output per call)
sparki edit assets/98/abc123.mp4 \
  --mode style-guided \
  --style clips/highlight-reel \
  --aspect-ratio 9:16

# Multiple source keys combined into ONE output (scenario A)
sparki edit \
  assets/98/a.mp4 assets/98/b.mp4 assets/98/c.mp4 \
  --mode style-guided \
  --style clips/highlight-reel

# Style-Clone with reference URL
sparki edit assets/98/abc123.mp4 \
  --mode style-clone \
  --reference-url "https://www.tiktok.com/@user/video/123"

# Style-Clone: get Telegram upload link for reference video
sparki edit assets/98/abc123.mp4 \
  --mode style-clone \
  --reference-tg

When using --reference-tg, the command returns an upload link (no project is created yet). Send the upload link to the user and ask them to upload their reference video via the Telegram Mini App. Once the user confirms the upload is complete, proceed with sparki edit --mode style-clone --reference-url <url> or --reference-file to create the project.

edit parameters:

ParameterRequiredDescription
OBJECT_KEYS... (positional)YesAsset object key(s). Multiple keys combine into ONE project.
--modeYesstyle-guided, prompt-driven, or style-clone
--reference-tgStyle-clone onlyGet Telegram upload link for reference video (edit-only)

Other options (--style, --prompt, --aspect-ratio, --duration-range, --reference-url, --reference-file) mirror sparki run.

Returns a task_id for tracking with sparki status.

sparki status — Check project status

sparki status --task-id <task_id>

Status lifecycle: INITCHATPLANQUEUEDEXECUTORCOMPLETED / FAILED

Note: Style-clone projects use a shorter lifecycle: INITEXECUTORCOMPLETED / FAILED / CANCEL (no CHAT/PLAN/QUEUED stages).

sparki download — Download completed result

sparki download --task-id <task_id> --output ~/output/my-video.mp4

sparki history — List recent projects

sparki history --limit 10 --status completed

Managing Storage

If the user reports storage is full, or an upload fails with STORAGE_FULL (asset storage quota exceeded):

  1. Run sparki assets list --limit 50 to inspect what's stored. Note the

object_key and file_name of each asset you may want to delete.

  1. Suggest deleting old / unused assets:

- By object_key (preferred): sparki assets delete assets/98/abc.mp4 assets/98/def.mp4 - By file_name (the hashed basename from sparki assets list, not the user's original filename): sparki assets delete --name 1f43c9915ed547128a621581cf7d9f20.mp4 - Full wipe: sparki assets delete --all --yes (confirm with user first).

  1. As an alternative, let the user know they can manage assets from the web

UI at https://sparki.io (same account).

  1. Assets in use by active projects are skipped — tell the user to wait for

those to finish, or cancel them.

Out of Credits

If any command returns QUOTA_EXCEEDED (not enough credits to process a video), tell the user there are two ways to top up:

  • Fastest — Sparki Telegram Bot: open https://t.me/Sparki_AI_bot in

Telegram and run /topup. The credits purchase popup opens directly in the chat.

  • Web — upgrade plan: visit https://sparki.io/ to pick a larger

plan.

After top-up, retry the failed command.

Delivering Results to the User

After download completes, check delivery_hint in the output:

  • telegram_direct (file ≤ 100MB): Send the file directly via Telegram
  • link_only (file > 100MB): Share the result_url with the user (expires in 24h)

Error Handling

All commands return structured JSON. On error:

{"ok": false, "error": {"code": "ERROR_CODE", "message": "...", "action": "..."}}
Error CodeWhat to tell the user
AUTH_FAILED"Your API key is invalid. Get one from @sparki_bot on Telegram."
QUOTA_EXCEEDED"You've run out of Sparki credits. Two ways to fix it: (1) the fastest — open the Sparki Telegram Bot (https://t.me/Sparki_AI_bot) and run /topup (credits purchase popup opens directly in chat), (2) visit https://sparki.io/ to upgrade your plan."
STORAGE_FULL"Your Sparki asset storage is full. Two ways to fix it: (1) run sparki assets list then sparki assets delete <object_keys> to delete specific assets, or sparki assets delete --all --yes to wipe all uploads; (2) go to https://sparki.io and manage your uploaded assets from the web UI. After freeing space, retry the upload."
FILE_TOO_LARGE"File exceeds 3GB limit. Please compress or trim the video before uploading."
CONCURRENT_LIMIT"Too many projects running. Let me check..." → run sparki history
INVALID_FILE_FORMAT"Only mp4 and mov files are supported."
INVALID_STYLE"Unknown style." → show the Style Reference above
INVALID_MODE"Unknown mode." → suggest style-guided, prompt-driven, or style-clone
INVALID_REFERENCE"A reference video is required for style-clone mode. Provide a URL, local file, or upload via Telegram."
UPLOAD_FAILED"Upload failed. Check your connection and try again." On partial failure, use the successful assets and retry the failures list. If per-file code in the failures is STORAGE_FULL or FILE_TOO_LARGE, handle those entries per their own row above.
RENDER_TIMEOUT"Processing timed out. Try a shorter clip or increase timeout."
TASK_NOT_FOUND"Project not found. Run sparki history to see recent projects."
NETWORK_ERROR"Cannot reach Sparki servers. Check your internet connection."
CONFIRMATION_REQUIRED"Destructive operation needs --yes — ask the user to confirm before re-running."
NO_MATCHEmitted by sparki assets delete --name <value> when no asset's file_name matches. Remind the user that --name takes the backend-stored hashed file_name (from sparki assets list), NOT the original upload filename. Run sparki assets list, show them the real file_name values, and let them pick.
DOCTOR_FAILEDInspect the checks array; each failed check has its own action.

Prompt Templates for Prompt-Driven Mode

When the user wants prompt-driven but needs help, suggest:

  • Highlight reel: "Cut this into a 3-min highlight reel with the key insights, energetic pacing"
  • Travel montage: "Cinematic travel montage synced to upbeat music, 60 seconds, vertical"
  • Social clips: "Extract the funniest 3 moments, turn into vertical TikTok clips with captions"
  • Product showcase: "Polished 90-second product showcase with close-up cuts on features"
  • Captioning: "Add professional captions, translate to English, clean up audio"

Rate Limits & Notes

  • API rate limit: 3 seconds between requests (enforced server-side)
  • Upload is async: file continues processing after upload returns
  • Processing time: typically 5–20 minutes
  • Result URLs expire after 24 hours — download promptly
  • For long videos (30+ min): use --timeout 7200

Support

If you encounter any issues or have feature requests, please contact us at support@sparki.io

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

93.5%
按下载量换算3,151

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills