A lightweight Chrome extension that adds a download button to YouTube videos for educational purposes. This project includes a backend server powered by Flask and yt-dlp to fetch video formats and handle downloads.
- 🎬 Fetch available video formats for YouTube videos.
- 📥 Download videos in your preferred format and resolution.
- 🔄 Dynamic button injection for YouTube's single-page application (SPA).
- 🖥️ Backend server for secure and efficient video processing.
git clone https://github.com/KrDevanshu06/Youtube-Downloader-Extension.git
cd Youtube-Downloader-ExtensionMake sure you have Python installed, then run:
pip install -r requirements.txt- Open Chrome and navigate to
chrome://extensions/. - Enable Developer Mode.
- Click Load unpacked and select the project folder.
- Start the Flask backend server:
python server.py
- Open a YouTube video in Chrome.
- Click the extension icon to open the popup.
- Select your desired format and resolution, then click Download.
📦 Youtube-Downloader-Extension
├── 📄 content.js # Injects the download button into YouTube pages
├── 📄 popup.js # Handles popup logic and API communication
├── 📄 popup.html # Extension popup UI
├── 📄 styles.css # Styling for the popup
├── 📄 server.py # Flask backend for fetching formats and downloads
├── 📄 manifest.json # Chrome extension manifest
├── 📄 requirements.txt # Python dependencies
├── 📄 LICENSE # GNU General Public License v3.0
└── 📄 README.md # Project documentation
- Frontend: JavaScript, HTML, CSS
- Backend: Python, Flask,
yt-dlp - Browser API: Chrome Extensions API
- Method:
GET - Description: Fetches available video formats for a given YouTube URL.
- Query Parameters:
url(string): The YouTube video URL.
- Method:
GET - Description: Downloads the video in the specified format.
- Query Parameters:
url(string): The YouTube video URL.format_id(string): The format ID to download.
This project is licensed under the GNU General Public License v3.0.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature-name'. - Push to the branch:
git push origin feature-name. - Open a pull request.
For questions or feedback, feel free to reach out:
- Email: Write me here
- GitHub: KrDevanshu06
This extension is for educational purposes only. Downloading copyrighted content without permission may violate YouTube's terms of service and copyright laws.