video-analyze
Video analysis and inspection using FFprobe and FFmpeg. Reads metadata, codec info, resolution, bitrate, duration, HDR status,…
Programmatic video creation using Remotion (React-based). Generates title cards, data visualizations, motion graphics, branded intros/outros, animated text, and template-based videos from data. Claude writes React components, Remotion renders them headlessly to video. Use when
$ npx -y skills add AgriciDaniel/claude-video --skill video-create --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/video-createContext preview
The summary Claude sees to decide when to auto-load this skill.
Programmatic video creation using Remotion (React-based). Generates title cards, data visualizations, motion graphics, branded intros/outros, animated text, and template-based videos from data. Claude writes React components, Remotion renders them headlessly to video. Use when
name: claude-video-create description: > Programmatic video creation using Remotion (React-based). Generates title cards, data visualizations, motion graphics, branded intros/outros, animated text, and template-based videos from data. Claude writes React components, Remotion renders them headlessly to video. Use when user says "create video", "title card", "intro", "outro", "motion graphics", "animated text", "data visualization video", "remotion", "programmatic video", or "generate video from data". allowed-tools: - Bash - Read - Write - Edit
1. Check Node.js: `node --version` (requires 18+) 2. Check if Remotion is available: `npx remotion --version 2>/dev/null` 3. If no Remotion project exists, scaffold one first
**Use Remotion for**:
**Use FFmpeg for** (route to other sub-skills):
# Create new Remotion project npx create-video@latest --template blank my-video-project cd my-video-project npm install
This creates a standard Remotion project with:
**Composition**: A video definition with width, height, fps, and duration. **Component**: A React component that receives `useCurrentFrame()` and renders for that frame. **Sequence**: A timed sub-section within a composition. **Spring**: Physics-based animation for natural motion.
Claude should generate this component:
// src/TitleCard.tsx
import { AbsoluteFill, useCurrentFrame, useVideoConfig, spring, interpolate } from 'remotion';
export const TitleCard: React.FC<{ title: string; subtitle?: string }> = ({ title, subtitle }) => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const titleScale = spring({ frame, fps, config: { damping: 12 } });
const subtitleOpacity = interpolate(frame, [20, 40], [0, 1], { extrapolateRight: 'clamp' });
return (
<AbsoluteFill style={{ backgroundColor: '#0a0a0a', justifyContent: 'center', alignItems: 'center' }}>
<h1 style={{
color: 'white',
fontSize: 80,
fontFamily: 'Inter, sans-serif',
transform: `scale(${titleScale})`,
}}>
{title}
</h1>
{subtitle && (
<p style={{
color: '#888',
fontSize: 32,
opacity: subtitleOpacity,
marginTop: 20,
}}>
{subtitle}
</p>
)}
</AbsoluteFill>
);
};Register in Root.tsx:
import { Composition } from 'remotion';
import { TitleCard } from './TitleCard';
export const RemotionRoot: React.FC = () => (
<Composition
id="TitleCard"
component={TitleCard}
durationInFrames={90}
fps={30}
width={1920}
height={1080}
defaultProps={{ title: "My Video", subtitle: "A subtitle" }}
/>
);# Render a specific composition
npx remotion render src/index.ts TitleCard output.mp4 \
--props='{"title":"Hello World","subtitle":"Made with claude-video"}' \
--codec h264 --crf 18
# Render as transparent (for overlays)
npx remotion render src/index.ts TitleCard output.webm \
--props='{"title":"Overlay Text"}' \
--codec vp8 --image-format png
# Render specific frames (for thumbnails)
npx remotion still src/index.ts TitleCard thumbnail.png \
--props='{"title":"Thumbnail"}' --frame 45// Claude generates this based on user's data
const data = [
{ label: "Q1", value: 100 },
{ label: "Q2", value: 200 },
{ label: "Q3", value: 150 },
{ label: "Q4", value: 300 },
];
// Render with:
npx remotion render src/index.ts BarChart output.mp4 \
--props='{"data":[{"label":"Q1","value":100},{"label":"Q2","value":200}]}'import { Sequence } from 'remotion';
// Show text lines one by one
const lines = ["First line", "Second line", "Third line"];
return (
<AbsoluteFill>
{lines.map((line, i) => (
<Sequence from={i * 30} durationInFrames={60} key={i}>
<AnimatedLine text={line} />
</Sequence>
))}
</AbsoluteFill>
);Claude generates a reusable template with:
| Flag | Purpose | Example | |------|---------|---------| | `--codec` | Output codec | h264, h265, vp8, vp9 | | `--crf` | Quality (lower = better) | 18 | | `--image-format` | Frame format | jpeg, png (png for transparency) | | `--scale` | Resolution multiplier | 0.5 (half), 2 (double) | | `--every-nth-frame` | Skip frames (preview) | 2 | | `--concurrency` | Parallel rendering threads | 4 | | `--props` | JSON props to composition | '{"title":"Hello"}' |
After Remotion renders a video, pipe it into other claude-video sub-skills: 1. Create title card with Remotion → concat with main video (edit sub-skill) 2. Create data viz with Remotion → add captions (caption sub-skill) 3. Create intro + outro → sandwich around edited content → export for platform
AI-powered video production suite for Claude Code. Edit, transcode, caption, analyze, generate, and create promo videos: all from your terminal.
Video analysis and inspection using FFprobe and FFmpeg. Reads metadata, codec info, resolution, bitrate, duration, HDR status,…
Audio processing for video files using FFmpeg. Loudness normalization to streaming standards (LUFS), noise reduction, audio…
Speech-to-text transcription and animated subtitle generation using Whisper and FFmpeg. Creates word-by-word animated captions…
Video downloading via yt-dlp with format selection, quality control, subtitle download, audio-only extraction, and playlist…
Video editing operations using FFmpeg: trimming, cutting, splitting, concatenation, speed changes, cropping, scaling, rotation,…
AI-powered audio enhancement for video using Demucs v4 (source separation, isolate vocals/drums/bass/other, 7GB VRAM),…