claude-shorts
AgriciDaniel/claude-shortsИнструмент на базе Claude Code для автоматического создания коротких вертикальных видео из длинного контента. Транскрибирует, оценивает сегменты по 5 критериям, рендерит анимированные субтитры через Remotion и экспортирует под YouTube Shorts, TikTok и Instagram Reels.
Установка
git clone https://github.com/AgriciDaniel/claude-shorts.gitREADME
claude-shorts

Интерактивный инструмент для создания коротких вертикальных клипов из длинных видео на базе Claude Code. Извлекает вирусные вертикальные клипы из длинных видео, используя Claude в роли интеллектуального оркестратора, с премиальными анимированными субтитрами, отрендеренными через Remotion.
Как это работает
Claude Code проводит вас через интерактивный пайплайн из 10 шагов:
- Preflight — проверяет входное видео, свободное место на диске, наличие GPU
- Transcribe — транскрибирование с GPU-ускорением и временны́ми метками на уровне слов (faster-whisper)
- Detect Content — автоматическая классификация: talking-head, запись экрана или подкаст
- Analyze — Claude читает полный транскрипт и оценивает 8–12 кандидатов на нарезку
- Present — отображает кандидатов в виде таблицы с оценками, хуками и обоснованием
- Approve — вы выбираете сегменты, корректируете тайм-коды, выбираете стиль субтитров и платформу
- Snap Boundaries — выравнивает точки нарезки по границам слов, концам предложений и паузам в аудио
- Prepare — извлекает клипы (FFmpeg stream copy) и вычисляет координаты кадрирования
- Render — Remotion рендерит вертикальное видео 1080×1920 с анимированными субтитрами
- Export — кодирование с оптимизацией под платформу (YouTube Shorts, TikTok, Instagram Reels)
Демо
Демо-видео/GIF скоро появится — будет показан полный пайплайн от входного файла до готового шорта с субтитрами в стиле Bold.
Возможности
- Оценка сегментов на базе Claude — рубрика из 5 измерений (сила хука, связность, эмоциональность, плотность ценности, развязка) с взвешенной оценкой. Никакого эвристического поиска по ключевым словам — Claude понимает нарративные дуги.
- 3 стиля субтитров — Bold (ALL CAPS, жёлтые выделения), Bounce (пружинящая анимация, чередующиеся цвета), Clean (минималистичное появление)
- Отслеживание курсора — для записей экрана определяет положение курсора мыши через разностный анализ кадров и плавно панорамирует кадрирование вслед за ним
- Привязка границ к аудио — никогда не режет на середине слова или предложения; расширяет до естественных концов предложений и пауз
- Рендеринг через Remotion — однопроходный рендеринг на базе React со spring-анимациями, karaoke-подсветкой на уровне слов, текстовыми оверлеями хуков и прогресс-барами
- GPU-ускорение — CUDA для транскрибирования, NVENC для кодирования при экспорте (с graceful fallback на CPU)
Требования
- FFmpeg (системный пакет)
- Python 3.10+
- Node.js 18+
- Claude Code (CLI)
- NVIDIA GPU рекомендуется (для CUDA-транскрибирования + NVENC-кодирования)
Установка
# Клонировать репозиторий
git clone https://github.com/AgriciDaniel/claude-shorts.git
cd claude-shorts
# Установить зависимости Python + Node.js
bash setup.sh
# Установить как скилл Claude Code
bash install.shWindows
claude-shorts требует Unix-инструментов (FFmpeg, bash). На Windows используйте WSL 2:
# Внутри WSL
git clone https://github.com/AgriciDaniel/claude-shorts.git
cd claude-shorts
bash setup.sh
bash install.shЧто делает setup.sh
- Создаёт виртуальное окружение Python в
~/.shorts-skill/(или переиспользует~/.video-skill/, если оно существует) - Устанавливает
faster-whisper,mediapipe,numpy,opencv-pythonи PyTorch (вариант с CUDA или CPU) - Запускает
npm installв директорииremotion/ - Проверяет системные зависимости (FFmpeg, jq)
Использование
В Claude Code вызовите скилл:
/shorts
Затем укажите файл видео по запросу. Claude:
- Транскрибирует видео
- Представит оценённых кандидатов на сегменты
- Спросит, какие сегменты рендерить, стиль субтитров и целевую платформу
- Отрендерит и экспортирует готовые шорты
Пример взаимодействия
Вы: /shorts ~/Videos/my-talk.mp4
Claude: [Транскрибирует, определяет тип контента, оценивает сегменты]
| # | Время | Дл. | Оценка | Хук |
|---|---------------|------|--------|--------------------------------------|
| 1 | 04:22 - 05:01 | 39s | 87 | "Nobody talks about this..." |
| 2 | 12:45 - 13:28 | 43s | 82 | "Here's the exact framework." |
| 3 | 08:11 - 08:52 | 41s | 79 | "I tested this for 6 months." |
Claude: Какие сегменты? Стиль субтитров? Платформа?
Вы: 1 и 3, стиль bounce, youtube
Claude: [Привязывает границы, извлекает клипы, рендерит, экспортирует]
Результат: shorts/short_01_yt.mp4, shorts/short_03_yt.mp4
Структура проекта
claude-shorts/
├── SKILL.md # Интерактивный пайплайн из 10 шагов (скилл Claude Code)
├── CLAUDE.md # Инструкции на уровне проекта
├── install.sh # Установка в ~/.claude/skills/
├── setup.sh # Установщик зависимостей Python + Node
│
├── scripts/
│ ├── transcribe.py # GPU-транскрибирование через faster-whisper
│ ├── detect_content.py # Классификатор типа контента на базе MediaPipe
│ ├── compute_reframe.py # Отслеживание лица + курсора + кадрирование
│ ├── snap_boundaries.py # Привязка границ к аудио
│ ├── preflight.sh # Валидация входных данных + проверка места на диске
│ ├── detect_gpu.sh # Определение наличия NVIDIA NVENC
│ └── export.sh # Кодирование FFmpeg под конкретную платформу
│
├── remotion/
│ ├── package.json # Remotion v4 + React 19 + Zod
│ ├── render.mjs # Оркестратор «один бандл — много рендеров»
│ ├── remotion.config.ts
│ └── src/
│ ├── Root.tsx # Реестр композиций
│ ├── ShortVideo.tsx # Основная композиция
│ ├── types.ts # Zod-схемы для пропсов
│ ├── components/
│ │ ├── VideoFrame.tsx # Перекадрированное видео с анимированным панорамированием
│ │ ├── Captions.tsx # Диспетчер стилей субтитров
│ │ ├── BoldCaptions.tsx # Bold ALL CAPS, spring-появление
│ │ ├── BounceCaptions.tsx # Пружинящий масштаб, яркие цвета
│ │ ├── CleanCaptions.tsx # Минималистичное появление
│ │ ├── HookOverlay.tsx # Текст хука в первые 3,5 секунды
│ │ └── ProgressBar.tsx # Прогресс-бар