A lightweight, ad-free YouTube video downloader built with Python and Django.
FL Downloader is a simple yet powerful web application designed to download YouTube videos without the annoyances of ads and expiring links that plague other downloaders. Built with clean, maintainable code and a user-friendly interface.
- Ad-Free: No intrusive advertisements or pop-ups
- Reliable Downloads: Permanent download links that don't expire
- Rate Limiting: Built-in protection against abuse
- Video Information: Display video details before downloading
- Progress Tracking: Real-time download progress updates
- Simple UI: Clean and intuitive web interface
- Backend: Django 6.0+
- Download Engine: yt-dlp (YouTube downloader library)
- Database: MySQL with PyMySQL driver
- Language: Python
- Environment Management: python-dotenv
- Python 3.10+
- MySQL Server
- pip package manager
- Clone or download the repository:
cd fl_downloader- Create and activate virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Configure environment variables:
Create a
.envfile in the root directory:
DJANGO_SECRET_KEY=your-secret-key-here
- Run migrations:
python manage.py migrate- Start development server:
python manage.py runserverThe application will be available at http://localhost:8000
fl_downloader/
├── config/ # Django configuration
│ ├── settings.py # Project settings
│ ├── urls.py # URL routing
│ └── wsgi.py # WSGI configuration
├── downloader/ # Main application
│ ├── models.py # Database models
│ ├── views.py # Request handlers
│ ├── urls.py # App URL routing
│ ├── download_manager.py # Download orchestration
│ ├── rate_limiter.py # Rate limiting logic
│ └── templates/ # HTML templates
├── downloads/ # Downloaded files directory
├── secrets/ # Sensitive data (excluded from version control)
├── requirements.txt # Python dependencies
└── manage.py # Django management script
- Open the web application in your browser
- Enter a YouTube URL
- Click "Get Video Info" to see video details
- Select desired format/quality
- Click "Download" to start the download
- Download link will be provided upon completion
The application includes IP-based rate limiting to prevent abuse. Excessive requests from the same IP will be temporarily throttled.
Manages concurrent downloads with thread safety and tracks download progress and history.
Before downloading, users can view:
- Video title
- Duration
- Available formats and quality options
- Thumbnail preview
Currently hosted on a cPanel server at: https://downloader.joramsdentalclinic.com/
To contribute or customize:
- Modify templates in
downloader/templates/ - Update views in
downloader/views.py - Adjust settings in
config/settings.py - Test changes with the development server
See requirements.txt for a complete list of Python packages.
This project is provided as-is.
For issues or questions about the application, please ensure:
- All dependencies are correctly installed
- MySQL server is running
- Environment variables are properly configured
- Django migrations have been applied
Thank you for using FL Downloader!