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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors