Skip to content

Felixjegere/FL-Downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FL Downloader

A lightweight, ad-free YouTube video downloader built with Python and Django.

Overview

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.

Features

  • 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

Tech Stack

  • Backend: Django 6.0+
  • Download Engine: yt-dlp (YouTube downloader library)
  • Database: MySQL with PyMySQL driver
  • Language: Python
  • Environment Management: python-dotenv

Installation

Prerequisites

  • Python 3.10+
  • MySQL Server
  • pip package manager

Setup

  1. Clone or download the repository:
cd fl_downloader
  1. Create and activate virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure environment variables: Create a .env file in the root directory:
DJANGO_SECRET_KEY=your-secret-key-here
  1. Run migrations:
python manage.py migrate
  1. Start development server:
python manage.py runserver

The application will be available at http://localhost:8000

Project Structure

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

Usage

  1. Open the web application in your browser
  2. Enter a YouTube URL
  3. Click "Get Video Info" to see video details
  4. Select desired format/quality
  5. Click "Download" to start the download
  6. Download link will be provided upon completion

Features in Detail

Rate Limiting

The application includes IP-based rate limiting to prevent abuse. Excessive requests from the same IP will be temporarily throttled.

Download Manager

Manages concurrent downloads with thread safety and tracks download progress and history.

Video Information

Before downloading, users can view:

  • Video title
  • Duration
  • Available formats and quality options
  • Thumbnail preview

Deployment

Currently hosted on a cPanel server at: https://downloader.joramsdentalclinic.com/

Development

To contribute or customize:

  1. Modify templates in downloader/templates/
  2. Update views in downloader/views.py
  3. Adjust settings in config/settings.py
  4. Test changes with the development server

Dependencies

See requirements.txt for a complete list of Python packages.

License

This project is provided as-is.

Support

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!

About

A lightweight, ad-free YouTube video downloader built with Python and Django.

Topics

Resources

Stars

Watchers

Forks

Contributors