Youtube clone using React, Node, MongoDB and Firebase. MERN stack app with Redux Toolkit, JWT Cookies and Firebase Storage.
- Project Overview
- Features
- Technologies Used
- Installation
- Usage
- Project Structure
- Contributing
- License
- Contact
- Watch videos without ads
- Use YouTube without Google tracking you using cookies and JavaScript
- Two extractor APIs to choose from (Built in or Invidious)
- Subscribe to channels without an account
- Connect to an externally setup proxy such as Tor
- View and search your local subscriptions, history, and saved videos
- Organize your subscriptions into "Profiles" to create a more focused feed
- Export & import subscriptions
- Youtube Trending
- Youtube Chapters
- Most popular videos page based on the set Invidious instance
- SponsorBlock
- Open videos from your browser directly into FreeTube (with extension)
- Watch videos using an external player
- Full Theme support
- Make a screenshot of a video
- Multiple windows
- Mini Player (Picture-in-Picture)
- Keyboard shortcuts
- Option to show only family friendly content
- Show/hide functionality or elements within the app using the distraction free settings
- View channel community posts
- View most age restricted videos
- MongoDB: Database for storing user and product information.
- Express.js: Backend framework for building the server and API.
- React: Frontend library for building the user interface.
- Node.js: Runtime environment for server-side JavaScript execution.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/dipak-kumawat/YouTube.git
-
Navigate to the project directory:
cd YouTube
-
Install server dependencies:
cd server npm install
-
Install client dependencies:
cd ../client npm install
-
Set up environment variables: Create a
.env
file in theserver
directory and add the following:MONGO = mongodb+srv://dipaksk11:[email protected]/?retryWrites=true&w=majority&appName=Youtube MONGO_DB = "youtube" JWT = "gopikishan"
-
Start the server:
cd ../server npm start
-
Start the client: Open a new terminal window and navigate to the
client
directory:npm start
- Visit
http://localhost:3000
to view the YouTube frontend.
YouTube/
│
├── client/ # React frontend
│ ├── public/ # Public assets
│ └── src/ # React components and application logic
│ └── ...
│
├── server/ # Express backend
│ ├── config/ # Configuration files
│ ├── controllers/ # Request handlers
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── ...
│
└── README.md # This README file
Contributions are welcome! If you have any suggestions or improvements, please create a pull request or open an issue.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/YourFeature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, please contact us at:
- Email: [email protected]
Thank you for using YouTube – a video sharing platform!