edit-greek-reel

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]

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "edit-greek-reel" with this command: npx skills add artemisln/edit-greek-reel

Greek Reel Video Editor — Artemis Codes

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

Pipeline Overview

The editing pipeline has 3 passes:

  1. Trim + Crop + Scale — Cut silence, remove retakes, crop to 9:16 (object-cover, never stretch)
  2. Subtitles + Zoom + Image Overlays — Burn karaoke-style subs, add subtle zooms and logo/image overlays
  3. Mix SFX — Layer sound effects on key moments

Step 1: Analyze the Video

  1. Run ffprobe to get resolution, duration, rotation, codec info
  2. Check orientation — if rotation is 90/270, the video is portrait (swap w/h)
  3. Detect silence gaps with: ffmpeg -i <input> -vn -af "silencedetect=noise=-30dB:d=0.5" -f null -

Step 2: Transcribe

  1. Install openai-whisper if needed (pip3 install openai-whisper)
  2. Transcribe with Whisper medium model, Greek language, word-level timestamps:
model = whisper.load_model("medium")
result = model.transcribe(audio_path, language="el", word_timestamps=True, condition_on_previous_text=True)
  1. Save transcript to transcript.json in the same directory
  2. Print the full transcript and word timestamps for review

Step 3: Proofread the Transcription

CRITICAL: Whisper makes mistakes, especially with:

  • English tool/brand names (e.g., "Cloud Code" → "Claude Code", "CacheSource" → "Cursor")
  • Greek spelling errors (e.g., "ευτοματά" → "αυτόματα", "φιτιτικού" → "φοιτητικού")
  • Merged or split words

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.

Step 4: Build Segments & Timed Words

Based on the silence detection and word timestamps:

  1. Define KEEP_SEGMENTS — list of (start, end) tuples of audio to keep

    • Cut silence gaps > 0.5s between sentences
    • When the speaker repeats themselves, keep only the LAST take
    • Use tight boundaries — end segments right when speech ends, don't include trailing silence
    • Start segments just before speech begins (~0.05s padding)
  2. Define TIMED_WORDS — list of (word, start, end) with the CORRECTED text mapped to Whisper timestamps

  3. Recalculate all timestamps relative to the trimmed output

Step 5: Configure Effects

Subtitles (Karaoke Style)

  • Font: Manrope Bold (search for Manrope-Bold.otf or Manrope-Bold.ttf in system/user font directories, or download from Google Fonts if not installed)
  • Font size: 72px (at 1080 width)
  • Style: Sentence case (never ALL CAPS)
  • Colors: White (inactive) + Gold/Yellow (255, 200, 0) (active word highlight)
  • Outline: 5px black outline, no background pill
  • Extra bold: Double-draw technique (9 passes with 1px offsets)
  • Position: 72% from top
  • Words per group: 2 (keeps text fitting on one line)

Zoom Effects (Subtle)

  • Maximum 5 zoom triggers per video
  • Zoom factor: 1.08–1.10x (never more than 1.12x — avoid making viewer dizzy)
  • Duration: 0.35–0.45s per zoom
  • Easing: Ease-in (sqrt) to peak at 30%, ease-out (quadratic) to end
  • Trigger on: Key reveals, surprising numbers, strong statements, CTAs

Sound Effects

  • NEVER repeat the same SFX file twice in one video
  • This skill ships with pre-trimmed SFX in its audios/ directory (relative to this skill.md file):
    • trimmed_whoosh.mp3 — transitions, reveals
    • trimmed_cash.mp3 — money/price mentions
    • trimmed_fah.mp3 — emphasis, strong statements
    • trimmed_click.mp3 — tool mentions
    • trimmed_bubble_pop.mp3 — light reveals
    • trimmed_riser.mp3 — builds, anticipation
  • The skill's base directory is provided at invocation as Base directory for this skill: <path>. Use that path to locate the bundled audios/ folder.
  • Also check the video's parent directory for an audios/ folder — the user may have added custom SFX there
  • If new untrimmed audio files exist, trim leading silence first:
    ffmpeg -i input.mp3 -ss <silence_end> -acodec libmp3lame -q:a 2 trimmed_output.mp3
    
  • Volume: 0.15–0.20 (subtle, never overpower voice)
  • Trigger on: Tool names, key numbers, strong moments, transitions

Image Overlays

  • Check images/ directory for available logos, screenshots, memes
  • Display above the speaker's head area (centered, ~15% from top)
  • Logo size: 200px max
  • Meme/screenshot size: 500px max
  • Animation: Pop-in (ease-out over first 15%) and pop-out (over last 15%)
  • Duration: 1.8–2.5s per image
  • Trigger on: When the speaker mentions the tool/concept the image represents
  • Each image triggers only once
  • Convert SVGs to PNG first if needed (use cairosvg)

Step 6: Video Processing

Crop (Object-Cover, Never Stretch)

  • Target: 1080x1920 (9:16)
  • If --crop-top N is specified, remove N% from the top before fitting
  • Always crop to fit the target ratio (like CSS object-fit: cover), never scale-to-fit (which would stretch/distort)
  • Center the crop horizontally; for vertical, bias toward bottom-center (keep the speaker's face)

Processing Pipeline (Python + ffmpeg + Pillow)

Pass 1: Trim + Crop + Scale (ffmpeg)

  • Build a complex filter: trim each segment, concat, crop to 9:16, scale to 1080x1920
  • Concat uses interleaved stream ordering: [v0][a0][v1][a1]...concat=n=N:v=1:a=1
  • Output: temp_trimmed.mp4 (libx264, crf 18, aac 192k, 30fps)

Pass 2: Subtitles + Zoom + Images (Pillow frame-by-frame)

  • Decode trimmed video to raw RGBA frames via ffmpeg pipe
  • For each frame:
    1. Apply zoom effect if active (center-crop + resize)
    2. Composite image overlay if active (with pop animation)
    3. Composite subtitle overlay
  • Encode back to mp4 via ffmpeg pipe

Pass 3: Mix SFX (ffmpeg)

  • Overlay all SFX using adelay + amix filter
  • Use normalize=0 to prevent volume pumping
  • Copy video stream, re-encode audio only

Output

  • Save as final_<name>.mp4 in the same directory as the input
  • Print summary: original duration → final duration, number of effects applied
  • Clean up temp files

Important Rules

  1. Never stretch video — always crop to fit (object-cover behavior)
  2. Proofread before burning subtitles — Whisper WILL get tool names wrong
  3. Ask the user if unsure about a word, especially brand/tool names
  4. Sentence case only — never ALL CAPS subtitles
  5. No background pill behind subtitles — outline only
  6. Unique SFX — never use the same sound file twice in one video
  7. Subtle zooms — 1.08-1.10x max, 5 per video max
  8. Tight cuts — trim silence aggressively, the reel should feel fast-paced
  9. Cache transcript — if transcript.json exists, reuse it (skip re-transcription)
  10. Keep the last take — when the speaker repeats, always keep the final version

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

gitlab-mr-reviewer

当需要审核 GitLab 合并请求、检查 MR diff 风险、发布 GitLab 审查评论、执行 approve/request changes,或发送 MR 审查通知时使用。

Registry SourceRecently Updated
1490whrime
General

Voice Transcriber Toolkit

Voice-to-Text Transcription Toolkit - 语音识别转文字,支持Whisper/Vosk引擎,批量处理,字幕导出 | Speech recognition & transcription with Whisper/Vosk engines, batch processing, su...

Registry SourceRecently Updated
General

Gigo Lobster Taster

🦞 GIGO · gigo-lobster-taster: 正式试吃模式:跑完整评测,默认上传云端、生成个人结果页并进入排行榜。 Triggers: 试吃我的龙虾 / 品鉴我的龙虾 / lobster taste / lobster taster.

Registry SourceRecently Updated
General

Gigo Lobster Local

🦞 GIGO · gigo-lobster-local: 本地模式:跑完整评测,但不上云、不注册个人结果页,证书二维码回到官网首页。 Triggers: 本地试吃龙虾 / 离线试吃龙虾 / local lobster taste / offline lobster taste.

Registry SourceRecently Updated