ClipJev is an AI-powered web application that automatically analyzes YouTube videos, finds the most engaging moments, and prepares them as 9:16 vertical clips perfect for YouTube Shorts, TikTok, or Instagram Reels.
- Automated YouTube Transcripts: Uses Supadata API to reliably fetch YouTube transcripts, bypassing common datacenter blocking issues.
- Intelligent Clip Selection: Leverages the JEV model (
~typesafe/jev-latest) to semantically read transcripts in chunks, score moments for virality/engagement, and extract perfect start/end timestamps. - Live Preview Simulator: Simulates a 9:16 vertical crop directly in the browser using the YouTube iframe API, letting you preview the exact crop without waiting for server processing.
- Background Export (Local): When running locally or on a VPS (like Railway), ClipJev uses
yt-dlpandffmpegto download the high-res video in the background and precisely crop it to 9:16.
- Node.js 18+
- Supadata API Key (Free tier gives 100 requests/month)
- (Optional)
ffmpegandyt-dlpinstalled on your system if you want to enable the local download/export feature.
-
Clone the repository and install dependencies:
git clone <your-repo-url> cd clipjev npm install
-
Set up your environment variables. Create a
.env.localfile in the root directory:# Required: Supadata API Key for reliable YouTube transcript fetching SUPADATA_API_KEY=your_supadata_api_key # Required: The URL to your JEV model instance JEV_URL=your_jev_api_url # Optional: Set to "true" to disable server-side ffmpeg/yt-dlp downloads # (Required when deploying to serverless environments like Vercel) NEXT_PUBLIC_DISABLE_DOWNLOADS=true
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS + Radix UI Primitives
- Icons: Lucide React
- Video Player: Native YouTube Iframe API
- AI Processing: JEV Decision Model (via standard HTTP requests)
ClipJev's frontend and AI processing can be easily deployed to Vercel. However, because Vercel's serverless functions have strict size limits and execution timeouts, the background video downloading (yt-dlp + ffmpeg) is not supported on Vercel.
To deploy to Vercel:
- Push your code to GitHub.
- Import the project in the Vercel dashboard.
- Add your
SUPADATA_API_KEYandJEV_URLenvironment variables. - Crucial: Add
NEXT_PUBLIC_DISABLE_DOWNLOADS=trueto your Vercel environment variables. This hides the export UI and prevents the serverless functions from trying to spawnffmpeg.
MIT License