Skip to content

AuthRan/FreeFlix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FreeFlix 🎬

Discover legally available full movies on YouTube. A platform that helps users find full-length movies from trusted/official YouTube channels.

FreeFlix License

Features

  • πŸ” 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

Screenshots

Main Menu : image Search Options : image

Tech Stack

Frontend

  • React 18 with Vite
  • Tailwind CSS
  • Modern ES6+ JavaScript

Backend

  • Node.js with Express
  • YouTube Data API v3
  • RESTful API design

Prerequisites

  • Node.js 18+ and npm
  • YouTube Data API v3 key

Getting Started

1. Clone the Repository

cd freeFlix

2. Get YouTube API Key

  1. Go to Google Cloud Console
  2. Create a new project or select an existing one
  3. Enable the YouTube Data API v3:
    • Go to "APIs & Services" > "Library"
    • Search for "YouTube Data API v3"
    • Click "Enable"
  4. Create credentials:
    • Go to "APIs & Services" > "Credentials"
    • Click "Create Credentials" > "API Key"
    • Copy your API key

3. Set Up Backend

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_key

4. Set Up Frontend

cd frontend

# Install dependencies
npm install

# Create .env file
cp .env.example .env

# Edit .env if needed (default works for local dev)

5. Run the Application

Terminal 1 - Backend:

cd backend
npm run dev

Backend runs on http://localhost:5000

Terminal 2 - Frontend:

cd frontend
npm run dev

Frontend runs on http://localhost:5173

6. Open the App

Navigate to http://localhost:5173 in your browser.

Project Structure

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

API Endpoints

Search Movies

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 Languages

GET /api/movies/languages

Get Genres

GET /api/movies/genres

Health Check

GET /health

Trusted Channels

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

Troubleshooting

"YouTube API quota exceeded"

  • The free tier has a daily quota limit
  • Wait 24 hours for quota to reset
  • Or request a quota increase from Google Cloud Console

Backend not connecting

  • Ensure backend is running on port 5000
  • Check that VITE_API_URL in frontend/.env points to the correct backend URL

No results showing

  • Try different search terms
  • Check that your YouTube API key is valid
  • Verify the API is enabled in Google Cloud Console

License

MIT License - feel free to use this project for learning or personal use.

Disclaimer

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

About

Discover legally available full movies on YouTube from trusted channels. Filter by language, genre, and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors