Metadata-Version: 2.4
Name: vidai-rec
Version: 0.2.0
Summary: Record, understand and improve your videos by talking to Claude (under development)
Author-email: AlsammanAlsamman <sammanmahmoud@gmail.com>
Maintainer-email: AlsammanAlsamman <sammanmahmoud@gmail.com>
Project-URL: Homepage, https://github.com/AlsammanAlsamman/VidAI
Project-URL: Issues, https://github.com/AlsammanAlsamman/VidAI/issues
Keywords: video,recording,editing,claude,youtube,speech-to-text,ffmpeg
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Video :: Capture
Classifier: Topic :: Multimedia :: Video :: Non-Linear Editor
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: pillow
Requires-Dist: pydantic>=2
Requires-Dist: imageio-ffmpeg
Requires-Dist: opencv-python-headless
Requires-Dist: customtkinter
Requires-Dist: faster-whisper
Requires-Dist: rapidocr-onnxruntime
Provides-Extra: record
Requires-Dist: obsws-python; extra == "record"
Requires-Dist: pynput; extra == "record"
Provides-Extra: mcp
Requires-Dist: mcp>=2; extra == "mcp"
Provides-Extra: arabic
Requires-Dist: arabic-reshaper; extra == "arabic"
Requires-Dist: python-bidi; extra == "arabic"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Provides-Extra: all
Requires-Dist: obsws-python; extra == "all"
Requires-Dist: pynput; extra == "all"
Requires-Dist: mcp>=2; extra == "all"
Requires-Dist: arabic-reshaper; extra == "all"
Requires-Dist: python-bidi; extra == "all"
Requires-Dist: pytest; extra == "all"

<p align="center">
  <img src="https://raw.githubusercontent.com/AlsammanAlsamman/VidAI/master/assets/icon.png" alt="VidAI" width="260">
</p>

<h1 align="center">VidAI</h1>

<p align="center"><b>Record, understand and improve your videos — by talking to Claude.</b></p>

<p align="center">
  <img src="https://img.shields.io/badge/status-under%20development-ff3b5c" alt="status: under development">
  <a href="https://pypi.org/project/vidai-rec/"><img src="https://img.shields.io/pypi/v/vidai-rec?color=8b6cff&label=pypi%20vidai-rec" alt="PyPI vidai-rec"></a>
  <img src="https://img.shields.io/badge/python-3.10%2B-34d399" alt="python 3.10+">
  <img src="https://img.shields.io/badge/platform-Linux-ffbf00" alt="Linux">
  <img src="https://img.shields.io/badge/tests-50%20passing-34d399" alt="50 tests passing">
</p>

> [!WARNING]
> **VidAI is under active development.** It works end to end today (record → live effects → edit → YouTube
> export), but features, commands and file formats may still change.

VidAI is a **video plugin for Claude Code**. Say `vidai`, answer a few questions, and record. While you record,
VidAI measures small, useful statistics ("anchors") and applies live effects; you can talk to it
(*"VidAI, zoom in"*, *"VidAI, add a title that says Hello"*). Afterwards Claude uses the anchors to edit the
video and exports a YouTube-ready file. Everything runs locally and for free.

---

## How it works

<p align="center">
  <a href="https://raw.githubusercontent.com/AlsammanAlsamman/VidAI/master/assets/flowchart/vidai_flow.svg"><img src="https://raw.githubusercontent.com/AlsammanAlsamman/VidAI/master/assets/flowchart/vidai_flow.png" alt="VidAI flow: brief, anchor setup, record, live, anchors, understand, edit plan, render" width="100%"></a>
</p>

<sub>Generated by <code>assets/flowchart/flowchart.js</code> (pure Node → SVG → PNG via headless Chrome): <code>node assets/flowchart/flowchart.js</code></sub>

---

## What it can do now

| | |
|---|---|
| 🎙️ **Brief** | Claude asks what the video is about, the language, style, length and sections, then decides what to track |
| 🎥 **Record** | Its own recorder: camera, screen, or screen + camera, with mic · live preview · countdown · crash-safe files |
| 📊 **Live anchors** | Pauses, speech (speech-to-text), text on screen (OCR), motion, scene changes, active window, markers |
| 🗣️ **Voice** | *“VidAI record / stop / mark / mistake / new section … / important / zoom in / zoom out / captions on”* — anything else goes to Claude (English for now) |
| ✨ **Live effects** | Text, logos, arrows and boxes, zoom, blur, live captions — plus new effects Claude writes on the spot (e.g. an object that follows your hand) |
| 🤔 **Thinking icon** | A little animated VidAI eye bounces in the corner while Claude works on your request |
| 🧠 **Instant models** | Teach it something during the recording (*“VidAI label yes”*), correct it (*“VidAI wrong”*); it learns immediately |
| ✂️ **Editing** | Remove pauses and failed takes, add titles, arrows, zooms, subtitles, chapters, audio clean-up — without touching the original |
| ⚡ **Fast** | Renders in parallel chunks split inside silences; hot loops in C |
| 📺 **YouTube export** | MP4 + subtitles (`.srt`) + a description with chapters |

---

## Quick start

```bash
pip install vidai-rec
```

Working on VidAI itself (tests, Claude Code skill and MCP config included):

```bash
git clone https://github.com/AlsammanAlsamman/VidAI && cd VidAI
python3 -m venv .venv && .venv/bin/pip install -e ".[all]"
.venv/bin/python -m pytest -q        # optional: run the tests
```

Then open Claude Code inside the folder and say **vidai**:

```bash
claude
> vidai
```

Claude interviews you, opens the **VidAI Recorder**, and edits the video when you are done.
Prefer the terminal? `vidai studio` · `vidai analyze video.mkv` · `vidai plan video.mkv remove_gaps` · `vidai render video.mkv`

**Requirements:** Linux (X11), a webcam and mic (PipeWire/PulseAudio), `gcc` for the C speed-ups (optional).
ffmpeg is bundled; the speech model downloads on first use.

---

## Coming next

- Speech-based editing: remove filler words, keep the best take automatically
- Built-in tracking: hands, face, objects — effects that follow them
- Arabic voice commands and on-screen text
- More layouts, transitions and music

---

<p align="center">
  Made by <b>AlsammanAlsamman</b> · <a href="mailto:sammanmahmoud@gmail.com">sammanmahmoud@gmail.com</a>
</p>
