What Programming Languages Does bradautomates/claude-video Use?
The bradautomates/claude-video repository is written primarily in Python, with auxiliary automation scripts in Bash that handle build processes and development workflows.
The open-source claude-video project by bradautomates implements an AI-powered video analysis skill for Claude. Understanding the programming languages bradautomates/claude-video uses reveals a pragmatic split: Python handles the runtime video processing logic, while Bash manages deployment and development tooling.
Primary Language: Python for Video Processing
The executable core resides entirely within Python modules under skills/watch/scripts/. These files implement the complete pipeline from video download to frame extraction and audio transcription.
Core Python Modules
The repository organizes functionality into specialized modules:
skills/watch/scripts/watch.py— The main orchestrator exposing amain([url, question])function that coordinates download, frame extraction, and transcription workflows.skills/watch/scripts/download.py— A wrapper aroundyt-dlpthat handles video acquisition from platforms like YouTube.skills/watch/scripts/frames.py— Usesffmpegto extract frames at auto-detected FPS rates for visual analysis.skills/watch/scripts/transcribe.py— Manages both caption-based transcription and Whisper-based speech-to-text conversion.skills/watch/scripts/whisper.py— Provides an optional client interface for OpenAI's Whisper API.skills/watch/scripts/config.py— Handles shared configuration settings across the skill.skills/watch/scripts/setup.py— Performs pre-flight environment checks and dependency validation.
You can invoke the watch skill programmatically using the Python API:
from skills.watch.scripts.watch import main
# Download a video, extract frames, and generate a transcript
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
question = "What is the main topic of the video?"
main([url, question])
Secondary Language: Bash for Build Automation
While Python executes the runtime logic, Bash scripts manage the repository's build lifecycle and development synchronization. These scripts reside alongside the Python code but serve distinct operational purposes.
Key Bash Scripts
skills/watch/scripts/build-skill.sh— Packages the entire skill into a distributable.skillarchive ready for upload to Claude.ai.dev-sync.sh— Synchronizes the working tree with the Claude Code plugin cache during active development.
Execute the build process from the repository root:
# Build the distributable .skill package
./skills/watch/scripts/build-skill.sh
# The resulting archive is placed in the dist/ directory
Configuration and Documentation Files
The repository contains ancillary files in JSON, YAML, and Markdown (including README.md, AGENTS.md, and SKILL.md). These define skill manifests and documentation contracts but do not constitute executable programming languages within the codebase.
Summary
- Python powers all video processing, transcription, and orchestration logic within
skills/watch/scripts/. - Bash handles build automation and development synchronization via
build-skill.shanddev-sync.sh. - The primary entry point is the
main()function inskills/watch/scripts/watch.py, accepting URL and question parameters. - Configuration files use JSON/YAML for skill metadata but contain no executable logic.
Frequently Asked Questions
Is bradautomates/claude-video written entirely in Python?
No. While the core video processing functionality is implemented in Python modules under skills/watch/scripts/, the repository relies on Bash scripts for build automation and development workflow management. The executable code is split between these two languages based on operational needs.
What is the main entry point for video processing?
The primary entry point is skills/watch/scripts/watch.py, specifically its main([url, question]) function. This function orchestrates the entire workflow by coordinating calls to download.py, frames.py, and transcribe.py in sequence.
How does the repository handle video downloads and audio transcription?
Video downloads are handled by skills/watch/scripts/download.py, which wraps the yt-dlp utility. For transcription, skills/watch/scripts/transcribe.py implements dual strategies: extracting existing captions when available, or falling back to skills/watch/scripts/whisper.py for Whisper API-based speech recognition when captions are absent.
What role does build-skill.sh play in the repository?
The build-skill.sh script in skills/watch/scripts/ packages the Python codebase and configuration files into a distributable .skill archive. This bundle format is required for deployment to Claude.ai, making the Bash script critical for the distribution lifecycle despite not being part of the runtime logic.
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 →