A beautiful ecosystem for interacting with
yt-dlp.
This repository contains both a Terminal User Interface (TUI) and a Web Application that wrap the powerful yt-dlp tool into gorgeous, easy-to-use interfaces.
Instead of memorizing complex flags and options for yt-dlp, Lazydlp gives you clean, interactive interfaces. You can choose to run it directly in your terminal with a chat-like aesthetic, or spin up the web app for a rich browser experience.
lazydlp/
│
├── apps/
│ └── web/ # The modern React/Vite Web Application
│
├── packages/
│ └── lazydlp/ # The interactive Ink/React CLI (TUI)
│
├── package.json # Root monorepo workspace config
└── README.md # You are here
Located in packages/lazydlp, this is a beautiful terminal wrapper built with Ink (React for the terminal) and Zustand for state management.
- Slash Commands: Type
/help,/clear,/exit, or/downloadto interact with the app. - Smart Autocomplete: Use your arrow keys to quickly select suggestions as you type.
- Zero-Config Install: Automatically downloads and configures the latest
yt-dlpbinary on your system via the/configurecommand. No manual installation required! - Live Progress UI: Streams and parses
yt-dlpstdout, displaying a clean graphical progress bar and ETA without terminal flickering. - Persistent History: Keeps track of your recent downloads and settings locally using
zodandfs. - Global Shortcuts: Press
?anywhere to bring up the shortcuts menu.
You can run the CLI instantly without downloading the repository using:
npx lazydlp
# or
bunx lazydlpLocated in apps/web, this is a sleek, modern web application built with Vite and React.
- Gorgeous UI: Built with a sleek dark mode, glassmorphism, and smooth micro-animations.
- Interactive Forms: Easy URL submission and configuration without touching the terminal.
- Modern Stack: Vite, React, Vanilla CSS.
To run the web app locally, you need to clone this repository and start the dev server:
# Clone the repo
git clone https://github.com/devalentineomonya/lazydlp.git
cd lazydlp
# Install dependencies
bun install
# Start the web app
bun run dev:webThis repository uses Bun workspaces.
# Install dependencies for the entire monorepo
bun install
# Start the Web App in development mode
bun run dev:web
# Start the CLI in development mode (watches for changes)
bun run dev:cli
# Run the compiled CLI
bun run start:cli- Fork the repo and create a feature branch:
git checkout -b feat/my-feature - Make your changes inside
packages/lazydlporapps/web. - Run
bun run build:cliorbun run build:webto confirm it compiles. - Open a pull request with a clear description of what changed.
MIT © Valentine Omonya