A powerful and user-friendly YouTube clone built with the latest web technologies! ππ₯ This project lets you upload, stream, and manage videos effortlessly while providing AI-powered tools, an engaging community, and a seamless viewing experience. π
Here are the technologies that power this YouTube clone:
-
Backend:
- β‘ tRPC - Type-safe APIs for seamless communication.
- π¦ Drizzle ORM - Modern ORM for PostgreSQL.
- β‘ Upstash Redis - Serverless Redis for caching and real-time data.
-
Frontend:
- β‘ Next.js 15 - The React framework for production.
- π¨ Shadcn UI - Accessible and reusable components.
- π TailwindCSS - Utility-first styling.
-
Authentication:
- π Secure authentication system.
-
Video Processing & AI Features:
- π¬ Mux - Real-time video processing & streaming.
- π AI-powered automatic video transcription.
- πΌοΈ Smart thumbnail generation.
- π€ AI-generated video titles & descriptions.
-
Database & Caching:
- ποΈ PostgreSQL - Reliable relational database.
- β‘ Upstash Redis - High-performance caching and background jobs.
-
Content & User Features:
- π Creator Studio with analytics & insights.
- ποΈ Custom playlist management.
- π Multiple content feeds.
- π± Fully responsive design.
- π¬ Interactive comment system.
- π Like & subscription system.
- π― Watch history tracking.
- π₯ Advanced video player with quality controls.
- π¬ Real-time video processing & adaptive streaming.
- π Automatic video transcription powered by AI.
- πΌοΈ AI-driven thumbnail generation.
- π€ Smart title & description generator.
- π Creator Studio with detailed video metrics.
- ποΈ Personalized playlists & video organization.
- π Dynamic content feeds for trending & recommended videos.
- π¬ Interactive comments & engagement tools.
- π Like & subscription system to follow favorite creators.
- π― Watch history tracking for seamless viewing experience.
- π Secure authentication with session management.
- π¦ Modular and scalable codebase.
- π Optimized for speed & scalability with Next.js 15 & React 19.
- β‘ Fast caching and real-time data handling with Upstash Redis.
Before you get started, ensure you have the following installed:
- Node.js (v18 or higher) π’
- Bun β‘ (for ultra-fast runtime & package management)
- Clerk (for authentication) π
- A Mux account for video streaming π₯
- A PostgreSQL database ποΈ
- An Upstash Redis instance for caching & real-time processing β‘
$ git clone https://github.com/BernieTv/YouTube-Clone.git
$ cd YouTube-Clonebun installCreate a .env file in the root folder and add the following:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/
CLERK_SIGNING_SECRET=
DATABASE_URL=
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
MUX_TOKEN_ID=
MUX_TOKEN_SECRET=
MUX_WEBHOOK_SECRET=
UPLOADTHING_TOKEN=
QSTASH_TOKEN=
UPSTASH_WORKFLOW_URL=
QSTASH_CURRENT_SIGNING_KEY=
QSTASH_NEXT_SIGNING_KEY=
OPENAI_API_KEY=
NEXT_PUBLIC_APP_URL=http://localhost:3000bun run startThis project is licensed under the MIT License. π
Check out the live demo here: YouTube Clone Demo π₯