Discover legally available full movies on YouTube. A platform that helps users find full-length movies from trusted/official YouTube channels.
- π Smart Search - Find movies by language, genre, or keywords
- π Multiple Languages - Tamil, Telugu, Hindi, Malayalam, Kannada
- π¬ Genre Filters - Action, Romance, Comedy, Thriller, Drama, Horror
- β Verified Channels - Only content from trusted official channels
- β±οΈ Duration Filter - Only shows videos longer than 60 minutes
- π± Responsive Design - Works on desktop, tablet, and mobile
- π¨ Netflix-inspired UI - Clean, modern dark theme
- React 18 with Vite
- Tailwind CSS
- Modern ES6+ JavaScript
- Node.js with Express
- YouTube Data API v3
- RESTful API design
- Node.js 18+ and npm
- YouTube Data API v3 key
cd freeFlix- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the YouTube Data API v3:
- Go to "APIs & Services" > "Library"
- Search for "YouTube Data API v3"
- Click "Enable"
- Create credentials:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "API Key"
- Copy your API key
cd backend
# Install dependencies
npm install
# Create .env file
cp .env.example .env
# Edit .env and add your YouTube API key
# YOUTUBE_API_KEY=your_actual_api_keycd frontend
# Install dependencies
npm install
# Create .env file
cp .env.example .env
# Edit .env if needed (default works for local dev)Terminal 1 - Backend:
cd backend
npm run devBackend runs on http://localhost:5000
Terminal 2 - Frontend:
cd frontend
npm run devFrontend runs on http://localhost:5173
Navigate to http://localhost:5173 in your browser.
freeFlix/
βββ backend/
β βββ src/
β β βββ config/
β β β βββ channels.js # Trusted channel whitelist
β β βββ routes/
β β β βββ movies.js # API routes
β β βββ services/
β β β βββ youtube.js # YouTube API integration
β β βββ index.js # Express server entry
β βββ .env.example
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ Header.jsx
β β β βββ Hero.jsx
β β β βββ MovieCard.jsx
β β β βββ MovieGrid.jsx
β β β βββ FilterBar.jsx
β β β βββ LoadingSkeleton.jsx
β β β βββ ErrorMessage.jsx
β β βββ App.jsx
β β βββ main.jsx
β β βββ index.css
β βββ .env.example
β βββ tailwind.config.js
β βββ package.json
βββ README.md
GET /api/movies/search?q=telugu+action&language=telugu&genre=action&limit=12
Query Parameters:
q- Search query (optional)language- Filter by language (hindi, tamil, telugu, malayalam, kannada, all)genre- Filter by genre (action, romance, comedy, thriller, drama, horror, all)pageToken- Pagination token (optional)limit- Max results per page (default: 12)
GET /api/movies/languages
GET /api/movies/genres
GET /health
The app prioritizes content from verified channels including:
- Goldmines Telefilms
- Aditya Movies
- Sun Pictures
- Red Giant Movies
- Tips Films
- Shemaroo
- Rajshri
- And many more official channels
- The free tier has a daily quota limit
- Wait 24 hours for quota to reset
- Or request a quota increase from Google Cloud Console
- Ensure backend is running on port 5000
- Check that
VITE_API_URLin frontend/.env points to the correct backend URL
- Try different search terms
- Check that your YouTube API key is valid
- Verify the API is enabled in Google Cloud Console
MIT License - feel free to use this project for learning or personal use.
This platform only indexes content that is legally available on YouTube from official/trusted channels. All video content is hosted on YouTube and belongs to their respective copyright holders. FreeFlix does not host any video content.
Built with β€οΈ for movie lovers

