首页龙虾技能列表 › Video Editing Agent (VEA) — 技能工具

Video Editing Agent (VEA) — 技能工具

v1.1.2

[自动翻译] Video Editing Agent (VEA) for automated video processing, highlight generation, and editing. Use when asked to index videos, create highlight reels, g...

1· 528·1 当前·1 累计
下载技能包 项目主页
License
MIT-0
最后更新
2026/4/10
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
The skill mostly looks like a legitimate video-editing helper but has several inconsistencies and risky install/runtime steps you should review before use.
评估建议
This skill appears to be a legitimate video-editing service but contains several red flags you should address before installing: (1) The registry only lists MEMORIES_API_KEY, yet the code and docs require Google, ElevenLabs, and Soundstripe API keys plus possible GCP auth—verify whether you need to supply all of them. (2) The install instructions include running a remote install script (curl | sh); avoid blindly running it—review the script or install dependencies via trusted package managers. (...
详细分析 ▾
用途与能力
The declared registry requirements list only MEMORIES_API_KEY and ffmpeg, but the SKILL.md and included files clearly require multiple other API keys (GOOGLE_API_KEY, ELEVENLABS_API_KEY, SOUNDSTRIPE_KEY) and GCP auth for full functionality. That mismatch between what's declared and what's actually needed is incoherent.
指令范围
Runtime instructions instruct cloning a GitHub repo, running a remote installer (curl | sh), running gcloud auth, starting a local server, and sending video frames/text to external services (Memories.ai, ElevenLabs, Soundstripe). The instructions also expect you to store API keys in a local config.json which the scripts read. Those steps transmit user data outside the local machine and go beyond simple local ffmpeg processing.
安装机制
Although the registry lists 'instruction-only', SKILL.md recommends running curl -LsSf https://astral.sh/uv/install.sh | sh to install the 'uv' package manager. Executing a remote install script is higher-risk than using a curated package and should be reviewed or replaced with a pinned release. Git cloning from GitHub is normal but no release pinning is recommended.
凭证需求
Registry metadata declares only MEMORIES_API_KEY as required, but the config schema and scripts require/consume GOOGLE_API_KEY, ELEVENLABS_API_KEY, SOUNDSTRIPE_KEY, and possibly GCP credentials. Requiring multiple unrelated third‑party credentials (and loading them into env vars via config.json) is disproportionate to a simple local ffmpeg-based editor and increases data-exposure risk.
持久化与权限
The skill does not request always: true and does not modify other skills. It runs a local server (localhost:8000), creates tmux/nohup processes and writes outputs/logs under ~/vea and /tmp. Running a persistent local server is expected for this functionality but increases blast radius if API keys or incoming requests are misconfigured.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.1.22026/2/24

Made MEMORIES_API_KEY required (video indexing & comprehension). Reordered API keys table.

● 可疑

安装命令 点击复制

官方npx clawhub@latest install vea
镜像加速npx clawhub@latest install vea --registry https://cn.clawhub-mirror.com

技能文档

Installation

VEA is open source! Get it from GitHub:

# Clone the repo
git clone https://github.com/Memories-ai-labs/vea-open-source.git
cd vea-open-source

# Install uv package manager curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies uv sync source .venv/bin/activate

# Copy config and add your API keys cp config.example.json config.json

📄 Paper: https://arxiv.org/abs/2509.16811 💻 Code: https://github.com/Memories-ai-labs/vea-open-source

Requirements

  • Python 3.11+
  • FFmpeg - Must be installed on system
  • uv - Package manager (installed above)
  • API Keys (in config.json):
- MEMORIES_API_KEY (required) - Video indexing & comprehension - Get at https://memories.ai/app/service/key - GOOGLE_API_KEY (required) - Script generation - Google Cloud Console - ELEVENLABS_API_KEY (required) - TTS narration & subtitles - SOUNDSTRIPE_KEY (optional) - Background music selection

Install FFmpeg

OSCommand
Ubuntu/Debiansudo apt install ffmpeg
macOSbrew install ffmpeg
WindowsDownload from ffmpeg.org

Start Server

gcloud auth application-default login  # Authenticate GCP
source .venv/bin/activate
python -m src.app

Server runs at http://localhost:8000

Privacy Note

  • Videos processed locally by VEA server
  • Video frames sent to Memories.ai for AI comprehension
  • ElevenLabs receives text for TTS narration
  • All intermediate files stored locally in data/outputs/

# Video Editing Agent (VEA)

Local video editing service at http://localhost:8000. Runs from ~/vea.

⚠️ User Interaction Flow (MUST FOLLOW)

Before processing any video edit request, show config options and wait for confirmation:

📹 VEA Video Edit Configuration

🎬 Source Video: [video path/name] 📝 Edit Request: [user's prompt]

Please confirm the following settings: ┌─────────────────┬────────┬─────────────────────────┐ │ Setting │ Value │ Description │ ├─────────────────┼────────┼─────────────────────────┤ │ 🔊 Original Audio │ ❌ OFF │ Keep original video sound │ │ 🎤 Narration │ ✅ ON │ AI-generated voiceover │ │ 🎵 Background Music │ ✅ ON │ Auto-select from Soundstripe │ │ 📝 Subtitles │ ✅ ON │ Auto-generate and burn-in │ │ 📐 Aspect Ratio │ 16:9 │ 16:9 / 9:16 vertical / 1:1 │ │ 🎼 Snap to Beat │ ❌ OFF │ Sync cuts to music beats │ └─────────────────┴────────┴─────────────────────────┘

Reply "confirm" to start editing, or tell me which settings to adjust.

Default Settings:

  • original_audio: false (mute original, use narration instead)
  • narration: true (enable AI voiceover)
  • music: true (enable background music)
  • subtitles: true (enable subtitles)
  • aspect_ratio: 1.78 (16:9 landscape)
  • snap_to_beat: false (no beat sync)

Aspect Ratio Options:

  • 16:9 (1.78) — Landscape, YouTube
  • 9:16 (0.5625) — Vertical, TikTok/Reels
  • 1:1 (1.0) — Square, Instagram

Quick Start

# Start VEA server (use tmux for long tasks)
cd ~/vea && source .venv/bin/activate && python src/app.py

Core Workflows

1. Index a Video (Required First Step)

Before any editing, index the video to enable AI comprehension:

curl -X POST "http://localhost:8000/video-edit/v1/index" \
  -H "Content-Type: application/json" \
  -d '{"blob_path": "data/videos/PROJECT_NAME/video.mp4"}'

Creates ~/vea/data/indexing/PROJECT_NAME/media_indexing.json.

2. Generate Highlight Reel

curl -X POST "http://localhost:8000/video-edit/v1/flexible_respond" \
  -H "Content-Type: application/json" \
  -d '{
    "blob_path": "data/videos/PROJECT_NAME/video.mp4",
    "prompt": "Create a 1-minute highlight reel of the best moments",
    "video_response": true,
    "original_audio": false,
    "music": true,
    "narration": true,
    "aspect_ratio": 1.78,
    "subtitles": true
  }'

Parameters:

  • video_response: true — Generate video output (vs text-only)
  • original_audio: false — Mute original audio, use narration
  • music: true — Add background music (requires Soundstripe API)
  • narration: true — Generate AI voiceover (ElevenLabs)
  • subtitles: true — Burn subtitles into video
  • aspect_ratio — 1.78 (16:9), 1.0 (square), 0.5625 (9:16 vertical)

3. Manual Video Assembly

For more control, use the helper scripts:

# Add background music to existing video
python ~/vea/scripts/add_soundstripe_music.py

# Generate video with subtitles python ~/vea/scripts/add_music_subtitles.py

Directory Structure

~/vea/
├── data/
│   ├── videos/PROJECT_NAME/      # Source videos
│   ├── indexing/PROJECT_NAME/    # media_indexing.json
│   └── outputs/PROJECT_NAME/     # Final outputs
│       ├── PROJECT_NAME.mp4      # Final video
│       ├── clip_plan.json        # Clip timestamps + narration
│       ├── narrations/           # TTS audio files
│       ├── subtitles/            # SRT files
│       └── music/                # Background music
├── config.json                   # API keys configuration
└── src/app.py                    # FastAPI server

API Keys (in config.json)

KeyServicePurposeRequired
MEMORIES_API_KEYMemories.aiVideo indexing & comprehension✅ Yes
GOOGLE_API_KEYGeminiScript generation✅ Yes
ELEVENLABS_API_KEYElevenLabsTTS narration, STT subtitles✅ Yes
SOUNDSTRIPE_KEYSoundstripeBackground music selectionOptional

Common Issues

"ViNet assets not found" — Dynamic cropping disabled. Set enable_dynamic_cropping: false in config.json.

Subprocess fails from API but works manually — Run server in tmux to preserve environment.

Music download 401/403 — Check Soundstripe API key validity.

Clip timestamps wrong — Ensure original_audio: true to enable timestamp refinement via transcription.

Manual Music Addition

When Soundstripe fails, manually download and mix:

# Download from Soundstripe API
SOUNDSTRIPE_KEY=$(jq -r '.api_keys.SOUNDSTRIPE_KEY' ~/vea/config.json)
curl -s "https://api.soundstripe.com/v1/songs/TRACK_ID" \
  -H "Authorization: Token $SOUNDSTRIPE_KEY" | jq '.included[0].attributes.versions.mp3'

# Mix with ffmpeg (15-20% music volume) ffmpeg -y -i video.mp4 -i music.mp3 \ -filter_complex "[1:a]volume=0.18,afade=t=out:st=70:d=4[m];[0:a][m]amix=inputs=2:duration=first[a]" \ -map 0:v -map "[a]" -c:v copy -c:a aac output.mp4

References

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务