alien peditor · öffentlicher Open Skill
alien peditor
alien peditor ist ein öffentlicher Open Skill auf Digen. Öffne ihn, um zu sehen, was dieser Workflow erstellt.
Trailer
2 0 4
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4280049/2026-10-18/svvy79g6.jpg
---
allowed-tools:
- probe_media
- extract_clip
- extract_frame
- extract_audio
- mix_clips
- transcribe_audio
- recognize_video
- generate_music
- create_document
- update_document
- get_document
---
# Video Editor
Edit and post-produce a video the user already has. This skill works on **existing** media (uploaded or on the canvas) — it does **not** generate new video from text.
## When to use
- User wants to trim/cut a video, keep only certain time ranges, or split it into clips.
- User wants to stitch/concatenate multiple clips into one video, or reorder clips.
- User wants to add/replace background music while keeping the picture, or add a voiceover.
- User wants burned-in subtitles/captions (auto-transcribe the audio, then embed them).
- User wants to export the audio track, or grab a thumbnail/cover frame.
- User wants to check duration/resolution/codecs before editing.
## Steps
1. **Identify the source video(s).** Use the `asset_id` (or `s3://` uri) of the uploaded/canvas video. If the user gave a social link (YouTube/TikTok/IG), resolve it first with `download_video`; otherwise use the asset directly.
2. **Probe before you cut.** When positions come from the user or a guess, call `probe_media(url)` first to get `duration`, `width`, `height`, `fps`, and `has_audio`. Never cut/extract at a time beyond the real duration (a positive timestamp past the end fails the whole task). If the user wants audio work, confirm `has_audio` is true before `extract_audio`.
3. **Pick the tool for the requested edit:**
- **Trim / cut / split** → `extract_clip(url, segments=[{start, duration} or {start, end}])`. Each segment becomes its own independent video. Use `accurate=true` only when frame-accurate boundaries matter; default `false` is a fast lossless keyframe-aligned cut. Pass `name` (e.g. "Clip 1") and `entity_type='video_clips'`.
- **Stitch / concatenate / reorder / add music / burn subtitles** → `mix_clips(clips=[...])`. Each clip takes `video` (or `videos` to concatenate) and `audio`/`audios` (to mix in music or a voiceover). Pass `name` (e.g. "Final cut") and `entity_type='final_videos'`. Set `orientation` to match the source clips.
- **Add/replace background music** → first `generate_music(prompt=..., name=..., entity_type='music')` (or use an uploaded track), then feed it as an `audio` track in `mix_clips` alongside the video.
- **Subtitles / captions** → `transcribe_audio(audio_url=<video's audio>)` to get the transcript/SRT, then pass the `.srt`/`.vtt`/`.ass` (or inline `items`) into `mix_clips(clips[].subtitles)`. For Chinese/Japanese/Korean text set `font_name='Noto Sans CJK SC'`.
- **Export audio** → `extract_audio(url, format='m4a'|'mp3'|'wav', name=..., entity_type='extracted_audios')`. Optionally pass `segments` to trim; each segment becomes its own file.
- **Thumbnail / cover frame** → `extract_frame(url, timestamps=[...], name=..., entity_type='extracted_frames')`. `0` = first frame, positive = seconds from start, negative = seconds from the end (`-1` = 1s before the end).
- **Understand what's in the video** (for editing decisions) → `recognize_video(video_url=..., prompt=...)` for visuals/plot; `transcribe_audio` only for speech/lyrics.
4. **Report results honestly.** Summarize what was produced in natural language; don't paste large URL blocks. If a requested edit isn't supported by the available tools (e.g. changing aspect ratio / cropping), say so plainly and offer the closest alternative.
## Notes
- `probe_media` produces no asset (no `name`/`entity_type`). `extract_clip` / `extract_frame` / `extract_audio` / `mix_clips` / `generate_music` / `create_document` all produce assets — always pass a clear `name` and a fixed `entity_type` per stage so products from different stages don't get mixed on the canvas.
- `extract_clip` and `extract_audio` output **one independent file per segment** (not concatenated). To stitch or reorder them, pass the resulting `asset_id`s to