How to Set Up bradautomates/claude-video Locally: Complete Installation Guide
To set up bradautomates/claude-video locally, clone the repository, symlink the skills/watch/ directory to your AI host's skill folder, and execute the pre-flight setup script to install system dependencies.
The claude-video repository packages the /watch Agent Skill as a self-contained Python module that downloads videos, extracts frames using ffmpeg, and produces transcripts via native captions or OpenAI's Whisper API. Setting up bradautomates/claude-video locally involves preparing the skill environment, installing external binaries through setup.py, and optionally configuring cloud API credentials in ~/.config/watch/.env.
Prerequisites
Before installing, ensure your system meets these requirements:
- Python 3 (verified compatible version)
- Git for cloning the repository
- Bash environment for running setup scripts
The skills/watch/scripts/setup.py file will automatically handle ffmpeg and yt-dlp installation if they are missing.
Step-by-Step Installation
Clone the Repository
Start by cloning the official repository to your local machine:
git clone https://github.com/bradautomates/claude-video.git
This creates the claude-video/ directory containing the complete skill package.
Link the Skill to Your AI Host
The skill is self-contained within claude-video/skills/watch/. Create a symbolic link from this folder to your AI host's skill directory so the host can discover the slash command defined in skills/watch/SKILL.md.
For Claude Code:
ln -s "$(pwd)/claude-video/skills/watch" ~/.claude/skills/watch
For Codex:
ln -s "$(pwd)/claude-video/skills/watch" ~/.codex/skills/watch
For Cursor:
ln -s "$(pwd)/claude-video/skills/watch" ~/.cursor/skills/watch
Run the Pre-Flight Setup
Execute the setup script to verify dependencies and scaffold configuration files:
python3 claude-video/skills/watch/scripts/setup.py --check
This command invokes three critical functions from setup.py:
- Verifies or installs ffmpeg for frame extraction
- Verifies or installs yt-dlp for video downloads
- Creates the
~/.config/watch/directory with a placeholder.envfile
Configure API Keys for Whisper
If you plan to transcribe videos without native captions, configure Whisper API credentials. The skills/watch/scripts/config.py module reads from ~/.config/watch/.env at runtime:
GROQ_API_KEY=your-groq-key-here
OPENAI_API_KEY=your-openai-key-here
As implemented in skills/watch/scripts/whisper.py, the skill supports both Groq's whisper-large-v3 and OpenAI's whisper-1 endpoints using pure standard library HTTP requests.
Verify Your Installation
Test the installation by running the entry point directly against a video URL:
python3 claude-video/skills/watch/scripts/watch.py https://youtu.be/dQw4w9WgXcQ \
--detail balanced --resolution 1024 --start 0:30 --end 1:00
This invokes the full workflow orchestrated by watch.py:
- Argument parsing validates detail modes and frame budgets
- Caption checking via
fetch_captionsindownload.pydetermines if Whisper is needed - Metadata extraction using
frames.get_metadatareads duration and resolution - Frame extraction through
frames.extract_keyframesorframes.extract_scene_or_uniformhandles deduplication and auto-FPS calculation - Transcript generation from VTT files (
transcribe.py) or API calls (whisper.py)
Successful execution prints a markdown report to stdout listing extracted frame paths in /tmp/watch-XXXX/frames/ and transcript segments.
Optional: Build a Portable Skill Bundle
To create a distributable .skill file for uploading to claude.ai:
bash claude-video/skills/watch/scripts/build-skill.sh
This generates dist/watch.skill containing the entire skill package ready for distribution.
Summary
- Clone the repository using
git clone https://github.com/bradautomates/claude-video.git - Symlink
claude-video/skills/watch/to~/.claude/skills/watch(or your host's equivalent directory) - Run
python3 claude-video/skills/watch/scripts/setup.py --checkto install ffmpeg, yt-dlp, and scaffold config files - Configure
~/.config/watch/.envwithGROQ_API_KEYorOPENAI_API_KEYfor Whisper transcription - Execute
watch.pydirectly or use the/watchslash command in your AI host to process videos
Frequently Asked Questions
What system dependencies does bradautomates/claude-video require?
The skill requires ffmpeg for frame extraction and yt-dlp for video downloads. The setup.py script automatically installs these if missing when you run it with the --check flag, so no manual system package manager commands are necessary.
Can I use bradautomates/claude-video without API keys?
Yes, if the target video has native captions in VTT format. The download.py wrapper checks for existing captions first; only if none exist does the workflow fall back to the Whisper API via whisper.py, which requires the Groq or OpenAI keys configured in ~/.config/watch/.env.
Where are extracted frames stored during processing?
The frames.py module writes extracted keyframes to temporary directories under /tmp/watch-XXXX/frames/ (where XXXX is a unique identifier). These paths are printed in the final markdown report and passed to the AI host for analysis.
How do I update the skill to the latest version?
Since the skill is symlinked to your local git repository, simply run git pull inside the claude-video directory. The changes take effect immediately for all AI hosts using the symlinked skill directory, including any updates to watch.py or helper modules.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →