Terminal-native media downloader
LENLU DLP wraps the power of yt-dlp and the Cobalt API 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.
Switch between yt-dlp local backend and serverless Cobalt API. Works online or offline.
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. Switch to serverless Cobalt mode for zero-install quick downloads — no Python needed on the client.
# 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 or switch to Serverless mode.
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
Local or serverless — the same beautiful GUI works for both.
Run the FastAPI server locally. Full yt-dlp support: merging streams, audio conversion, subtitle embedding, custom flags.
No Python needed. The browser hits the Cobalt API directly. Limited to Cobalt-supported sites but works from any device instantly.
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.
Switch to Serverless mode in the app header. No Python install needed — Cobalt API handles everything.
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 current connection mode (Local/Serverless) 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.