home / skills / jykim / claude-obsidian-skills / video-full-process

video-full-process skill

/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-process

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
6.6 KB
---
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

Overview

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.

How this skill works

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.

When to use it

  • Process raw recorded video end-to-end for a polished deliverable
  • Create videos with embedded chapters and chapter documentation
  • Generate YouTube-friendly chapter markers for the description
  • Save transcription costs by transcribing only once
  • When you need pause removal plus accurate chapter timing

Best practices

  • Run transcription first or use --force-transcribe to ensure a transcript exists before heavy processing
  • Preview changes with --preview to inspect pause removal and chapter boundaries before writing outputs
  • Keep FFmpeg installed and available in PATH for embedding and video edits
  • Adjust pause-threshold to match speaking style and avoid overcutting short natural pauses
  • Reuse existing transcripts with --skip-transcribe to save time and cost

Example use cases

  • Turn a raw hour-long lecture into a cleaned, chaptered MP4 with YouTube chapter text
  • Process recorded interviews: remove filler pauses and map topic chapters to the cleaned video
  • Create training clips: embed chapters and export per-chapter markdown guides
  • Batch-process webinar recordings where a single transcript can be reused across steps
  • Generate documentation and YouTube description snippets automatically for content publishing

FAQ

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.