Blogger Video Slicer
Use this skill for local video files only. Do not download from links; ask the user to provide a local file path first.
The goal is content-first slicing: one exported clip should contain one clear content point. Aim for 15-20 seconds, but preserve a complete thought when the duration target conflicts with meaning.
Required Tools
- Run the bundled script:
scripts/slice_blogger_video.py. - Require
ffmpeg/ffprobeonPATH, or install Python packageimageio-ffmpeg. - Require one local speech-to-text package:
- Prefer
faster-whisper. - Fall back to
openai-whisper. - If dependencies are missing, stop cleanly and tell the user what to install. Never invent transcripts or output empty clips.
Command
Run from the skill folder:
python scripts/slice_blogger_video.py --input "video.mp4" --output "output"
Useful options:
python scripts/slice_blogger_video.py --input "video.mp4" --output "output" --min-duration 15 --max-duration 20 --language zh --review-only --keep-temp --flat-output
Default Behavior
- Create the next sequential output folder:
output/no.1,output/no.2,output/no.3, etc. - Never overwrite earlier video results unless the user explicitly says to replace or overwrite.
- Export only the core clip by default. Do not add intro/outro branding videos unless the user explicitly asks for branding.
- Generate three cover candidates per clip with short filenames:
clip_001-1.jpg,clip_001-2.jpg,clip_001-3.jpg. - Prefer cover frames showing clear emotion or action: cute expressions, smiles, effort, hardship, high-difficulty movement, surprising reactions, or other click-worthy moments.
Workflow
- Confirm the input path is a local video file.
- Extract audio.
- Transcribe audio with local speech recognition and timestamps.
- Build candidate clips from transcript segments.
- Prefer cuts at punctuation, pauses, sentence endings, and natural transition phrases.
- Trim irrelevant edges:
- Remove greetings, throat-clearing, filler, or setup that does not match the middle topic.
- Remove topic changes, calls to action, repeated filler, or the start of the next point at the end.
- Preserve material needed to understand the main content. - Export final clips unless
--review-onlyis used. - Generate per-second preview frames, storyboard images, cover images, and reports.
- After running, verify counts for
clips,previews,storyboards,covers,report.csv, andreport.md.
Output Structure
output/
no.1/
clips/
clip_001.mp4
previews/
clip_001/
second_000.jpg
second_001.jpg
storyboards/
clip_001.jpg
covers/
clip_001-1.jpg
clip_001-2.jpg
clip_001-3.jpg
report.csv
report.md
report.csv columns:
clip_idstart_timeend_timedurationtopicreasontrimmed_introtrimmed_outroclip_pathstoryboard_pathcover_1_pathcover_2_pathcover_3_path
Quality Bar
- Split or reject clips that cover two unrelated points.
- Trim openings and endings that do not match the clip's central topic.
- Accept clips shorter than 15 seconds or longer than 20 seconds only when needed for a complete thought.
- Use second-level previews and stitched storyboards to review whether the first and last seconds still match the middle content.
- Report why each clip was selected and what intro/outro content was removed.