Project Info
This project did not submit a demo video on Devpost.
Inspiration
Video editing is stuck in the past. Tools like Premiere and Final Cut are powerful but painfully manual — you spend hours dragging clips around a timeline for what should be a creative process. Meanwhile, coding got "vibe coding" with Cursor. We asked: why can't video editing work the same way? Throw in your raw footage, get a real edit back, then iterate on it conversationally.
What it does
Vibe Video is an AI-powered video editor that turns raw clips into a fully edited video — then lets you refine it like you'd refine code in Cursor. Drop in your footage, and the AI assembles a coherent edit with cuts, ordering, and flow. From there, you can edit the transcript directly to change the video, give natural language instructions ("make the intro punchier," "cut everything after the second interview clip"), and watch your changes apply in real time. It's vibe editing.
How we built it
We built the frontend as a web app with a transcript-based editing interface that mirrors the Cursor-style inline editing experience. On the backend, we use AI to analyze and transcribe the uploaded clips, then intelligently sequence and cut them into a cohesive edit. The transcript serves as the single source of truth — edits to the text propagate back to the video timeline, so changing words literally changes the video.
Challenges we ran into
Video processing is slow. Getting the feedback loop tight enough that editing felt conversational rather than batch-job-and-wait was a constant battle. Syncing transcript edits back to precise video cuts without weird jumps or artifacts was also trickier than expected — off-by-a-frame errors add up fast.
Accomplishments we're proud of
The core loop actually feels good. You can go from a pile of raw clips to a watchable edit in minutes, and the transcript-driven editing is genuinely intuitive. The fact that it works end-to-end in a weekend is something we're proud of.
What we learned
Working with video programmatically is a whole different beast compared to text or images. We gained a much deeper appreciation for how hard real-time media manipulation is — and how much opportunity there is to make it better with AI.
What's next
Multi-track editing, AI-suggested b-roll and transitions, and support for longer-form content like podcasts and vlogs. We also want to add a collaborative mode where multiple people can vibe-edit the same project. The dream is to make video editing as fast as thought.
Vibe-Video
Backend (FastAPI)
Setup
- Python: 3.13 recommended (your install log shows Python 3.14 fails building
pydantic-core) - FFmpeg must be installed and available in PATH (for automatic audio extraction from video files)
- Create and activate a virtualenv (recommended)
- Install deps:
pip install -r backend/requirements.txt
- Set environment variables:
ASSEMBLYAI_API_KEYGEMINI_API_KEY
You can use the template at backend/env.example and copy it to a local .env in backend/ (or export vars in your shell).
If you must stay on Python 3.14, one workaround is:
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1but the more reliable fix is using Python 3.13.
Using pyenv (recommended)
If you use pyenv, this repo includes backend/.python-version so cd backend will automatically select Python 3.13.1 (once pyenv is initialized in your shell).
If python3 -V still shows 3.14 inside backend/, your shell likely isn't loading pyenv. Add the following to your dotfiles and restart the terminal:
~/.zprofile:export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init --path)"
~/.zshrc:eval "$(pyenv init - zsh)"
Then recreate the venv (from backend/):
rm -rf .venvpython3 -m venv .venvsource .venv/bin/activatepython -m pip install -r requirements.txt
Run
From the backend/ directory:
uvicorn app.main:app --reload
API
- Health:
GET /health - Subtitle pipeline:
POST /api/v1/subtitle
Example:
curl -F "file=@/path/to/video.mp4" "http://localhost:8000/api/v1/subtitle"
Response includes:
- Full transcript:
text - Word timestamps:
words[] - Re-segmented phrases:
phrases[]
Analysis
View
Metric
- 83
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
7 of 7 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
794 KB
Source files
94
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Arihan10/Vibe-Video-Test
169 files · 505.6 MB · @ 241a7ed
Structure
Interface
46 files · 27%Screens, components and styles rendered to the user.
API & routing
11 files · 7%Request entry points: routes, handlers and controllers.
Application logic
37 files · 22%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript51%
- YAML30%
- Markdown10%
- Python9%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
backend/requirements.txt
pypi · 30- annotated-types
- anyio
- certifi
- charset-normalizer
- click
- fastapi
- google-auth
- google-genai
- h11
- httpcore
- httptools
- httpx
- idna
- pyasn1
- pyasn1_modules
- pydantic
- pydantic_core
- pydantic-settings
- +12 more
frontend/package.json
npm · 22- @ffmpeg/ffmpeg
- @ffmpeg/util
- @lexical/react
- @twick/browser-render
- @twick/studio
- @types/crypto-js
- assemblyai
- crypto-js
- form-data
- lexical
- next
- react
- react-dom
- zustand
- +8 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.