FilmLabs is a modern, full-stack, locally hosted entertainment platform. It leverages third-party streaming APIs to let you watch movies and TV shows without storing any media files locally.
- Streaming Integration: Watch Movies and TV Shows seamlessly.
- User Accounts: Create accounts and login securely.
- Personalized Library: Account favoriting for Movies and TV Shows.
- Watch History: Keep track of what you've watched, including specific TV episodes.
- Advanced Discovery: Home page showcasing popular, trending, and new releases.
- Robust Search: Search with advanced filters including Media Type, Release Year, Age Rating, Minimum Score, and Genres.
- Pagination: Infinite "Load More" functionality for browsing large catalogs smoothly.
- Framework: Next.js 15 (App Router)
- Database: Prisma ORM (MySQL / PostgreSQL compatible)
- Authentication: NextAuth.js
- Styling: Tailwind CSS & shadcn/ui
- Data Provider: TMDB API
git clone [https://github.com/Monnapse/FilmLabs.git](https://github.com/Monnapse/FilmLabs.git)
cd FilmLabs/filmlabsnpm installCreate a .env file in the root directory and add the following variables:
# Database connection string (e.g., MySQL or PostgreSQL)
# Example: mysql://USER:PASSWORD@HOST:PORT/DATABASE
DATABASE_URL="mysql://root:password@localhost:3306/filmlabs"
# NextAuth Secret & Password Pepper (Generate one using `openssl rand -base64 32` in your terminal)
NEXTAUTH_SECRET="your_randomly_generated_secret_here"
PASSWORD_PEPPER="your_generated_password_pepper_here"
NEXTAUTH_URL="http://localhost:3000"
# TMDB API Key (Get from [https://developer.themoviedb.org/docs/getting-started](https://developer.themoviedb.org/docs/getting-started))
TMDB_API_KEY="your_tmdb_api_key_here"npx prisma db push
npx prisma generate npm run devOpen http://localhost:3000 with your browser to see the app running.
- Modifying Streaming APIs: Update the services array in src/lib/videoServices.ts to add or remove embed providers.
- Database Management: You can view and manage your database easily by running npx prisma studio.