Terminal-native media downloader
LENLU DLP wraps the power of yt-dlp in a blazing-fast retro terminal GUI. Fetch, inspect streams, and download media in seconds — no command memorization required.
Compatible with —
Core Features
LENLU DLP is packed with powerful features for developers and power users — without the bloat.
Powered by Python FastAPI + yt-dlp for direct local downloads, stream merging, audio conversion, and subtitle embedding.
Inspect every available stream — codec, resolution, size, FPS — in an interactive filterable table.
Extract audio as MP3, M4A, WAV or FLAC. Lossless and lossy formats supported natively.
Download and embed subtitles in multiple languages directly into your video files.
Modern Dark, Classic Green, PowerShell Blue, Ubuntu Purple, Matrix Neon, Amber Retro.
Browse and manage your downloaded files directly inside the app with file-type previews.
Queue multiple URLs simultaneously with per-item progress tracking and error recovery.
Session statistics: total downloads, data transferred, success rate, and speed metrics.
Full keyboard navigation with command history cycling, autocomplete, and quick-tab switching.
Process
LENLU DLP keeps it simple — paste, fetch, pick, download.
Drop any media URL or search query in the input. Supports YouTube, Twitter, Instagram, TikTok, and 1000+ sites.
→LENLU DLP instantly probes the URL and returns the title, thumbnail, duration, and all available streams.
→Browse the format matrix. Choose resolution, codec, file size. Toggle audio extraction or subtitle embedding.
→Watch the real-time terminal feed as yt-dlp downloads your file. Find it instantly in the local library.
Engine
The backend is a slim Python FastAPI server that shells out to yt-dlp for maximum compatibility — local downloads, stream merging, audio conversion, and subtitle embedding.
# Start the LENLU DLP backend import subprocess, webbrowser def main(): url = "http://127.0.0.1:8000" webbrowser.open(url) # Spin up FastAPI server subprocess.run([ "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000" ]) if __name__ == "__main__": main() # Windows → py run_gui.py # macOS/Linux → python3 run_gui.py
Live Preview
The full app is embedded below. Connect your local server to use the GUI.
Format Matrix
Click any format card to see massive technical details — codec, bitrate, container, compatibility, and more. Hit Download to grab it instantly.
Terminal Feed
Watch every byte of yt-dlp output in the real-time process console. Know exactly what's happening, every fragment download, every merge step.
Terminal Themes
Six carefully crafted colour themes — switch live, no reload.
VS Code / Windows Terminal
Authentic CRT terminal
Classic Windows shell
Canonical inspired
Deep dive protocol
Vintage amber phosphor
Architecture
Run the FastAPI server locally — the same beautiful GUI works everywhere.
Run the FastAPI server locally. Full yt-dlp support: merging streams, audio conversion, subtitle embedding, custom flags.
Quick Start
Clone the repo, install dependencies, and launch. The script handles the rest — server start, browser open, everything.
$git clone https://github.com/lenluarun/lenlu-dlp.git $cd lenlu-dlp $pip install -r requirements.txt $py run_gui.py # Browser opens automatically
%git clone https://github.com/lenluarun/lenlu-dlp.git %cd lenlu-dlp %pip3 install -r requirements.txt %python3 run_gui.py # Browser opens automatically
$git clone https://github.com/lenluarun/lenlu-dlp.git $cd lenlu-dlp $pip3 install -r requirements.txt $python3 run_gui.py # Browser opens automatically
Requires Python 3.9+, pip, and ffmpeg on your PATH for stream merging and audio conversion. yt-dlp is installed automatically via pip.
run_gui.py starts the server and opens the app automatically — one command, fully ready.
Direct ZIP download — no git required. Unzip and run.
Deploy local_host.html to Vercel, Netlify, or GitHub Pages — point it at your local backend via the server URL field.
CLI Reference
Master the built-in terminal emulator with these commands. Hit ? in-app for the full shortcut overlay.
| Command | Description |
|---|---|
| > status | Show connection status and active process details. |
| > clear | Purge the output feed buffer in the console tab. |
| > library | Switch to and refresh the local downloads media catalog. |
| > select-folder | Open the native OS file picker to re-route your download directory. |
| > site-folder | Revert download directory to the default project installation path. |
| > fetch | Fetch video metadata and available streams for the current URL. |
| > download | Start the quick download using the selected preset format. |
| > batch | Open the Batch Download tab for queuing multiple URLs. |
| > queue | View and manage the active download queue. |
| > stats | Open the Stats Dashboard with session download metrics. |
| > settings | Open the settings tab directly from the console. |
| > matrix | Open the format matrix tab to inspect all available streams. |
| > help formats | Display the interactive stream format guide and matrix filter tips. |
| > help download | Show quick-download usage tips and preset format guide. |
| > --help | Display the full command list with descriptions. Alias: ? key. |
Simple setup. Beautiful terminal interface. Powerful yt-dlp engine. Six themes. Zero cost.
Source Code Access
The full source code is shared by request. Fill in the details below and we’ll prepare the repository link for you.