home / skills / jykim / claude-obsidian-skills / video-full-process
This skill orchestrates end-to-end video cleaning and chaptering with transcript reuse and remapped chapters to produce YouTube-ready, well-structured videos.
npx playbooks add skill jykim/claude-obsidian-skills --skill video-full-processReview the files below or copy the command above to add this skill to your agents.
---
name: video-full-process
description: Unified workflow combining video-clean and video-add-chapters with transcript reuse and chapter remapping
allowed-tools: [Read, Write, Bash, Glob]
license: MIT
---
# Video Full Process Skill
Combines **video-clean** and **video-add-chapters** into a single workflow that:
- Transcribes once (saving API costs)
- Removes pauses and filler words
- Detects and embeds chapters
- Remaps chapter timestamps to the cleaned video
- Generates YouTube chapter markers and documentation
## When to Use This Skill
- Processing raw video recordings end-to-end
- Creating polished videos with embedded chapters
- Generating YouTube-ready content with chapter markers
- When you need both pause removal AND chapter organization
## Quick Start
```bash
# Full processing with default settings
python process_video.py "video.mp4" --language ko
# Preview mode (see what will be changed)
python process_video.py "video.mp4" --preview
# Skip chapter embedding (only clean + generate docs)
python process_video.py "video.mp4" --no-embed-chapters
```
## Workflow Overview
```
Input: raw_video.mp4
│
▼
┌─────────────────────────────────────┐
│ 1. Transcribe (once) │
│ - Uses chunked transcription │
│ - Handles long videos (15min+) │
│ - Output: transcript.json │
└─────────────────────────────────────┘
│
┌─────┴─────┐
▼ ▼
┌─────────┐ ┌─────────────┐
│ 2a. │ │ 2b. Detect │ ← Parallel
│ Clean │ │ Chapters │
└─────────┘ └─────────────┘
│ │
▼ ▼
┌─────────┐ ┌─────────────┐
│ cleaned │ │ chapters. │
│ .mp4 │ │ json │
│ + pauses│ │ │
│ .json │ │ │
└─────────┘ └─────────────┘
│
▼
┌─────────────────────────────────────┐
│ 3. Remap chapters to cleaned video │
│ - Calculate removed time │
│ - Adjust chapter timestamps │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 4. Embed chapters + Generate docs │
│ - ffmpeg metadata embed │
│ - YouTube chapters txt │
│ - Chapter markdown files │
└─────────────────────────────────────┘
│
▼
Output: cleaned-chapters.mp4 + docs
```
## Output Files
| File | Description |
|------|-------------|
| `{video} - cleaned.mp4` | Video with pauses/fillers removed |
| `{video} - cleaned-chapters.mp4` | Cleaned video with embedded chapters |
| `{video} - pauses.json` | Removed pause data (for remapping) |
| `{video} - chapters.json` | Detected chapter boundaries |
| `{video} - chapters_remapped.json` | Chapters adjusted for cleaned video |
| `{video} - youtube_chapters.txt` | Copy-paste for YouTube description |
| `Chapter NN - Title.md` | Per-chapter documentation |
## Requirements
### System
- Python 3.7+
- FFmpeg (for video processing)
### Python Packages
```bash
pip install openai
```
### Environment Variables
- `OPENAI_API_KEY` - Required for Whisper API
## Detailed Usage
### Full Processing
```bash
python process_video.py "presentation.mp4" --language ko
```
This runs:
1. Transcription (if not exists)
2. Chapter detection
3. Pause removal
4. Chapter remapping
5. Chapter embedding
6. Documentation generation
### Partial Processing
```bash
# Skip transcription (reuse existing)
python process_video.py "video.mp4" --skip-transcribe
# Skip cleaning (only add chapters)
python process_video.py "video.mp4" --skip-clean
# Skip chapter embedding (only clean + generate docs)
python process_video.py "video.mp4" --no-embed-chapters
```
### Customization
```bash
# Adjust pause threshold
python process_video.py "video.mp4" --pause-threshold 0.8
# Custom output directory
python process_video.py "video.mp4" --output-dir "./output"
```
## Chapter Remapping Logic
When pauses are removed, chapter timestamps must be adjusted:
```
Original Video:
|--Ch1--|--pause--|--Ch2--|--pause--|--Ch3--|
0 30 40 60 70 90
Cleaned Video (pauses removed):
|--Ch1--|--Ch2--|--Ch3--|
0 30 50 70
Remapping:
- Ch1: 0 → 0 (no change)
- Ch2: 40 → 30 (10s pause removed before)
- Ch3: 70 → 50 (20s total pauses removed before)
```
The `remap_chapters.py` script handles this automatically using the pause data from video cleaning.
## Integration with Existing Skills
This skill orchestrates two existing skills:
### video-clean (.claude/skills/video-cleaning/)
- Provides: `transcribe_video.py`, `edit_video_remove_pauses.py`
- Modified: Added `--output-pauses` flag
### video-add-chapters (_Settings_/Skills/video-add-chapters/)
- Provides: `transcribe_video.py`, `suggest_chapters.py`, `generate_docs.py`
- Modified: Added `--skip-if-exists` flag
## Cost Estimate
- **Single transcription**: ~$0.006/min (vs $0.012/min if running separately)
- **1-hour video**: ~$0.36 (saves $0.36 by reusing transcript)
## Troubleshooting
### "Transcript not found" Error
Run transcription first or use `--force-transcribe`:
```bash
python process_video.py "video.mp4" --force-transcribe
```
### "Chapter timestamps don't match"
Regenerate remapped chapters:
```bash
python remap_chapters.py "video - chapters.json" --pauses "video - pauses.json"
```
### FFmpeg embed fails
Check that chapters.json format is correct:
```json
{
"chapters": [
{"start": 0, "title": "Intro", "description": "..."},
{"start": 120, "title": "Main", "description": "..."}
]
}
```
## File Structure
```
video-full-process/
├── SKILL.md # This documentation
├── process_video.py # Main orchestrator script
└── remap_chapters.py # Chapter timestamp remapping
```
## Version History
- **v1.0** (2026-01): Initial release
- Unified workflow for video-clean + video-add-chapters
- Transcript reuse (single API call)
- Automatic chapter remapping
- FFmpeg chapter embedding
This skill provides a unified end-to-end workflow that combines pause/filler removal with chapter detection and embedding, while reusing a single transcript to save API costs. It produces a cleaned video, remapped chapters, YouTube-ready chapter text, and per-chapter documentation. The workflow handles long videos, remaps chapter timestamps after edits, and embeds metadata with FFmpeg.
The skill transcribes the input video once (chunked for long files) and feeds that transcript into two parallel processes: video cleaning (removing pauses and filler words) and chapter detection. After cleaning, it calculates how much time was removed and remaps original chapter timestamps to the cleaned timeline. Finally it embeds chapters into the cleaned MP4, writes YouTube chapter text, and generates per-chapter markdown docs.
What files are produced by the process?
The workflow outputs cleaned MP4(s), pauses.json, detected and remapped chapters JSON, a youtube_chapters.txt file, and per-chapter markdown files.
How does chapter remapping work?
Remapping uses the pause removal data to compute cumulative removed time before each chapter start, then subtracts that from the original chapter start to produce timestamps aligned to the cleaned video.