Files
Conal Mullan 290d7d345b Adopt uv for Python dependency management (#33 rebased, thanks @AsharibAli) (#59)
* Adopt uv for Python dependency management

Replace manual pip/venv setup with `uv sync` (pyproject.toml + uv.lock),
and switch all tool invocations across docs, skills, commands, and
examples to `uv run`. Optional extras: --extra whisper, --extra modal.
tools/requirements.txt is kept as a pip fallback.

* FIX: bring uv migration current with main — post-June deps and docs

Adds websocket-client (60db websocket transport) to core deps and a
'youtube' extra for the google-* packages (tools/youtube_upload.py),
regenerates uv.lock, bumps pyproject version to 0.18.0, and converts the
51 'python3 tools/…' invocations added since the PR was opened (60db,
YouTube, Kiro docs, publish command) to 'uv run'. Verified with
uv sync --frozen --extra youtube; voiceover, sixtydb_tts, youtube_upload
and migrate_to_kiro all run through the project environment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Asharib Ali <asharibarain4@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:55:43 +01:00

239 lines
7.5 KiB
Markdown

# Getting Started
This guide will help you create your first video using the claude-code-video-toolkit.
## Prerequisites
### Minimum (renders videos immediately)
- [Node.js](https://nodejs.org/) 18+ — that's it
### Optional: AI Voiceover
| Provider | Cost | Setup |
|----------|------|-------|
| Qwen3-TTS | Free (self-hosted) | RunPod account + `uv run tools/qwen3_tts.py --setup` |
| ElevenLabs | Pay-per-use | API key in `.env` |
### Optional: Full Toolkit
- [Python](https://python.org/) 3.9+ — for audio tools, image editing, upscaling
- [FFmpeg](https://ffmpeg.org/) — for media conversion and compression
- [RunPod account](https://runpod.io/) — for cloud GPU processing (TTS, image editing, watermark removal, talking heads)
- [ElevenLabs API key](https://elevenlabs.io/) — for premium AI voices
## Your First Video in 2 Minutes
```bash
cd examples/hello-world
npm install
npm run studio # Preview in browser
npm run render # Export MP4
```
No API keys needed. Edit `src/config/sprint-config.ts` to customize content.
## Full Setup (for AI Tools)
> This is optional — you can render videos with just Node.js installed.
1. **Clone the repository**
```bash
git clone https://github.com/digitalsamba/claude-code-video-toolkit.git
cd claude-code-video-toolkit
```
2. **Install Python dependencies with [uv](https://docs.astral.sh/uv/)**
```bash
# Install uv if you don't have it:
# macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
uv sync
```
This creates `.venv/` and installs every locked dependency in one step — no manual
virtualenv or pip required. Run any Python tool through the environment with
`uv run tools/<tool>.py` (no activation needed). Optional extras:
```bash
uv sync --extra whisper # burned karaoke captions (heavy, pulls in torch)
uv sync --extra modal # Modal CLI for self-hosted cloud GPU
```
3. **Start Claude Code and run the setup wizard**
```bash
claude
```
Then type `/setup` — this walks you through configuring cloud GPU, file transfer, and voice in about 5 minutes. Most features are free:
- **Cloudflare R2**: Free (10GB storage, zero egress)
- **Modal**: $30/month free compute on Starter plan
- **Qwen3-TTS**: Free AI voiceovers (runs on your Modal compute)
Or configure manually: `cp .env.example .env` and edit with your API keys.
## Optional: Codex Setup
If you use Codex instead of Claude Code, install the toolkit's Codex-compatible wrappers and regenerate `AGENTS.md` from `CLAUDE.md`:
```bash
uv run scripts/migrate_to_codex.py --force
```
This installs toolkit skills into `~/.codex/skills` and appends or updates a generated Codex block in the repository root `AGENTS.md`.
Resources created or updated by the migration script:
1. Toolkit skills under `~/.codex/skills/`
2. Command-wrapper skills under `~/.codex/skills/`
3. A generated Codex block inside repository root `AGENTS.md`
Important:
1. The script manages only a generated block inside the repository root `AGENTS.md`.
2. Manual `AGENTS.md` content outside that block is preserved.
3. The generated block is derived from `CLAUDE.md`.
4. Re-run `uv run scripts/migrate_to_codex.py --force` after updating `CLAUDE.md`.
To remove the installed toolkit skills later:
```bash
uv run scripts/migrate_to_codex.py --reset
```
`--reset` removes the generated Codex block from `AGENTS.md`, but does not remove the rest of the file.
## Optional: Kiro CLI Setup
If you use Kiro CLI instead of Claude Code, install the toolkit's Kiro-compatible skills and command wrappers:
```bash
uv run scripts/migrate_to_kiro.py --force
```
This installs the toolkit skills and slash-command wrappers into `~/.kiro/skills` and generates `.kiro/steering/video-toolkit.md` from `CLAUDE.md`. `/video`, `/setup`, etc. then work as Kiro slash commands from any directory. See [docs/kiro.md](kiro.md) for details, and re-run with `--force` after `CLAUDE.md` changes. To remove:
```bash
uv run scripts/migrate_to_kiro.py --reset
```
## Your First Video
The easiest way to create a video is using the `/video` command:
```
/video
```
This unified command will:
1. Scan for existing projects (or start fresh if none found)
2. Let you choose a template (Sprint Review or Product Demo)
3. Let you choose a brand (or create one with `/brand`)
4. Gather your content (paste notes, provide URLs, or describe what you want)
5. Plan scenes interactively with your input
6. Create a project in `projects/` with all scaffolding ready
## Manual Project Creation
If you prefer manual setup:
1. **Copy a template**
```bash
cp -r templates/sprint-review projects/my-video
cd projects/my-video
npm install
```
2. **Edit the config**
Edit `src/config/sprint-config.ts` with your content.
3. **Add demo videos**
Place `.mp4` files in `public/demos/`
4. **Preview**
```bash
npm run studio
```
5. **Render**
```bash
npm run render
```
## Available Commands
| Command | Description |
|---------|-------------|
| `/setup` | First-time setup - cloud GPU, file transfer, voice, prerequisites |
| `/video` | Video projects - list, resume, or create new |
| `/scene-review` | Scene-by-scene review in Remotion Studio |
| `/design` | Focused design refinement session for a scene |
| `/brand` | Brand profiles - list, edit, or create new |
| `/template` | List available templates or create new ones |
| `/record-demo` | Record browser interactions with Playwright |
| `/generate-voiceover` | Generate AI voiceover from script (supports per-scene mode) |
| `/redub` | Redub existing video with a different voice |
| `/skills` | List installed skills or create new ones |
| `/contribute` | Share improvements - issues, PRs, examples |
| `/versions` | Check dependency versions and toolkit updates |
## Project Structure
After creating a project, you'll have:
```
projects/my-video/
├── project.json # Project state (phase, scenes, assets)
├── CLAUDE.md # Auto-generated status for Claude Code
├── VOICEOVER-SCRIPT.md # Narration script with asset markers
├── src/
│ ├── config/
│ │ ├── sprint-config.ts # Your video content (or demo-config.ts)
│ │ ├── brand.ts # Brand colors/fonts (auto-generated)
│ │ └── theme.ts
│ └── components/
├── public/
│ ├── demos/ # Your demo videos
│ ├── audio/ # Voiceovers, music, SFX
│ └── images/ # Logo, screenshots
└── package.json
```
## Multi-Session Workflow
Projects can span multiple Claude Code sessions. The `/video` command tracks progress:
```
/video
```
When you have existing projects, you'll see:
```
Found 2 video projects:
1. **my-release-video** (sprint-review)
Phase: assets - 2/5 demos recorded
Last worked: 2 days ago
2. **product-launch** (product-demo)
Phase: audio - voiceover needed
Last worked: 5 days ago
Which project? (or 'new' for a new project)
```
### Project Phases
| Phase | Description |
|-------|-------------|
| `planning` | Defining scenes, writing script |
| `assets` | Recording demos, gathering materials |
| `review` | Scene-by-scene review in Remotion Studio (`/scene-review`) |
| `audio` | Generating voiceover, music |
| `editing` | Adjusting timing, previewing |
| `rendering` | Final render in progress |
| `complete` | Done |
## Next Steps
- [Creating Templates](./creating-templates.md) - Build custom video structures
- [Creating Brands](./creating-brands.md) - Define visual identity