بنقرة واحدة
video-processing
Download, transcribe, analyze, and clip video content — vertical shorts, captions, thumbnails
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Download, transcribe, analyze, and clip video content — vertical shorts, captions, thumbnails
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | video-processing |
| description | Download, transcribe, analyze, and clip video content — vertical shorts, captions, thumbnails |
| consumer | cc_background_task |
| phase | 7 |
| skill_type | uplift |
Turn long-form video into processed outputs: transcripts, short clips, vertical format with captions, thumbnails. Uses FFmpeg, yt-dlp, and transcription services. All operations via shell commands.
Required tools (install if missing):
ffmpeg and ffprobe — video processingyt-dlp — video downloading from 1000+ sitesCheck availability:
which ffmpeg ffprobe yt-dlp 2>/dev/null
From URL:
yt-dlp --dump-json "URL" 2>/dev/null | python3 -c "
import sys, json
d = json.load(sys.stdin)
print(f'Title: {d[\"title\"]}')
print(f'Duration: {d[\"duration\"]}s')
print(f'Resolution: {d.get(\"width\",\"?\")}x{d.get(\"height\",\"?\")}')
"
From local file:
ffprobe -v quiet -print_format json -show_format -show_streams "file.mp4"
If duration > 2 hours, ask user to specify a segment range.
# Best quality up to 1080p with audio
yt-dlp -f "bv[height<=1080]+ba/b[height<=1080]" -o "source.mp4" "URL"
# Also grab auto-subtitles if available (avoids transcription entirely)
yt-dlp --write-auto-subs --sub-lang en --sub-format json3 \
--skip-download -o "source" "URL"
If source.en.json3 exists, skip to Phase 4 (transcription already done).
Priority order — use the first available:
curl -s https://api.groq.com/openai/v1/audio/transcriptions \
-H "Authorization: Bearer $API_KEY_GROQ" \
-F file=@audio.mp3 -F model=whisper-large-v3 \
-F response_format=verbose_json -F timestamp_granularities[]=word
whisper source.mp4 --model small --output_format json \
--output_dir . --language en
Extract audio first if sending to API:
ffmpeg -i source.mp4 -vn -acodec libmp3lame -q:a 2 audio.mp3
This is the core value step. Analyze the transcript and select 3-5 segments (30-90 seconds each) based on:
Selection criteria:
Rules:
For each selected segment:
Extract clip:
ffmpeg -ss [start] -to [end] -i source.mp4 \
-c:v libx264 -c:a aac -preset fast -crf 23 clip_N.mp4
Vertical crop (9:16 for shorts/reels):
# Center crop (loses sides)
ffmpeg -i clip_N.mp4 -vf "crop=ih*9/16:ih:(iw-ih*9/16)/2:0,scale=1080:1920" \
-c:a copy clip_N_vertical.mp4
# Letterbox (keeps everything, adds black bars)
ffmpeg -i clip_N.mp4 -vf "scale=1080:-2,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
-c:a copy clip_N_vertical.mp4
Generate SRT captions from transcript:
Burn captions into video:
ffmpeg -i clip_N_vertical.mp4 \
-vf "subtitles=clip_N.srt:force_style='FontSize=22,FontName=Arial,\
PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2,\
Shadow=1,MarginV=60,Alignment=2'" \
-c:a copy clip_N_captioned.mp4
Generate thumbnail:
# Frame at 2 seconds in
ffmpeg -ss 2 -i clip_N.mp4 -frames:v 1 -q:v 2 clip_N_thumb.jpg
# Video Processing Report
**Source:** [title or filename]
**Duration:** [total duration]
**Clips generated:** N
| # | Title | Duration | File | Size |
|---|-------|----------|------|------|
| 1 | [title] | [duration] | clip_1_captioned.mp4 | [size] |
## Segment Reasoning
1. **[title]** ([start]-[end]): [why this segment was selected]
If output exceeds platform limits, re-encode:
# Target ~45MB for Telegram (50MB limit)
ffmpeg -i input.mp4 -c:v libx264 -b:v 1500k -c:a aac -b:a 128k output.mp4
| Platform | Video Limit |
|---|---|
| Telegram | 50 MB |
| 16 MB | |
| Discord | 25 MB (Nitro: 500 MB) |
job_id: <CLIP-YYYY-MM-DD-NNN>
source: <URL or filepath>
source_duration: <seconds>
clips:
- number: <1-N>
title: <short title>
start: <HH:MM:SS>
end: <HH:MM:SS>
duration: <seconds>
file: <output filepath>
size_mb: <file size>
format: <horizontal | vertical>
captioned: <true | false>
virality_reasoning: <one sentence>
transcription_method: <youtube_auto | groq_whisper | openai_whisper | local_whisper | none>
docs/reference/gemini-routing.md — For video content analysis via Gemini APIThis skill should be used when developing, debugging, refactoring, or building Genesis itself — tasks like "fix this in Genesis", "add a new MCP tool", "wire up the runtime", "Genesis won't start", "create a worktree", "debug the bridge", or "add a capability". Applies to any task modifying files under src/, .claude/, or tests/. Do NOT load for Genesis-as-tool work ("summarize this", "write a LinkedIn post", "research X") or general questions unrelated to Genesis internals.
Foundational voice authority and AI humanizer — writes content in the user's authentic voice with built-in AI detection, and supports stealth / anti- attribution writing (forum personas, anonymous posts, "write as not-me"). Use when asked to write/draft/generate content, invoke /voice, /write-as-me, or /humanize, run voice calibration, check "does this sound like me?", "make this sound human" / "de-AI this", "write a forum post as [persona]", or run AI detection ("does this sound like AI?", "check for AI patterns", "anti-slop check"). Do NOT use this skill for code, technical docs, or any output the user has not asked to be written in their voice — code styling defers to the separate code-voice skill.
Forward Deployed Engineer delivery contract for AWS engagements, build-first artifacts, grounded cost estimates, Well-Architected review, evolution roadmap
This skill should be used before answering "does Genesis have X", "does Genesis lack X", auditing Genesis capabilities, comparing Genesis to an external system, or reviewing/summarizing the architecture. It routes to the canonical judgment-layer subsystem map so audits start from the map, not from a cold grep. Also fires after changing a subsystem's capabilities, to keep the map current.
First-run onboarding — guides new users through Genesis setup on their first CC session. Configures user profile, essential API keys, Telegram, GitHub backup, and service verification. Triggered automatically when ~/.genesis/setup-complete is absent. Re-runnable by asking Genesis to "run setup" or "reconfigure [section]".
Apply when Genesis writes as itself — outreach, public content, community posts, emails, DMs. Not for writing in the user's voice (that's voice-master). Activate when Genesis is the author, not the ghostwriter.