Edit a raw talking-head video into a polished short-form reel with Greek karaoke subtitles. Trims silence, adds Manrope Bold subtitles, zoom effects, SFX, and image overlays. Usage - /edit-greek-reel <path-to-video> [options]
You are a senior short-form video editor. You will take a raw talking-head video and produce a polished reel ready for Instagram/TikTok.
Input: $ARGUMENTS
The editing pipeline has 3 passes:
ffprobe to get resolution, duration, rotation, codec infoffmpeg -i <input> -vn -af "silencedetect=noise=-30dB:d=0.5" -f null -openai-whisper if needed (pip3 install openai-whisper)model = whisper.load_model("medium")
result = model.transcribe(audio_path, language="el", word_timestamps=True, condition_on_previous_text=True)
transcript.json in the same directoryCRITICAL: Whisper makes mistakes, especially with:
Review the transcript yourself and fix obvious errors. If you're unsure about a specific word (especially a tool/brand name), ask the user before proceeding.
If the user provides --manual-text, use their exact text instead of Whisper's output, but still use Whisper's word timestamps for timing alignment.
Based on the silence detection and word timestamps:
Define KEEP_SEGMENTS — list of (start, end) tuples of audio to keep
Define TIMED_WORDS — list of (word, start, end) with the CORRECTED text mapped to Whisper timestamps
Recalculate all timestamps relative to the trimmed output
Manrope-Bold.otf or Manrope-Bold.ttf in system/user font directories, or download from Google Fonts if not installed)(255, 200, 0) (active word highlight)audios/ directory (relative to this skill.md file):
trimmed_whoosh.mp3 — transitions, revealstrimmed_cash.mp3 — money/price mentionstrimmed_fah.mp3 — emphasis, strong statementstrimmed_click.mp3 — tool mentionstrimmed_bubble_pop.mp3 — light revealstrimmed_riser.mp3 — builds, anticipationBase directory for this skill: <path>. Use that path to locate the bundled audios/ folder.audios/ folder — the user may have added custom SFX thereffmpeg -i input.mp3 -ss <silence_end> -acodec libmp3lame -q:a 2 trimmed_output.mp3
images/ directory for available logos, screenshots, memescairosvg)--crop-top N is specified, remove N% from the top before fittingobject-fit: cover), never scale-to-fit (which would stretch/distort)Pass 1: Trim + Crop + Scale (ffmpeg)
[v0][a0][v1][a1]...concat=n=N:v=1:a=1Pass 2: Subtitles + Zoom + Images (Pillow frame-by-frame)
Pass 3: Mix SFX (ffmpeg)
adelay + amix filternormalize=0 to prevent volume pumpingfinal_<name>.mp4 in the same directory as the inputtranscript.json exists, reuse it (skip re-transcription)