# How to Vibe Code Your Own Opus (and Stop Paying for It)

> AI-powered video repurposing and clipping platform

- Site: https://opus.pro
- Category: SaaS / AI Video Editing
- Verdict: **Serious undertaking** (32/100 vibecodeable)
- Estimated effort: 3-4 months of persistent evening work

## Verdict

Build a scaled-down local script for personal clipping, but keep paying for the full SaaS to avoid GPU rendering and API hell.

Replicating Opus requires orchestrating a heavy Python-based backend with FFmpeg clusters, computer vision models for subject tracking, and Whisper transcription pipelines. While an AI agent can scaffold the Next.js frontend and database schemas in hours, the video processing subsystem involves complex asynchronous queue management, huge disk I/O, and heavy GPU usage that will break standard serverless deployments and frustrate solo developers.

### What you can't replicate

- Proprietary virality scoring model trained on hundreds of millions of actual posts
- Enterprise infrastructure capable of parallelizing 30GB video transcodes across GPU clusters
- Deeply integrated official social distribution channels and automated OAuth compliance

## What it does

Turns long-form videos into viral short-form clips with automated AI clipping, reframing, and animated captions.

### Core features

- YouTube and video file ingestion
- Automatic Speech Recognition (ASR) transcription
- LLM-based hook and highlight extraction with virality scoring
- Computer vision object tracking and automated 9:16 reframing
- Dynamic animated caption generation with keyword highlighting
- Text and timeline-based video editing suite
- Social media direct posting and scheduler
- XML project export for desktop NLEs

## The business

### Pricing

- Free: $0/mo
- Starter: $15/mo
- Pro: $29/mo

### Funding

$68M raised.
- Seed / Early Rounds (2022-2024)
- Series A / Growth Extension ($20M led by SoftBank Vision Fund 2, March 2025)
Investors: SoftBank Vision Fund 2, Millennium New Horizons, DCM Ventures, AI Grant, Samsung Next

Founded 2022.
Team size: 50-150.

## The hard parts

- Heavy video transcoding, chunking, and GPU rendering pipelines that exceed serverless timeout limits
- Multi-model AI orchestration chaining STT, LLM semantic scoring, and real-time computer vision tracking
- Handling multi-gigabyte video uploads, secure storage, and egress bandwidth costs
- Navigating brittle third-party social media APIs, rate limits, and OAuth token maintenance

## How to vibe code Opus

### Prerequisites

- Node.js (free): Required for running the Next.js development environment.
- Docker (free): Required for running containerized FFmpeg and Python worker services locally.
- GitHub (free): Source code repository and CI/CD triggers.

### Recommended AI tools

- Claude Code: Best-in-class agentic CLI tool for scaffolding multi-service full-stack architectures and writing complex Python video worker scripts.
- Cursor: Ideal for iterative frontend UI work on the dashboard, timeline editor, and caption styling components.

### Stack

- Frontend: Next.js
- Backend: Node.js + Python (Celery/FFmpeg worker)
- Database: Turso
- Auth: better-auth
- Payments: Stripe
- Other: Vercel AI SDK, OpenAI API (Whisper), Anthropic API

### Hosting

- Vercel (Hosting the Next.js frontend and web dashboard application.): $0-20/mo
- Fly.io (Running persistent Docker containers with attached volumes for FFmpeg video processing and Python background workers.): $10-30/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js project with Tailwind CSS, configure better-auth with a Turso SQLite database, and set up the core database schemas for users, projects, video sources, and exported clips.

```
Initialize a Next.js project using App Router and TypeScript. Configure Tailwind CSS and set up better-auth connected to a Turso SQLite database over HTTP using libSQL. Create database tables for 'users', 'projects' (storing source video URL, duration, status), and 'clips' (storing start time, end time, virality score, caption JSON, storage path). Implement the authentication flow with email/password and session protection. Ensure all environment variables are documented in a .env.example file.
```

2. **Video Ingestion & Storage Pipeline** — Build the frontend upload zone and URL input interface, linking to cloud storage and triggering an asynchronous worker task to download and validate incoming video files.

```
Build a dashboard page in Next.js featuring a video ingestion component supporting both drag-and-drop file uploads (up to 2GB) and a public URL input field for YouTube/MP4 links. Configure an endpoint that receives the upload, saves the raw file to S3-compatible object storage (or Fly.io volume storage), and creates a 'processing' record in the Turso database. Emit a background event to trigger the worker pipeline.
```

3. **Transcription & Highlight Extraction Engine** — Implement a Python worker service using FFmpeg to extract audio, call the OpenAI Whisper API for timestamped transcripts, and prompt an LLM to identify viral highlights and hooks.

```
Create a Python worker service using FastAPI and Celery. Implement a task that downloads the source video from storage, extracts the audio track using FFmpeg, and sends it to the OpenAI Whisper API to get a word-level timestamped transcript JSON. Write a module that passes the transcript text to Claude/OpenAI with a structured prompt to analyze semantic arcs, identify top 3-5 engaging segments (hooks, punchlines, core insights), and assign a mock 'virality score' with reasoning. Save the resulting clips array back to the database.
```

4. **Automated Reframing & Video Clipping Worker** — Develop the video cropping and rendering pipeline in Python using FFmpeg filters to convert horizontal video into vertical 9:16 format.

```
Expand the Python worker to handle video clipping and reframing. Given a clip's start and end timestamps, use FFmpeg filters to slice the source video and crop it from 16:9 to 9:16 aspect ratio (scaling and panning to center the frame). Implement error handling for invalid timestamps or corrupted source files, render the final MP4 output files, upload them back to object storage, and update the clip record status to 'ready'.
```

5. **Animated Captions Generator** — Parse timestamped transcript fragments to burn dynamic word-by-word animated captions onto the rendered vertical clips.

```
Implement a caption rendering module in the Python worker using FFmpeg drawtext filters or ASS subtitle generation. Take the word-level timestamps corresponding to each generated clip, chunk them into 3-4 word phrases, and style them with highlighted active keywords and vibrant colors. Burn these subtitles directly onto the rendered 9:16 MP4 video stream prior to final export storage.
```

6. **Dashboard, Timeline Editor, & Export UI** — Build the frontend project workspace displaying generated clips, virality scores, a timeline review interface, and download options.

```
Build a project detail dashboard in Next.js that fetches and displays all generated clips for a given video project. Include a video preview player, virality score badges, and a basic timeline editor interface allowing users to adjust clip trim boundaries (start/end sliders). Provide an export button that triggers a direct MP4 download link from object storage. Ensure responsive, modern UI styling matching a professional SaaS dashboard.
```

### Cost vs paying

**Starting costs (one-time):**

- Domain name: $12
- OpenAI / Anthropic API credits: $20
- Total: ~$32 one-time

**Ongoing costs (monthly):**

- Fly.io worker compute & storage: $15/mo
- Whisper & LLM API usage: $10/mo
- Total: ~$25/mo

- Paying for the SaaS instead: $29/mo
- Build time: 80-120 hours
- AI tool credits: $20/mo
- Break-even: Never (built for learning and personal use)

## Sources

- [OpusClip Official Website](https://www.opus.pro)
- [Business Insider: OpusClip raises $20M from SoftBank](https://www.businessinsider.com)
- [Sacra: OpusClip revenue and valuation profile](https://sacra.com)