A modern, full-stack application that transforms video content creation with AI-powered transcription, captioning, thumbnail generation, and seamless YouTube integration.
- Drag & Drop Upload: Intuitive file upload with progress tracking
- AI Transcription: Powered by Deepgram for accurate speech-to-text
- Auto Captions: Generate WebVTT and SRT caption files
- Smart Screenshot Extraction: Automatically extracts key frames for analysis
- Smart Titles: AI generates multiple SEO-optimized title options
- Content Analysis: Multi-modal analysis combining video frames and transcripts
- Thumbnail Concepts: AI-designed thumbnail layouts and concepts
- AI Image Generation: Automatic thumbnail creation using Google's Imagen
- Viral Content Strategy: Optimized for platform algorithms and engagement
- OAuth Authentication: Secure YouTube account linking
- Direct Upload: Upload videos directly to YouTube from the platform
- Metadata Sync: Automatic title, description, and thumbnail upload
- Privacy Controls: Configurable video privacy settings
- Email OTP: Passwordless authentication system
- Two-Factor Authentication: TOTP support with backup codes
- Google OAuth: Social login integration
- Session Management: Secure JWT-based sessions
- Video Library: Organized content management
- Processing Pipeline: Real-time status tracking
- Analytics Ready: Built for future analytics integration
- Responsive Design: Mobile-first approach
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS 4 - Modern utility-first styling
- Framer Motion - Smooth animations and transitions
- Radix UI - Accessible component primitives
- shadcn/ui - Beautiful component library
- Next.js API Routes - Serverless API endpoints
- NextAuth.js - Authentication framework
- Prisma - Type-safe database ORM
- PostgreSQL - Reliable relational database
- Google Gemini 2.0 - Advanced AI content analysis
- Google Imagen 4.0 - AI image generation
- Deepgram Nova - Speech recognition and captioning
- Three.js - 3D graphics and animations
- AWS S3 - File storage and CDN
- Vercel - Deployment and hosting
- YouTube Data API v3 - Video platform integration
- Node.js 18+ and npm/yarn/pnpm
- PostgreSQL database
- AWS S3 bucket
- Google Cloud account (for AI services)
- YouTube Data API credentials
Create a .env.local
file:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/fazri-stream"
# NextAuth
NEXTAUTH_SECRET="your-nextauth-secret"
NEXTAUTH_URL="http://localhost:3000"
# OAuth Providers
AUTH_GOOGLE_ID="your-google-client-id"
AUTH_GOOGLE_SECRET="your-google-client-secret"
# AWS S3
AWS_ACCESS_KEY_ID="your-aws-access-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
AWS_S3_BUCKET_NAME="your-s3-bucket"
AWS_REGION="us-east-1"
# AI Services
GEMINI_KEY="your-google-gemini-api-key"
DEEPGRAM_API_KEY="your-deepgram-api-key"
# YouTube API
GOOGLE_CLIENT_ID="your-youtube-client-id"
GOOGLE_CLIENT_SECRET="your-youtube-client-secret"
# Email Service
EMAIL_SERVER_HOST="smtp.gmail.com"
EMAIL_SERVER_PORT="587"
EMAIL_SERVER_USER="your-email@gmail.com"
EMAIL_SERVER_PASSWORD="your-app-password"
EMAIL_FROM="your-email@gmail.com"
# Encryption
ENCRYPTION_KEY="your-32-character-encryption-key"
-
Clone the repository
git clone https://github.com/your-username/fazri-stream.git cd fazri-stream
-
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up the database
npx prisma generate npx prisma db push
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000
src/
βββ app/ # Next.js App Router
β βββ (auth)/ # Authentication pages
β βββ api/ # API routes
β βββ dashboard/ # Main application
β βββ globals.css # Global styles
βββ components/ # Reusable UI components
β βββ ui/ # shadcn/ui components
β βββ video-upload-genai.tsx
βββ lib/ # Utility functions
β βββ prisma.ts # Database client
β βββ utils.ts # Common utilities
β βββ youtube-oauth.ts # YouTube integration
βββ genai/ # AI service utilities
βββ hooks/ # Custom React hooks
βββ types/ # TypeScript definitions
The application uses Prisma with PostgreSQL. Key models include:
- User: Authentication and profile data
- VideoFile: Video metadata and processing status
- Transcript/Subtitles: AI-generated content
- YouTubeIntegration: Platform connections
- Google Cloud: Enable Gemini and Imagen APIs
- Deepgram: Create account and get API key
- YouTube Data API: Set up OAuth credentials
- Create S3 bucket with appropriate CORS settings
- Set up IAM user with S3 permissions
- Configure bucket for file uploads
- Connect GitHub repository
- Configure environment variables
- Deploy with automatic CI/CD
npm run build
npm run start
npx prisma migrate deploy
- POST
/api/upload
- Get presigned S3 URL - PUT
{presigned-url}
- Upload file to S3 - POST
/api/transcribe
- Process transcription - POST
/api/captions
- Generate captions - POST
/api/analyze-video
- AI content analysis
- POST
/api/check-user
- Verify user existence - POST
/api/2fa/setup
- Initialize 2FA - POST
/api/2fa/verify-setup
- Confirm 2FA setup
- GET
/api/youtube/connect
- Get OAuth URL - POST
/api/youtube/upload
- Upload to YouTube - GET
/api/youtube/status
- Check connection status
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- ESLint: Automatic code linting
- Prettier: Code formatting
- TypeScript: Strict type checking
- Conventional Commits: Structured commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- Deepgram for speech recognition technology
- Google AI for Gemini and Imagen services
- Vercel for hosting and deployment
- shadcn/ui for beautiful components
- Open source community for amazing tools and libraries
- π§ Email: support@rdpdatacenter.in
- π Website: rdpdatacenter.in
- π Issues: GitHub Issues
Built with β€οΈ by RDP Datacenter Team