video-full-process

from jykim/claude-obsidian-skills

Claude Skills for Obsidian Vault Management

22 stars3 forksUpdated Jan 25, 2026
npx skills add https://github.com/jykim/claude-obsidian-skills --skill video-full-process

SKILL.md

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

# 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

FileDescription
{video} - cleaned.mp4Video with pauses/fillers removed
{video} - cleaned-chapters.mp4Cleaned video with embedded chapters
{video} - pauses.jsonRemoved pause data (for remapping)
{video} - chapters.jsonDetected chapter boundaries
{video} - chapters_remapped.jsonChapters adjusted for cleaned video
{video} - youtube_chapters.txtCopy-paste for YouTube description
Chapter NN - Title.mdPer-chapter documentation

Requirements

System

  • Python 3.7+
  • FFmpeg (for video processing)

Python Packages

pip install openai

Environment Variables

  • OPENAI_API_KEY - Required for Whisper API

Detailed Usage

Full Processing

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

# 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

# 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:

python process_video.py "video.mp4" --force-transcribe

"Chapter timestamps don't match"

Regenerate remapped

...

Read full content

Repository Stats

Stars22
Forks3
LicenseMIT License