A web application that enables users to generate videos through natural language descriptions. Users input text prompts, and the system generates Remotion code via OpenAI API to create custom videos.
- 🤖 AI-Powered Video Generation: Advanced AI generates professional Remotion code from text descriptions
- 🎬 Real-time Rendering: Watch your video come to life with real-time progress updates
- 💬 Chat History: Track and revisit your previous video generation requests
- 🎨 No Coding Required: Create complex animations without writing a single line of code
- 📱 Responsive Design: Beautiful UI that works on desktop and tablet devices
- ⚡ Server-Sent Events: Real-time progress updates during video generation
- Frontend: Next.js 14+ (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Video Framework: Remotion
- AI Integration: OpenAI API
- Deployment: Vercel (recommended)
- Node.js 18+
- NPM or Yarn package manager
- OpenAI API key
- Remotion license (for commercial use)
-
Clone the repository
git clone <repository-url> cd vibecodejonny
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:# OpenAI API Configuration OPENAI_API_KEY=your_openai_api_key_here # Application Configuration NEXT_PUBLIC_APP_URL=http://localhost:3000 # Remotion Configuration (for commercial use) REMOTION_LICENSE_KEY=your_remotion_license_key_here
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Visit the homepage to see the video generation interface
- Enter a detailed description of the video you want to create
- Click "Generate Video" to start the process
- The system will generate Remotion code using OpenAI
- Watch real-time progress updates during code generation and rendering
- Once complete, your video will be displayed in the video player
- View all your previous video generation requests in the sidebar
- Click on any history item to view the associated video
- Use the "New Video" button to create another video
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ │ ├── generate-video/ # Video generation endpoint
│ │ ├── videos/ # Video retrieval endpoint
│ │ └── history/ # Chat history endpoint
│ ├── generate/[id]/ # Video generation page
│ └── page.tsx # Landing page
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ ├── chat-input.tsx # Chat input component
│ ├── chat-history.tsx # Chat history sidebar
│ ├── progress-indicator.tsx # Progress indicator
│ └── video-player.tsx # Video player component
├── lib/ # Utility functions
├── remotion/ # Remotion video components
│ ├── MyVideo.tsx # Main video component
│ └── Root.tsx # Remotion root composition
└── types/ # TypeScript type definitions
Generates video from text prompt using OpenAI and Remotion.
Request Body:
{
"prompt": "string - User's video description",
"sessionId": "string - Optional session identifier"
}Response: Server-Sent Events (SSE) stream with real-time updates
Retrieves a video file by ID.
Returns list of previous generation requests.
Creates or updates a history item.
npm run devnpm run buildnpm startnpm test- Push your code to GitHub
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push
OPENAI_API_KEY: Your OpenAI API keyNEXT_PUBLIC_APP_URL: Your production URLREMOTION_LICENSE_KEY: Your Remotion license (for commercial use)
- Create new components in
src/remotion/ - Update the OpenAI system prompt in
/api/generate-video/route.ts - Add new compositions to
src/remotion/Root.tsx
- Modify Tailwind classes in components
- Update theme in
tailwind.config.js - Customize shadcn/ui components in
src/components/ui/
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@example.com or create an issue in the repository.