DLX Media Downloader is a modern, web-based YouTube video and audio downloader built with Flask and a beautiful responsive interface. It allows users to effortlessly download YouTube videos in MP4 format or convert them to high-quality MP3 audio files. With its clean, intuitive design and powerful backend, DLX makes media downloading simple and accessible for everyone.
In today's digital world, users often need to download YouTube content for offline viewing, educational purposes, or audio extraction. However, most existing solutions are either:
- Cluttered with ads and pop-ups
- Require software installation
- Have poor user interfaces
- Lack proper error handling
- Don't support both video and audio formats
DLX Media Downloader solves these problems by providing a clean, ad-free, web-based solution that works directly in your browser with session-based file management, intelligent caching, and rate limiting for optimal performance.
- Python 3.x: Core programming language
- Flask: Lightweight web framework for the API
- yt-dlp: Robust YouTube video extraction library
- moviepy: Video processing and MP3 conversion
- Flask-Limiter: Rate limiting for API protection
- cachelib: In-memory caching system
- HTML5: Modern semantic markup
- Tailwind CSS: Utility-first CSS framework for responsive design
- Vanilla JavaScript: Clean, dependency-free frontend interactions
- CSS Grid & Flexbox: Modern layout techniques
- Node.js & npm: For CSS build process
- Git: Version control
- dotenv: Environment variable management
- Python 3.7 or higher
- Node.js and npm
- Git
-
Clone the repository:
git clone https://github.com/yourusername/DLX-Media-Downloader.git cd DLX-Media-Downloader
-
Install Python dependencies:
pip install -r requirements.txt
-
Install Node.js dependencies:
npm install
-
Build CSS assets:
npm run build:css
-
Set up environment variables (optional):
cp .env.example .env # Edit .env with your preferred settings
-
Run the application:
python app.py
-
Access the application: Open your browser and navigate to
http://localhost:5000
For development with auto-reload:
export FLASK_ENV=development
python app.py
For CSS development with watch mode:
npm run watch:css
- ✨ Clean, Modern UI with dark/light theme toggle
- 🚀 Fast Downloads with intelligent caching
- 🎵 Dual Format Support - MP4 video and MP3 audio
- 🛡️ Rate Limiting to prevent abuse
- 📱 Responsive Design works on all devices
- 🔒 Session-based Security with sanitized filenames
- ⚡ Asynchronous Processing for better performance
- 💾 Smart Caching to avoid redundant downloads
GET /
- Main application interfacePOST /process
- Process download requestsGET /downloads/<filename>
- Serve downloaded files
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Built with ❤️ for the community